Power Appsだけでは行えない処理を実行したいときや、Power AppsをトリガーとしてPower Automateを起動させたいことがあると思います。
Power AutomateとPower Appsを連携するやり方をまとめてみます。
※前提としてすべてPower Appsでアプリを完成後、Power Automateを追加するとします。
Power Automateのフローをまだ作成していない場合は、Power Appsの左側のメニューバーにある「Power Automate」から作成可能です。こちらをクリックすると、「フローを新規作成する」が表示されているので、クリックするとPower Automateのメニューが表示されます。
ただこのやり方だとバージョンの古いものが選択されてしまいます。もし選択した場合は、古いバージョンを削除し、Power Apps(V2)を入れることをお勧めします。
Power Automateの画面で自動化したクラウドフローを選択後「Power Apps」を選択すると、下記のようにバージョンが2つ出てきます。上に出てきたバージョンは先ほど説明したバージョン、2つめの黄色塗色されたものが最新のバージョンになります。(2023年2月現在)
今回はPower Apps(V2)を使用してフローを作成します。
Power Appからフローに対して値を渡したい場合、前提条件としてPower Automate側でパラメータ(型)を作成する必要があります。パラメータの種類は全部で6種類あります。
テキスト型、はい/いいえのBoolean型、ファイル、電子メール、数、日付のうちのどれかを選択し、名前を付けてください。ここで設定した名前(黄色下線部)がフローの動的なコンテンツで表示される名前になります。
今回はフローの作成は割愛します。
フロー完成後、Power Apps側にフローを追加するため「Power Automate」をクリックし、「+フローの追加」ボタンを押すと、Power Automateにあるマイフローの一覧が表示されるため、追加したいフロー名を選択します。
フローをアプリから呼び出すときは”フロー名”.Run(“パラメータ1”, “パラメータ2”)と記載します。パラメータはアプリからフローに値を渡します。フローで設定した分だけパラメータを明記します。
今回のアプリでは、トリガーとなるボタンの[OnSelect]プロパティに記載します。
パラメータはフローで設定した順番で記載します。順番は間違えないようにしてください。
例えばAutomateで「氏名」、「電子メール」、「電話番号」の順で設定していた場合は下記のように記載します。先ほど氏名には文字列、電子メールにはメールアドレス、電話番号は文字列と型を設定したため、型にあてはまるように引数を入力します。
AutomateTest.Run("らむね", "ramune@dotcom.com", "080-0000-0000")
フローで出した値をPower Appsに戻したい場合もあるかと思います。
その場合は、「Power AppsまたはFlowに応答する」アクションを追加してください。フローからアプリに値を渡したい場合と同様、6種類のパラメータを選ぶことができます。
またアプリでフローの結果を利用する場合は、変数に格納してあげるとアプリで使用できるようになります。
Set(myResult, 'フロー名'.Run("パラメータ"))
Power Automateのフローのパラメータは必須(Required)とオプションに変更することが可能です。必須はその名のごとく必須なため、ないとフローはエラーになります。オプションは「あったら書いてください、なければなくてもいいです。」という感じです。
デフォルトは必須になっています。
変更する場合はパラメータの横にある3点メニューから「フィールドをオプションにします」を選択すると、オプションに変更されます。
パラメータが既にオプションになっている場合は、「フィールドを必須にします」が表示されます。必須かオプションか選択しても見た目は一切変わりませんので、見た目で判断することは難しいです。
オプションにしてエラーが表示されないようにするためには、パラメータの前に”?”を入力するとフローでのエラーが回避されます。
必須(Required):triggerBody()[‘text’]
オプション(Option):triggerBody()?[‘text’]
値が存在しない場合は「null」に設定されます。
Power Appsからフローにパラメータを渡す場合の書き方は必須とオプションで変わります。オプションはパラメータの前後を{ }で囲ってあげる必要があります。
名前、メールアドレスは必須、電話番号がオプションの場合は下記の書き方になります。
AutomateTest.Run("らむね", "ramune@dotcom.com", {電話番号:"080-0000-0000"})
Automateのフローを変更した場合、やらなければいけないことがあります。フローの更新です。
「Power Apps」のPower Automateのボタンをクリックし、フロー名の右側にある3点メニューを選択し、最新の情報に更新ボタンをクリックし、フローを最新の状態に更新してください。
更新しない場合、エラーが出ます。
アプリ内にフローを追加するには前提としてフローの所有者である必要があります。
アプリとフローを分業で作成する場合などはお気を付けください。