PowerAutomate

【Power Automate入門】Formsの回答をSharePointリストに自動格納する方法 ~新しいデザイナーでの実装~

ミムチ

Power Automateが「新しいデザイナー」になって、Formsの回答データを自動集計するフローの実装で、「For each」が勝手に入るようになりましたぞ…

パワ実

「新しいデザイナー」のPower Automateでは、「Forms」トリガーのデフォルト設定が、これまでとは異なります。

この記事では、Power Automateの「新しいデザイナー」で、Formsの回答を自動でSharePointリストに登録するフローの実装方法を解説します。

この記事でわかること
  1. Power Automateの新しいデザイナーでFormsの回答を自動集計する実装方法
  2. 新しいデザイナーで変更されたデフォルト設定
  3. トリガーの「分割」設定の意味

Youtube動画で見たい方は、こちらからどうぞ!

Forms回答の集計を自動化する全体イメージ

はじめに、Formsの回答を自動で集計する全体イメージを説明します。

全体の流れは、以下のようになります。

自動化全体の流れ
  1. Formsの回答をトリガーに、Power Automateを実行
  2. Power AutomateでForms回答データを、SharePointリストに登録
  3. 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リストに自動で登録する方法については、以下の記事を参考にしてください!

【Forms × Power Automate活用】Formsのアンケート結果をSharePointリストに格納して自動集計する方法 この記事では、Formsのアンケート結果を、PowerAutomateを使ってSharePointリストに自動で格納し、Powe...

新しいデザイナーでのPower Automate実装

1.Power Automateを開き、「自動化したクラウドフロー」を一から作成します。

2.トリガーはFormsの「新しい応答が送信されるとき」を選択し、「作成」をクリックします。

2.トリガーを選択し、左側の「Parameters」で、「フォームID」を選択します。

次に「+ボタン」>「アクションの追加」を選択します。

3.Formsで検索し、「応答の詳細を取得する」アクションを選択します。

4.左側の「Parameters」から、「フォームID」で作成したフォームを選択します。

「応答ID」の入力フォームを選択し、「動的なコンテンツ」をクリックします。

5.「応答ID」には、動的なコンテンツから、トリガーの「新しい応答が送信されるとき」の「応答ID」を選択します。

6.すると「応答の詳細を取得する」アクションが、自動的に「For each」の中に入ります。

「For each」とは「Apply to each」のことです。

日本語では「それぞれに適用する」となっており、アクションは「Control」から追加することができます。

「For each」についての詳しい解説は、以下の記事を参考にしてください。

【PowerAutomate入門】Apply to eachとは?~アレイ(配列)を1つずつ処理する方法~ この記事では、Power Automateの「コントロール」アクションの一つ「Apply to 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 Automateはライセンスによって、1日の実行回数や、ループの実行回数等も制限があるので、状況に応じてこの分割の設定を行い、フローの実行制限に引っかからないようにする必要があるかもしれません。

Power BIでForms回答のレポートを作成

最後に、「SharePointリスト」から簡単に、「Power BIレポート」を自動作成し、Formsのデータを集計してみましょう!

今回はSharePointリストから、自動的にPower BIレポートを作成してみます。

1.SharePointリストの「統合」>「Power BI」>「リストを視覚化する」を選択します。

2.少し待つと、自動でPower BIレポートが作成できます。

自分で編集したい場合は「編集」をクリックし、レポートの編集ができます。

自動作成機能でもある程度のレポートを作成してくれるので、これをベースに編集してもよいと思います。

Power BIの基本的な使い方は、以前の記事を参考にしてください。

【初心者向け】Power BI Desktopの基本的な使い方「5ステップ」~神エクセルも簡単加工!~ YouTube動画で見たいかたは、こちらからどうぞ! https://youtu.be/tFrjr3IiIlM ...
パワ実

Power BIを使えば、SharePointリストから簡単にレポートを作成し、データの自動更新設定もできますので、是非ご活用ください!

最後に

この記事では、「新しいデザイナー」のPower Automateを使い、Formsの回答時にSharePointリストに自動登録する方法を解説しました。

Power Automateの新デザイナーでは、Formsのトリガー「新しい応答が送信されるとき」のデフォルト設定で「分割:オフ」になっています。

「分割:オフ」の設定では、トリガーの出力はオブジェクト型になるため、出力データを使う際は、「For each(それぞれに適用)」を使う必要があります。

パワ実

ただしFormsトリガーの場合、現時点(2024年1月)では、この分割の設定はあまり気にしなくても良いかもしれません。

Formsの複数回答データを、Power BIで分析する方法については、以下の記事を参考にしてください。

【Forms × Power BI活用】Formsの複数回答データをPower BIで解析する方法 以前の記事で、Formsの回答結果をPower Automateで自動的にSharePointリストに格納する方法を解説しました...
ABOUT ME
パワ実
DX推進担当(IT部門) 2021年からPower Platform(Power BI、Power Apps、Power Automate)を勉強中。 Power Platformを使っていく中で、知りえた情報を発信している。 Youtube、Twitterでの情報発信もしています!

Power Platformのご依頼・ご相談について

Power Platformについてのご相談、お仕事のご依頼については、
こちらのお問い合わせページをご確認ください。