Power Apps から Power Automate のフローを実行する場合におなじみの「Power Apps トリガー」に新しくV2が登場しましたので、今回は現行トリガー (V1) から V2への変更点と注意事項をまとめます。
変更点
主な変更点は Power Apps からデータを取得する際の変数の定義方法です。
V1トリガーでは、Power Apps からデータを取得するために、利用するアクションの入力で動的コンテンツから「Ask in PowerApps」を選択していました。
これを行うことで Power Apps からデータを渡す入れ物ができて、アプリでフローの実行を書くときに入力を指定できるようになります。
この場合、以下3点で標準で少し使いづらさがあります。(ほかにもあるでしょうが)
- 名前を指定できない (回避策はある)
- 入力が必須
- トリガーで必要な項目が分散する
1は アクションと項目名 によって決定される名前なので、例えば「JSONの解析」で「Ask in PowerApps」すると、もはやそれが何のデータを渡せばいいのかわからなくなります。
回避策としては変数の初期化アクションに適切な名前を付けて、そこで「Ask in PowerApps」することです。
2はフローのJSONをいじらないとオプションにできなそうです。実際のフロー内では必須でないものもとりあえず渡す必要があるので、「渡さなかったのか空で渡したのか」が判別しにくくなります。
3はフロー上のアクションでいきなり追加するわけですから、何を渡すのか、トリガーを見ただけでは不明瞭です。
新しいトリガーV2ではこれら3点が解消されます!
V2トリガーにおける受け渡しデータの定義
V2トリガーではフローボタンと同様に、トリガーで渡すデータを定義します。ここが唯一の変更点であり、重要なポイントです。
入力として必要なだけ、データ型と名前を指定して追加していき、それぞれのオプションを指定します。
オプションには入力を必須としない (オプションにする) や、複数の選択肢から設定する といったものがあります。
この点もボタントリガーと同様です。
ここでつけた名前は後続アクションでも表示されます。これまでのように「アクション名_項目名」形式ではないので、何のためのどういう入力なのかをわかりやすくできます。
Power Apps 側での挙動
Power Apps ではどのように表示されるか確認してみると、フロー側でドロップダウンから選択 にした項目は、アプリ側でも選択肢になっていることがわかります。
また、オプションの項目は (オプションが複数ある場合を想定して) レコード型で指定する必要があります。
このように、これまでオプションにできなかった項目の定義や、受け渡す値の制限も今回のトリガー変更で実現できるようになりました。
おまけ: File指定時の渡し方
入力データには「File」という項目もあります。
これをPower Apps側から指定するのが少し難解です・・。
フローを追加すると、Fileがレコード形式のデータなのはわかりますが、どう渡せばいいのかわからないんですね。結論から書くと
PA_V2.Run( {file: { contentBytes: ここにメディア型の値, name: ここにファイル名 } } )
上記のように、{file:{contentBytes:xxxx, name: yyyy}}
のように入れ子になったレコード型を入れる必要があります。
上図を見てもわかる通り、Power Apps 上でのメディア型 のデータを直接わたせるんです!!!
これは大きいですね。
これまで何らかのファイルをフローに渡すときには JSON(xxxxx, IncludeBinaryData)
をして、data Uri に変換して文字列で受け渡していました。
フロー上ではdataUriToBinary()していたわけです。( このあたりは過去の投稿を参照してください )
これが不要になります。少なくとも よく使う SharePointへのファイル保存、メールへの添付などでは。
ただし・・・
注意事項
contentBytes で受け渡しているのは Base64 化されたメディアの情報で、メディアの種類は含まれていません。
このため、もしメディアの種類で条件判定する場合には、ファイル名の拡張子から判別する必要が出てきます。
ここが少し厄介ですね。 JSON -> dataUriToBinary の場合には、dataUriがメディアの種類を含んでいるので、ファイルの拡張子を見なくてよかったので。
ということで、アクションによっては注意が必要で、これまでの方法もケースによってはいまだに有効です。
おわり
今回は新しくなった Power Automate のPower Apps トリガー V2 について変更点を紹介しました。
特に入力をオプションにできる、特定の値に制限できる点や、ファイルをPower Apps内のメディアそのまま渡せる点は非常に強力なアップデートといえます。
これまでのフローをすぐに置き換える必要はありませんが、これから新規で作る場合には新しいトリガーで作っていったほうがよいでしょう。