【Power Apps】Power Automateと連携させる

Power Appsだけでは行えない処理を実行したいときや、Power AppsをトリガーとしてPower Automateを起動させたいことがあると思います。

Power AutomateとPower Appsを連携するやり方をまとめてみます。

Power Appsからフローを新規作成する

Power Automateのフローをまだ作成していない場合は、Power Appsの左側のメニューバーにある三点をクリックすると「Power Automate」メニューが表示されます。

「Power Automate」をクリックし、「フローを新規作成する」を選択するとPower Automateのメニューが表示されます。

Power AppsからPower Automateメニューを開く画面
Power AppsからPower Automateのフローを新規作成する画面

ここからフローを作成し、Power Appsにフローを追加してください。

スポンサーリンク

Power Automateで既に作成したフローを追加する

Power Automateで既に作成したフローをPower Appsから利用することもできます。

Power Automateの画面で自動化したクラウドフローを選択後、「Power Apps」を選択すると、Power Appsのトリガーが表示されます。

今回はPower Apps(V2)を使用してフローを作成します。

Power AutomateでPower Appsトリガーを選択する画面
Power AutomateでPower Apps V2トリガーを設定する画面
Power Apps V2トリガーにパラメータを追加する画面

Power Appsからフローに値を渡したい場合、Power Automate側でパラメータの型を設定する必要があります。

パラメータには次の6種類があります。

  • テキスト
  • はい/いいえ(Boolean)
  • ファイル
  • 電子メール
  • 日付

使用する型を選択して名前を付けます。ここで設定した名前が、フローの動的なコンテンツで表示される名前になります。

Power Apps V2トリガーのパラメータに名前を設定する画面

今回はフロー自体の作成方法は割愛します。

フロー完成後、Power Apps側にフローを追加するため「Power Automate」をクリックします。

「+フローの追加」ボタンを押すと、Power Automateにあるマイフローの一覧が表示されるため、追加したいフロー名を選択します。

Power AppsにPower Automateのフローを追加する画面

Power AppsからPower Automateを呼び出す方法

フローをPower Appsから呼び出すときは、フロー名に続けてRun()を使用します。

フロー名.Run("パラメータ1", "パラメータ2")

パラメータを指定すると、Power AppsからPower Automateのフローに値を渡すことができます。 フローで設定したパラメータの数だけ引数を指定します。

今回のアプリでは、トリガーとなるボタンのOnSelectプロパティに記載します。

例えばPower Automateで「氏名」「電子メール」「電話番号」の順にパラメータを設定した場合は、同じ順番で引数を指定します。

氏名には文字列、電子メールにはメールアドレス、電話番号には文字列を設定した場合、次のように記載します。

Power AppsからPower Automateへパラメータを渡す設定例
AutomateTest.Run("らむね", "ramune@dotcom.com", "080-0000-0000")

Power AutomateからPower Appsに値を渡したい場合

Power Automateのフローで処理した結果をPower Appsに戻したい場合もあります。

その場合は、「Power AppsまたはFlowに応答する」アクションを追加します。

Power Appsからフローに値を渡す場合と同様に、6種類のパラメータから選択できます。

Power AutomateからPower Appsへ値を返すアクションの設定画面

Power Appsでフローの結果を利用する場合は、戻り値を変数に格納するとアプリ内で使用できます。

Set(myResult, 'フロー名'.Run("パラメータ"))

フロー内のパラメータの属性変更

Power Automateのフローのパラメータは、必須(Required)オプションに変更できます。

必須パラメータは値がないとフローでエラーになります。オプションは、値がなくてもフローを実行できます。

デフォルトでは必須になっています。

変更する場合は、パラメータの横にある3点メニューから「フィールドをオプションにします」を選択すると、オプションに変更されます。

Power Automateのパラメータをオプションに変更する画面

パラメータが既にオプションになっている場合は、「フィールドを必須にします」が表示されます。

必須かオプションかを変更しても見た目は変わらないため、画面上だけで判断することは難しいです。

Power Automateのオプションパラメータを必須に戻すメニュー

オプションのパラメータで値が存在しない場合のエラーを回避するには、パラメータの前に?を指定します。

必須の場合は次のように記載します。

triggerBody()['text']

オプションの場合は次のように記載します。

triggerBody()?['text']

値が存在しない場合はnullになります。

Power Appsからフローにパラメータを渡す場合も、必須とオプションで書き方が変わります。 オプションのパラメータは{ }で囲みます。

例えば名前とメールアドレスが必須、電話番号がオプションの場合は次のように記載します。

AutomateTest.Run("らむね", "ramune@dotcom.com", {電話番号:"080-0000-0000"})

Power Automateを変更した場合はPower Appsでフローを更新する

Power Automateのフローを変更した場合、Power Apps側でフローの更新を行う必要があります。

Power Appsの「Power Automate」ボタンをクリックし、フロー名の右側にある3点メニューを選択します。

「最新の情報に更新」をクリックし、フローを最新の状態に更新してください。

Power AppsでPower Automateのフローを最新の情報に更新する画面

アプリの作成者とフローの所有者は同じであること

アプリ内にフローを追加するには、前提としてフローの所有者である必要があります。

アプリとフローを分業で作成する場合などは注意してください。

アプリ共有時の注意点

アプリを他のユーザーに共有する場合、紐づいているPower Automateのフローも共有するか、実行専用ユーザーとして設定する必要があります。

スポンサーリンク