見出し画像

Power Automateでアクションのインプットを他のアクションに使う方法

Power Automateで、複数のアクションにそれぞれ同じインプットの設定をすることがあります。
たとえば、1つのフローの中で、Teamsのチャネルへの投稿と、その投稿への返信をするような場合、「チャネル内のメッセージで応答します」のアクションのインプットのうち、メッセージIDは動的な値にありますが、チームとチャネルはリストから選んで設定しないといけない…(ですよね?)
これが地味にめんどくさい…。
めんどくさいと思いつつ、1つ1つ設定していたのですが、これを解決する方法をやっと学んだのでメモしておきます。

①先行するアクションの「設定」で追跡対象プロパティを設定する
KeyはなんでもOK。例では「Team」と「Channel」にしています。
Valueはダブルコーテでくくって、以下のように記入。

"@action()?['inputs']?['parameters']?['body/recipient/groupId']"
"@action()?['inputs']?['parameters']?['body/recipient/channelId']"

@action()?['inputs']? 以降の部分は、該当のアクションを一旦実行して、実行履歴のinputのJSONからパスを拾います。

実行履歴の該当アクションの「入力」>「未加工入力の表示」

②後続アクションで使う
後続のアクションのインプットに「式」で以下のように設定。

actions('チャットまたはチャネルでメッセージを投稿する')?['trackedProperties']?['Team']
actions('チャットまたはチャネルでメッセージを投稿する')?['trackedProperties']?['Channel']

「チャットまたはチャネルでメッセージを投稿する」の部分は①のアクション名、['Team']、['Channel']の部分は①で設定したKey。

こういうフローが1つで投稿と返信も1つずつであれば、それぞれ同じ設定をした方が早いし分かりやすいのですが、返信のアクションが複数あったり、フローを複製して投稿先を変えて使うような場合には動的に取得出来ると便利だと思います。


追跡対象プロパティの使い方はこちらのHiroさんのブログで学びました。
分からないことがあって調べているとたいていこちらにたどり着きます。
ありがたい!!

こういうことができるのでは?と考え始めるキッカケは、気ままに勉強会からいただきました。
いつもありがとうございます!
https://kimamani.connpass.com/




この記事が気に入ったらサポートをしてみませんか?