Power AppsからPower Automateのフローを呼び出す。ボタン実行・値の受け渡しの基本

Power AppsからPower Automateを呼ぶのは、ボタン1つで完結する

Power AppsからPower Automateのフローを実行する仕組みは、思っているより単純です。アプリのボタンに1行書けばフローが動き、フローの結果をアプリ側で受け取ることもできます。

最初は「AppsとAutomateを連携させる」という言葉に身構えてしまいがちですが、実際に手を動かしてみると数分で動くものができます。この記事では基本の呼び出し方と、値の受け渡し方法をまとめます。

フローをAppsから呼べる形にする

まずPower Automateで、Power Appsから呼び出せるフローを用意します。トリガーの種類は「Power Appsからのインスタント」を選びます。これを選ぶと、Apps側からフローを起動できるようになります。

トリガー選択のポイント

Power Automateのトリガーには自動型・インスタント型・スケジュール型があります。Appsから手動で呼ぶときは「インスタント」を選び、さらにその中から「Power Apps(V2)」を選択します。V2を選ぶと引数の型を明示的に定義でき、Appsから値を渡すときに扱いやすくなります。

Power Automateのトリガー種類の詳細はこちらも参考になります。

Power Automateのトリガーはどれを選ぶ?自動化・インスタント・スケジュールの違いを徹底解説

Power Appsから値を渡す方法

フローにAppsから値(テキストや数値)を渡すには、フローのトリガー設定でインプット引数を定義します。V2では引数の名前と型(テキスト・数値・日付など)を設定でき、Apps側の数式でその引数に値をセットします。

例えばテキスト引数を1つ渡す場合、Appsのボタン数式はこうなります。

FlowName.Run(TextInput1.Text)

引数が複数ある場合はカンマ区切りで渡します。

FlowName.Run(TextInput1.Text, Dropdown1.Selected.Value, Today())

引数の順番はフロー側で定義した順と一致させる必要があります。数式を書いた瞬間にIntelliSenseが引数の型を教えてくれるので、型不一致のエラーはわりとすぐ気づけます。

フローの結果をAppsで受け取る

フローからApps側に値を返したい場合は、フローの最後に「Power Appsに応答する」アクション(Respond to a Power App)を追加します。返す値の名前と中身を定義すると、Apps側でフローの戻り値を取り出せます。

Apps側での受け取り方はこうなります。

Set(gblResult, FlowName.Run(TextInput1.Text).resultvalue)

フロー側で返す値に result という名前をつけた場合、Apps側では .result でアクセスできます。この値を変数に格納しておけば、ラベルの表示やギャラリーの絞り込みに使えます。

非同期実行には注意

フローの実行には時間がかかることがあります。Run()は同期的に動作するため、フローが完了するまでAppsの処理は待ちます。フローが5秒・10秒かかる場合、ボタンを押してから結果が返ってくるまでアプリが止まって見えます。

長時間かかるフローにはNotify関数で「処理中」表示を出すか、アイコンのVisible切り替えでローディング状態を見せると親切です。

どんなケースで使うか

私が実務でApps→Automate連携を使うのは、主に以下のケースです。

ケース内容
メール・Teams通知ボタン押下で承認者にメール通知を送る
SharePointへの書き込み複数リストへ同時に書き込む(Patchが複雑になる場合)
PDFの生成・保存定型フォームをPDFに変換してSharePointに保存する
外部API連携Apps単体では直接叩けないAPIをAutomateを経由して呼ぶ

特にメール・Teams通知は定番の使い方です。Appsだけではメール送信ができないので、この組み合わせが必須になります。

フローをAppsに追加する手順

Power Apps Studio(アプリの編集画面)から直接フローを紐づけられます。手順は次のとおりです。

  1. Power Apps Studioで編集中のアプリを開く
  2. 左メニューの「Power Automate」アイコンをクリック
  3. 「フローを追加」から使いたいフローを選択する
  4. フローが追加されると数式バーで .Run() が使えるようになる

フローが表示されない場合は、フロー側のトリガーが「Power Apps(V2)」になっているか確認してください。他のトリガーのフローはこのリストに出てきません。

Power Automateの全体像は入門記事でまとめています。連携の前に基礎を確認したい方はこちらをどうぞ。

Power Automate入門——変数・データ処理・通知・デバッグの全体マップ

まとめ

Power AppsからPower Automateを呼び出すのは、FlowName.Run() の1行で完結します。引数で値を渡し、Respond to a Power Appで結果を受け取る、という流れが基本パターンです。

AppsとAutomateを組み合わせると、アプリ単体では難しいメール通知・PDF生成・外部連携ができるようになります。どちらか一方に閉じて考えずに、得意なことを分担させる設計ができると業務改善の幅がぐっと広がります。

Xでフォローしよう