ヘルパーフローについて
ヘルパーフローは、アプリケーションのイベント主導やAPI Endpointフローなど、親フローをより効率的に管理および実行するために使用されます。
Workflowsインターフェイスの従来の子フローは、新たにヘルパーフローと呼ばれるようになりました。これらのフローの機能は変更されていません。
ヘルパーフローは、いくつかのシナリオで有用です。
-
単一のフロー内で何回も使用される、または複数のフローで使用される一連のステップが存在する。この一連のステップをそれ自体の「子フロー」に移行することにより、一度だけこのステップを作成して、繰り返しこれを利用できます。Call Flow関数またはCall Flow Async関数を使用することにより、他のフローからこのステップを実行します。
-
リストのアイテムを1つずつ処理する。たとえば、For Each関数 を使用して各リストアイテムに対し一連のステップを実行したり、Map関数を使用してあるリストを新しいリストに変換したりできます。
-
単に非常に大きなフローを小さい単位に分割し、管理しやすくすることもできます。
リスト関数とヘルパーフローの併用について
ヘルパーフローを使用すると、リストの各アイテムを確認できるため、リスト関数に役立ちます。これらのヘルパーフローには、リスト内のアイテムの種類に対応する 入力、各アイテムに対しタスクを実行する 関数 、および 結果(制御カテゴリー内に存在)を持たせることができます。
たとえば、オブジェクトをオブジェクトのリストに変換することで、キーと値の各ペアを、propertyname
キーとpropertyvalue
キーを持つオブジェクトに変換できます。これは、クラウドAPIで一般的なパターンです。 propertyname
には、 custom:
というプレフィックスを付ける必要もあります。 これは、ヘルパーフローを使用して行えます。子フローは、キー、 値、および不変のプレフィックス(すべてのステップで同じもので、親フローがこれを渡します)を受け付け、2つのキーを持つ1個のオブジェクトを返します。
このフローは、object.mapと併用すると、以下のオブジェクト
{"this":"that","up":"down","left":"right"}
を以下に変換します。
[
{
"propertyname" : "custom:this" ,
"propertyvalue" : "that"
} ,
{
"propertyname" : "custom:up" ,
"propertyvalue" : "down"
} ,
{
"propertyname" : "custom:left" ,
"propertyvalue" : "right"
}
]
ヘルパーフローの出力
それぞれのヘルパーフロー カードには、次の出力があります。
フィールド | 定義 |
---|---|
このフローへの入力 | [Click or drag to create(クリックまたはドラッグして作成)]をクリックし、カスタムフィールドを追加します。それぞれの名前とデータ型(テキストや数値など)を指定します。作成する各カスタム フィールドは、ヘルパーフローを呼び出すフローから予測される入力に対応します。 |
context | このセクションの出力には、フローが実行されるごとに値が自動的に割り当てられます。 |
Index | この数値出力には、リストの各アイテムについてループ実行される関数(For Each関数やMap関数など)からフローが呼び出されるときに値が割り当てられます。 Index の値は、フローのこのインスタンスで処理されるアイテムの、リスト内での位置に対応します(0から開始)。 |
Caller | Callerオブジェクトのキーは、ヘルパーフローを呼び出したのがどのフローか(idおよびname)、フローのどの実行で呼び出しが行われたか(execution_id)、フローのどのステップで呼び出しが行われたか(固有IDであるmethod)を示します。ヘルパーフローが手動で実行された場合、idとexecution_idはnullです。これは、デバッグのため特に便利です。 |
エラー | このオブジェクト出力には、フローがエラー処理用に呼び出されるとき値が割り当てられます。フローにおけるカードのエラー処理の設定をご覧ください。 Errorの値は、エラーを引き起こしたアプリケーションまたはアクションから返された、元のエラーオブジェクトに対応します。たとえば、オブジェクトには多くの場合「message」、「statusCode」、「execution」を含むキーが存在します(エラーを引き起こしたフロー実行の固有の識別子で、実行履歴のURLを構築し、エラーを引き起こしたフローの詳細を参照するため使用できます)。 |
Execution ID | フローインスタンスの一意の ID |