Power Automateの親子フローでは、子フロー側のトリガーや応答アクションにパラメータを設定することで、親フローから子フローにデータを渡したり、逆に子フローから親フローにデータを返したりすることができます。

ただ、入力の種類では配列やオブジェクト(JSON)を選択できないため、ぱっと見た感じだと配列やJSONは渡せないように見えます。
しかし、実は簡単なステップで親子フロー間で配列やオブジェクトを渡すことができます。
子フローを作る
今回は子フローの引数、つまり親フローから子フローへ渡す方法で解説します。
子フローからの戻り値(子フローから親フローへ渡す)であっても、同じ方法で設定できます。
配列やJSONを受け取る入力の種類は「テキスト」にする
「フローを手動でトリガーする」の入力の種類は「テキスト」にします。

受け取った引数は利用前に変数に格納したり、JSONの解析を挟む
受け取った引数は、子フロー内ではまだ文字列(String)として認識されているため、「それぞれに適用する(Apply to each)」のループ対象にしたり、JSONの中身を動的コンテンツで選択したりすることができません。

そのため、まずは変数に格納したり、データ操作系のアクションで配列やJSONとして認識させる必要があります。

上記フローでは、左から順に以下の処理をしています。どの方法を使っても大丈夫なので、目的に応じて使い分けてください。
- 「変数を初期化する」アクションで、編集可能な配列型変数に格納する
- 「変数を初期化する」アクションで、変更可能なオブジェクト型変数に格納する
- 「作成」アクションで、変更しない配列を作成する
- 「JSONの解析」アクションで、JSON内の各値を動的コンテンツで取得可能にする
とりわけ、③と④が使用頻度高めかなと思います。
親フローを作る
親フローでは特別なことをする必要はありません。通常の文字列(String)型やブール(Boolean)型を渡すのと同様に、「子フローの実行」アクション内で引数で渡します。

今回はテスト用に作成した配列とJSONを渡しています。
createArray('a', 'b', 'c')
{
"mail": "xxx@example.com",
"displayName": "John"
}
実行結果
実行してみると、いずれの方法でもテキストとして受け取ったデータが、配列・JSONへ変換できているのがわかります。



まとめ
親子フロー間で配列やJSONでの受け渡しができると、フローの再利用性が高まります。
ぜひ効率的なフロー開発に役立ててください。
コメント