Power Automateが「新しいデザイナー」になって、Formsの回答データを自動集計するフローの実装で、「For each」が勝手に入るようになりましたぞ…
「新しいデザイナー」のPower Automateでは、「Forms」トリガーのデフォルト設定が、これまでとは異なります。
この記事では、Power Automateの「新しいデザイナー」で、Formsの回答を自動でSharePointリストに登録するフローの実装方法を解説します。
- Power Automateの新しいデザイナーでFormsの回答を自動集計する実装方法
- 新しいデザイナーで変更されたデフォルト設定
- トリガーの「分割」設定の意味
Youtube動画で見たい方は、こちらからどうぞ!
Forms回答の集計を自動化する全体イメージ
はじめに、Formsの回答を自動で集計する全体イメージを説明します。
全体の流れは、以下のようになります。
- Formsの回答をトリガーに、Power Automateを実行
- Power AutomateでForms回答データを、SharePointリストに登録
- SharePointリストから、Power BIで集計レポートを作成
上記のように、Power Automateと、Power BIを利用することで、簡単にFormsの回答データを自動集計することができます。
それでは実際に、Power Automateの実装をしてみましょう!
Power AutomateでForms回答をSharePointリストに自動登録する!
1.Formsは、以下のようななPower Platformに関するアンケートフォームを作成しました。
2.Formsの回答を格納するため、以下のようなSharePointリストも準備しています。
※Formsの回答項目に対応する列を用意しています
これまでのPower Automateデザイナーで、FormsからSharePointリストに自動で登録する方法については、以下の記事を参考にしてください!
新しいデザイナーでのPower Automate実装
1.Power Automateを開き、「自動化したクラウドフロー」を一から作成します。
2.トリガーはFormsの「新しい応答が送信されるとき」を選択し、「作成」をクリックします。
2.トリガーを選択し、左側の「Parameters」で、「フォームID」を選択します。
次に「+ボタン」>「アクションの追加」を選択します。
3.Formsで検索し、「応答の詳細を取得する」アクションを選択します。
4.左側の「Parameters」から、「フォームID」で作成したフォームを選択します。
「応答ID」の入力フォームを選択し、「動的なコンテンツ」をクリックします。
5.「応答ID」には、動的なコンテンツから、トリガーの「新しい応答が送信されるとき」の「応答ID」を選択します。
6.すると「応答の詳細を取得する」アクションが、自動的に「For each」の中に入ります。
「For each」についての詳しい解説は、以下の記事を参考にしてください。
これでForms回答の詳細データを取得できました!
「Formsの応答の詳細を取得する」アクションが「For each」の中に入っている理由は、Formsの回答データが配列型(アレイ)となっており、一度に複数の回答データがくる可能性があるということです。
そのため、SharePointリストに登録するアクションも、この「For each」の中に追加します。
7.「応答の詳細を取得する」アクションの下で、「+ボタン」>「アクションの追加」をクリックします。
SharePointで検索し、「さらに表示」をクリックします。
8.SharePointリストにデータを登録するには、「項目の作成」アクションを選択します。
「SharePointサイト」、「リスト名」を選択すると、自動的にリストの列が表示されるので、各列に「動的なコンテンツ」から、Formsの「応答の詳細を取得する」アクションで取得された回答データを選択します。
これでフローが完成ですな!
9.「保存」した後、いくつかForms回答をしてテストしてみます。
10.フローの実行が成功し、無事SharePointリストにもデータが格納されていればOKです。
このような感じで、Power Automateフローが実装できました。
ところで、これまでのデザイナーとはどう違うのですかな?
これまでのデザイナーとの違い
これまでのデザイナーとの違いは、Formsの「応答の詳細を取得する」アクションと、SharePointリストの「項目の作成」アクションが、「For Each」に入っている点です。
実際に、Power Automateで実装の違いを見てみます。
「新しいデザイナー」で実装が変化したのは、最初のトリガー、Formsの「新しい応答が送信されるとき」の「設定」部分です。
「設定」>「General」>「分割」の部分が、デフォルトでは「Off」になっていますが、これまでのデザイナーでは、この分割の設定が「ON」になっていました。
「分割」の設定を「ON」にして、「配列」をドロップダウンから選択してみます。
するとFormsの回答は、1回のフローにつき、1件しかデータを受け取らなくなるため、「For each」のアクションは必要なくなり、上の図のように、Formsの「応答の詳細を取得する」アクションと、SharePointの「項目の作成」アクションは、「For each」の外に出すことができます。
これで、これまでのデザイナーでの実装と同じになりましたね!
…そもそも、この「分割」とは何なのですかな?
分割の設定とは?
Power Automateの「分割」の設定について、簡単に解説します。
Power Automateフローは、ライセンスによっても違いますが、トリガーが5分〜15分くらいの間隔で実行されます。
そしてこの15分間に、複数回トリガーが発生することがあると思います。
例えば、15分間に2回トリガーが発生した場合、この2回分のトリガーは、つぎのPower Automateフロー実行時に開始します。
Power Automateフローのトリガー設定で、「分割」が「オフ」になっていた場合、15分間に2回トリガーが発生した場合でも、次のPower Automateフロー実行時には、1回分だけフローが開始します。
そして、この1回のフローの中で、「For each」がトリガーの回数分(今回の例では2回分)ループ実行されます。
一方で、分割をオンに設定していた場合、フローはトリガーの回数分(今回の例では2回分)実行されます。
例として、SharePointリストの「項目が削除されたとき」をトリガーにしたフローを作成してみました。
※このフロー自体は、分割の設定を確認するためだけのもので、特に意味はありません。
例えば、SharePointリストから直接、複数のレコードを一気に削除した場合、「分割」を「ON」にすると、フローは削除したレコード数の回数分、実行されます。
一方で「分割」を「オフ」にした場合、以下のようにフローが1回だけ実行されます。(赤枠部分)
中身を見てみると、1回のフロー実行で、「For each」が複数回実行(ループ)されているのが分かります。
これが、分割の設定の意味になります。
なるほど、分かりましたぞ!
Formsも、短時間で多くの人が回答する場合、分割:オフの設定にすれば、一回のフロー実行でまとめてSharePointリストにデータ登録できるのですな!
…私もそう思ったのだけれど、どうやらFormsの「新しい応答が送信されるとき」のトリガーは、動作が異なるみたいです。
試しに、Formsで続けていくつか回答してみました。
Power Automateの「実行履歴」をみると、「分割:オフ」になっているにも関わらず、複数回フローが実行されています。
1つ選択して中身を見ても、「For each」が1回しか実行されておらず、先ほどのSharePointリストの「項目の削除」をトリガーとした場合とは、挙動が異なります。
どうやらFormsのトリガーは、分割のオン/オフ設定に関わらず、少なくとも現時点(2024年1月)では、回答の都度実行されるようです。
現時点ではFormsトリガーでは、分割の設定を気にする必要はありませんが、今後Power Automateの仕様変更等で、まとめて実行されるようになる可能性もあります。
Power BIでForms回答のレポートを作成
最後に、「SharePointリスト」から簡単に、「Power BIレポート」を自動作成し、Formsのデータを集計してみましょう!
今回はSharePointリストから、自動的にPower BIレポートを作成してみます。
1.SharePointリストの「統合」>「Power BI」>「リストを視覚化する」を選択します。
2.少し待つと、自動でPower BIレポートが作成できます。
自分で編集したい場合は「編集」をクリックし、レポートの編集ができます。
自動作成機能でもある程度のレポートを作成してくれるので、これをベースに編集してもよいと思います。
Power BIの基本的な使い方は、以前の記事を参考にしてください。
Power BIを使えば、SharePointリストから簡単にレポートを作成し、データの自動更新設定もできますので、是非ご活用ください!
最後に
この記事では、「新しいデザイナー」のPower Automateを使い、Formsの回答時にSharePointリストに自動登録する方法を解説しました。
Power Automateの新デザイナーでは、Formsのトリガー「新しい応答が送信されるとき」のデフォルト設定で「分割:オフ」になっています。
「分割:オフ」の設定では、トリガーの出力はオブジェクト型になるため、出力データを使う際は、「For each(それぞれに適用)」を使う必要があります。
ただしFormsトリガーの場合、現時点(2024年1月)では、この分割の設定はあまり気にしなくても良いかもしれません。
Formsの複数回答データを、Power BIで分析する方法については、以下の記事を参考にしてください。