Formsを利用した問い合わせフォームやアンケートの回答をPower Auomateを用いてSharePointリストに蓄積する際の小技シリーズです。
第一弾として、Formsの複数選択回答をSharePointリストの選択肢列に格納する場合について記載していきます。
はじめに
Power Automateにて「FormsのアクションとSharePointのアクションを用いて投稿内容をリストに転記する」というフローを作成する際には、基本的にFormsのアクションにて得られた動的アイテムをリストの項目に挿入することで回答を転記できます。
ただし、複数選択可能の質問の場合は注意が必要です。
複数選択可能の質問の回答をそのまま貼り付けると…
リストには複数選択肢が["選択肢AAA","選択肢BBB","選択肢CCC"]のように記号で連結された一つの選択肢として登録されてしまいます。
選択肢ごとにそれぞれ登録できるようにするにはどうするか記載します。
準備
Forms
複数選択可能の質問を設けます。
SharePointリスト
Formsと同じ選択肢を記載し、複数選択可能に設定した列を作成しておきます。
Power Automate フローの設定
(1)Formsのトリガーとアクションを設定する
(2)「変数を初期化する」アクションを設定する
ここで値に式を挿入します。
replace(replace(replace(<複数選択肢回答の動的アイテム>,'[',''),']',''),'"','')
ここでは、「["選択肢AAA","選択肢BBB","選択肢CCC"]」と受け取った回答情報から記号「 [ 」、「 ] 」、「 ” 」を取り除く式を入れています。
このアクションの時点で回答情報は「選択肢AAA,選択肢BBB,選択肢CCC」になり、変数「選択肢質問」に格納されます。
(3)「選択」アクションを設定する
ここで2つの式を挿入します。
1つ目
split(variables('選択肢質問'), ',')
ここでは、前項で「選択肢AAA,選択肢BBB,選択肢CCC」と変更した文字列を「 , 」ごとに分割します。
2つ目
item()
ここでは1つ目で分割したそれぞれの選択肢ごとに配列を作成するためのものです。
このアクション時点で回答情報は以下の形に変更され、リストに登録できる形式になります。
{"Value": "選択肢AAA"},{"Value": "選択肢BBB"},{"Value": "選択肢CCC"}
(4)「項目の作成」アクションを設定する
回答情報を入れる列の入力方法を右上のボタンにてアレイ全体の入力に切り替えます。
規定値を削除して前項の「選択」アクションの出力を挿入します。
以上で設定完了です。
Formsで複数選択で回答してフローの実行結果を確認すると、それぞれの選択肢ごとに登録できるようになっています。
おわりに
今回はFormsの複数選択肢の回答をSharePointリストの複数選択肢に転記する方法の小技紹介でした。
FormsからSharePointリストへの転記はよく使用するのですが、なかなか形式の変換がうまくいかず、きれいに表示できないポイントがありました。
今後もいくつか紹介できればと思います。