Power AppsからデータをSharePointリストに登録するにはいくつか方法があります。
今回はSharePointリストをデータソースとして、Power Appsのフォームに入力したデータをPower Automateを経由してSharePointリストにデータを格納する方法について記載します。
※ 本記事はPower Apps中級者、Power Automate初級者向けに書いており、Power AppsのUIや各プロパティの設定については割愛します。
シナリオ
Power Appsで入力したデータをSharePointに登録する際、要件によってはPower Automateを経由してデータを送信する方が適している場合があります。
例えば、以下のようなシナリオです。
- 入力内容によって登録先リストを変更したい
- データの登録には上長の承認が必要
- データが登録された際にメールやTeamsで通知したい
このようなケースではPower Appsから直接SharePointにデータを格納するのではなく、Power Automateを経由することでより柔軟で運用性の高い実装が可能になります。
SharePointリスト作成
まず、データを格納する保存先を作成します。 今回は「名前」、「性別」、「部活」、「血液型」を追加し、「性別」以外を必須項目として設定しました。
※タイトルや添付ファイルは自動で追加される項目です

まずは、入力後のイメージを確認するため、いくつかのデータをリストに直接手動で追加してみました。これをPower Appsで入力し、Power Automateを経由してデータを格納するように実装します。

Power Automateフロー作成
フローを作成する
まず、Power Appsの画面にて「フローを新規作成する」>「+最初から作成」からフローを作成します。

作成するとPower Apps(V2)をトリガーとするフローが作成されるので名前を入力します。
※「Flow」という名前にしました
トリガーの設定
次にパラメーターを作成します。Power Appsからフローに値を渡す場合、Power Automate側でパラメーターを作成する必要があります。
選択できるパラメーターの型は6種類あるので要件に合わせて選択してください。

今回はSharePointでデータの保存先を作成する際にすべてText型に設定したので「+入力の追加」から「テキスト」を追加します。分かりやすいようにパラメーターの名前を変更することも可能です。

また、必須項目と任意項目の設定をおこなうことができます。今回「性別」は任意の項目なので右にある3点マークから任意に設定します。

アクションの追加
最後にアクションを追加します。ここでは承認やメール・Teams通知を送信するなど、さまざまなアクションを設定できます。
今回はFormデータをSharePointリストに格納するので「SharePoint」の「項目の作成」というアクションを追加します。

「サイトのアドレス」と「リスト名」に、先ほど作成したSharePointリストを設定します。すると、名前や性別などの値を設定できるようになりますので、トリガーで用意したパラメーターを指定します。

これでAutomateフローの設定は完了です。フロー作成後は必ず保存してください。
Power Appsの作成
フォームの追加
まず、Power Appsに新規の空のアプリを作成し、編集フォームと登録ボタンを追加します。
その後、アプリのイメージを持ちやすくするために簡単にUIを変更しました。
※ 今回は登録ボタンの設定について記載するので、UIの変更やその他の設定については省略します。

登録ボタンの設定
登録ボタンをクリックした際にフローを動かすように設定します。
アプリからAutomateフローを呼び出す際には、以下のように記載します。
"フロー名".Run("パラメーター名".データ型,"パラメーター名".データ型)
「"フロー名".Run」の後に記載するパラメーターはフローで設定した順番に記載します。フロー側のパラメーターに渡したい順に、Formの中の「DataCardValue」を記載します。
今回であれば、「名前、部活、血液型、性別」の順に指定します。
※フローで任意に設定したパラメーターはPower Apps側で指定する順番は最後になります
例えば、最初のパラメーターは「名前」になります。パラメーターとしてForm内で「名前」を入力する「DataCardValue7」を記載します。

※ 記載するものは入力するFormの中から選択します

なお、Power Automate側で「任意」として設定した「性別」のみ、記載方法が異なるので注意が必要です。

最終的に、登録ボタンのOnSelectプロパティに記載する式は以下のようになります。
Flow.Run(DataCardValue7.Text,DataCardValue8.Text,DataCardValue9.Text,{text_1:(If(IsBlank(DataCardValue10.Text),"",DataCardValue10.Text))})

※ 任意のパラメーターとなっている「性別」のみ、未入力でもエラーが起きないような式を記載しています。
設定は以上です。
動作確認
実際に、アプリを実行し、必須項目のみをFormに入力して登録ボタンを押してみます。

SharePointリストを確認すると、アプリで登録した行が追加されていることが確認できます。

Power Automateが正常に動作しているかは、Power Automateのフローの実行履歴から確認できます。状況が「成功」となっていれば、問題なく動作していることが分かります。

最後に
Power Appsを利用する上で、Power Automateと連携して実装する機会は多いので、その実装方法について記載しました。
今後はこれを応用して、Power AppsからPower AutomateにJSON形式でデータを引き渡して解析する方法について記載していく予定です。