Formsの複数回答の質問の答えをTeamsに投稿する方法
Power Automateの活用方法の1つに「Formsで回答してもらった結果をTeamsに投稿する」というものがあります。
簡単で、かつ、使い勝手が良いので私もよく活用していたのですが、今回「複数回答の質問」の答えを取得するのに手間取ったので備忘録です。
うまくいかなかった方法
私はアダプティブカードが好きなので、チャネルへの投稿はアダプティブカードを使います。
すると、いつも通り「動的なコンテンツ」で指定するだけでは、複数回答の質問ではエラーが出てしまいました。
解決方法①
一番簡単な方法です。
アダプティブカードを使用せずに、単に「チャットまたはチャネルでメッセージを投稿する」アクションを使えばエラーが出ません。
ただし、投稿には下記のように[]や"が入ります。
解決方法②
上記の投稿結果を見ると、["ライオン","パンダ"]の形で出力されていることが分かります。
なので、replace関数で[]と"を空白に置き換えれば「ライオン,パンダ」と出力されるようになります。
replece関数の部分は、下記をコピーし、■の部分に「動的なコンテンツ」を入れると設定できます。
replace(replace(replace(■,'[',''),']',''),'"','')
解決方法③
["ライオン","パンダ"]という形式をよく見てみると、配列の形になっています。
そこで、配列から文字列を取り出す方法にも挑戦してみました。
まずは、Apply to eachに「動的なコンテンツ」を入れてみたのですが、うまくいきませんでした。
どうやら、動的なコンテンツで取得できる["ライオン","パンダ"]は、配列に見えますが文字列のようです。
そこで、json関数で配列に変換し、処理をしていきます。
フローは以下の通り。
Teamsに投稿されました。
さいごに
色々試した結果、Formsからの複数回答の質問の答えは、配列が文字列に変換された形で出力されているようです。
アダプティブカードはJSON形式で書かれているため、["犬","ライオン"]の形が途中に入るとエラーになってしまうのかな?
正直、この辺りは自信がないですが、とりあえず上記方法で解決できました。
補足
@MiTo60448639 さんにTwittterにてフォローいただきましたので、載せておきます。
さすがです。