Power Automateの子フローの実行アクションを詳しく解説|共通機能を関数化しフローの開発効率を上げる

Power Automateで共通機能の関数化を実現する「子フロー」について詳しく調べたので、その内容をメモ。

スポンサーリンク

子フロー(Child Flow)

Power Automateにおける子フローとは、他のフロー(親フロー)から呼び出すことができるフローのことで、共通機能を子フロー化することで、開発時間の短縮が見込める。

フローを子フローとして扱うには、以下の3つの条件を満たす必要がある。

  • フローがソリューションに入っていること
  • トリガーが手動トリガーまたはPower Apps(V2)トリガーであること
  • 「Power Appsまたはフローに応答」アクション、または「応答」アクションが呼び出されること

まずは基本的な使い方から紹介。

子フローの基本的な使い方

今回は例として、引数として「名前」を受け取り、戻り値として「挨拶」を返す子フローを作成する。

子フローの構築

まずは子フローの構築から。ソリューション内で「インスタントフロー(すぐに)」を選択し、
手動トリガーを選択し、フローを作成する。
[入力の追加]から、引数として受け取る「name」を追加し、
「Power Appsまたはフローに応答する」アクションを追加。
[出力追加]から、受け取った名前の頭にHelloを付けた文字列を設定し、子フローの構築は完了。

子フローを呼び出す

作成したフローを親フロー(呼び出す側のフロー)から使ってみる。新しいフローを作成し、
アクション「子フローの実行」を追加する。
[子フロー]に先ほど作成したフローを選択して、
引数[name]に適当な文字列を入れて、呼び出す側のフローの構築は完了。
※戻り値は[動的なコンテンツ]から使用可能。
親フローを実行すると、子フローが実行されて「挨拶」が戻ってきていることがわかる。

トリガーは「Power Apps(V2)」トリガーでもOK

子フローのトリガーは「Power Apps(V2)トリガーでもOKで、
問題なく親フローから呼び出すことができる。

戻り値の設定は「応答」アクションでもOK

戻り値の設定は「応答」アクションでもOKで、
状態コード(200は成功)を設定し、戻り値にJSONを設定すれば、
親フローから呼び出すことができる。

子フローを作る際の注意点

最後に子フローを作る際の注意点を解説。

応答アクションは必須

画像のように、子フローから「Power Appsまたはフローに応答」アクションを削除すると、
親フローから呼び出した際にエラーが発生する。

ということで、子フローには「応答」系のアクションは必須。

親フロー自身の呼び出しは不可(再帰処理は不可)

親フローから子フローとして自分自身を呼び出すことはできない。

よって子フローを再帰処理のように使うことはできない

成功時と失敗時で異なる応答を返したい場合は「応答」アクションを使用

「Power Appsまたはフローに応答」アクションを使用し、成功時と失敗時で異なる出力の形式にすると保存時にエラーが発生する。
※エラー:The schema definition for action with status code ‘200’ is not valid. The schema definitions for actions with same status code must match.Upgrade
こんなときは「応答」アクションを使用し、異なる状態コードを割り当てると、本文の形式が異なっても保存できる。

コメント

  1. Takuya Hirose より:

    子フローを呼び出すためには、呼び出される子フロー、それを呼び出す親フロー、共に、ソリューションの中で作成されている必要があります。
    ドキュメントが更新されており、その点について記載が加わっています。

    「子フローの作成」
    https://docs.microsoft.com/ja-jp/power-automate/create-child-flows

  2. Ippu ふう より:

    Takuya Hiroseさん
    コメントありがとうございます!
    関数化できることがわかり、作業がめちゃめちゃ捗りました!!

    本当にありがとうございます!

タイトルとURLをコピーしました