プログラムやワークフローを作成していると、同じような処理を作成することがよくある。
普通は共通処理として抜き出して色々な場所から呼び出す、みたいにすると思うけれど、Power Automateにそういう機能があるか気になったので調べてみた。
結果
僕が調べた限りだけれど、「現状、関数化機能はないと思う」という結果。
2020/11/9追記
Takuya Hiroseさんからコメントを頂きまして、できることがわかりました!
コメント本当にありがとうございます!!
「子フローを呼び出す」アクションの使い方
コメントに頂いた通り、子フローを呼び出す仕組みをつくる大前提として、「親フロー、子フローともにソリューションの中で作成されている」必要がある。
ということで、まずソリューションに親フローと子フローを作成
ついでにソリューションをもう1個作って、そこにも子フローを作成
子フローの中身はこんな感じ。呼び出されるフロー(今回は子フロー)は「Power AppsまたはFlowに応答する」アクションを実装する必要がある。
一応、子フロー2はこんな感じ。
で、親フローを作成し、「子フローの実行」をアクションを選ぶ!
子フロー発見!!
ということで、親フローをこんな感じにして、実行!
できた! ちゃんと値が戻ってきている!
子フロー2も問題なく成功しているので、ソリューションをまたぐ呼び出しも可能っぽい!
見た感じ、自身を呼び出すこともできそうなので、再帰も可能っぽく見える(未検証)。
※2020/12/2追記
→自フローを(今回は親フローを)呼び出すことはできませんでした。。。
HTTPを使用して実現
2020/11/9追記:このやり方はたぶん古いやり方だと思われます。。。
有料版であればHTTP系のアクションを使えば似たような機能を実現はできる。
ほんとにざっくりと手順を紹介すると、
- HTTP要求をトリガーにするワークフロー(子フロー)を作成する。
- 親ワークフローを作成し、共通機能を呼び出したいところでHTTP要求を投げて子フローを起動する
という感じ。
詳しくはこちらで。
Microsoft Power Automate
結び
Nintexでは「コンポーネントワークフローの実行」を使用すれば関数化可能。
Power Automateでもできるようになっていて、非常に助かる!!!
コメント
子フローを呼び出すためには、呼び出される子フロー、それを呼び出す親フロー、共に、ソリューションの中で作成されている必要があります。
ドキュメントが更新されており、その点について記載が加わっています。
「子フローの作成」
https://docs.microsoft.com/ja-jp/power-automate/create-child-flows
Takuya Hiroseさん
コメントありがとうございます!
関数化できることがわかり、作業がめちゃめちゃ捗りました!!
本当にありがとうございます!