Application Integration でサポートされているコネクタをご覧ください。

For Each Loop タスク

For Each Loop タスクでは、現在(メイン)の統合からサブ統合を繰り返し呼び出すことができます。タスクは構成された配列変数を反復処理し、配列内の各要素のサブ統合を呼び出します。サブ統合が呼び出される回数は、配列変数のサイズと同じです。

API トリガー ID統合名は、実行するサブ統合を特定します。

このタスクでは、各サブ統合の実行からレスポンスを収集し、その値をダウンストリーム タスクで使用するために現在の統合に保存することもできます。次のいずれかの方法でレスポンスを収集できます。

  • 配列変数で各実行のレスポンスを照合し、配列の各要素は 1 つの特定の実行からのレスポンスを受け取ります。レスポンスを照合するには、Collect values from sub-integration output(s) プロパティを構成します。
  • すべての実行のレスポンスを 1 つの変数に集計します。レスポンスを集計するには、Response parameter override mapping プロパティを構成します。

始める前に

構成プロパティ

次の表に、For Each Loop タスクの構成プロパティを示します。

プロパティ データ型 説明
API Trigger ID 文字列 実行するサブ統合のトリガー ID。

この値は、サブ統合の API トリガーの [Trigger ID] フィールドで利用できます。

Integration name 文字列 実行するサブ統合の名前。
List to iterate ブール値、文字列、整数、Double、JSON 型の配列。 サブ統合の実行対象となる値のリスト。サブ統合は、リスト内の値ごとに 1 つずつ実行されます。

[Iteration element sub-integration mapping] プロパティを設定することで、反復値をサブ統合に渡すことができます。このプロパティで、反復値をマッピングする必要があるサブ統合で変数を指定します。

Iteration element sub-integration mapping なし 現在の反復要素を割り当てる必要がある、サブ統合の変数。
Map to additional sub-integration input(s) なし 現在の統合からサブ統合に渡す追加の値。

このプロパティの値は Key-Value ペアの形式です。キーは現在の統合の変数で、値はサブ統合で対応する入力変数です。たとえば、subIntProductID サブ統合変数にマッピングしたい productID 変数がメイン統合にある場合、[Integration variable to map from] プルダウンから productID を選択し、[Subintegration input to map to] プルダウンから subIntProductID を選択します。

Collect values from sub-integration output(s) なし サブ統合の実行結果を照合します。

サブ統合が実行されるたびに、現在の統合の配列変数にサブ統合の出力を格納できます。サブ統合の出力変数を [Sub-integration output to collect from] プルダウンから選択し、現在の統合における配列変数を [Integration variable to collect into] プルダウンから選択します。配列の各要素には、特定のサブ統合実行のレスポンスが含まれます。たとえば、配列変数が resultsArray の場合、resultsArray[0] は 1 回目の実行からのレスポンスが含まれ、resultsArray[1] は 2 回目の実行からのレスポンスが含まれます。

Response parameter override mapping なし サブ統合実行の出力変数を読み取り、現在の統合の変数に保存します。

[Sub-integration output to map from] プルダウンからサブ統合の出力変数を選択し、[Integration function to override] プルダウンから現在の統合で対応する変数を選択します。[Map to additional sub-integration input(s)] プロパティ内の変数をマッピングすることで、現在の統合でオーバーライドされた変数を次のサブ統合に送信できます。その結果、サブ統合の実行からのレスポンスを累積的に集計できます。

Loop metadata JSON 配列 サブ統合の実行の詳細(サブ統合実行 ID、エラー メッセージ、実行中に渡された変数値など)を含む出力変数。ループのメタデータには、current_iteration_countsub_integration_execution_idsfailure_locationcurrent_elementiteration_elementfailure_message などの出力変数が含まれます。

以降のセクションでは、特定のシナリオで For Each Loop タスクを構成して使用する方法の具体的な例を示します。次の例は、さまざまなユースケースの構成手順を示しています。

各要素を反復処理して渡す

["P1", "P2", "P3"] などの値を含む productIds という配列変数を持つメイン統合があるとします。各商品 ID に対して GetProductDetails という名前のサブインテグレーションを呼び出すには、次のように For Each Loop タスクを構成します。

  • [List to iterate] を productIds に設定します。
  • 反復処理要素のサブ統合マッピングを設定して、productIds の現在の要素を GetProductDetails の変数(subIntProductId など)にマッピングします。

GetProductDetails の各実行は、productIds から 1 つの商品 ID を受け取ります。

サブ インテグレーションの出力を収集する

前の例と同様に、GetProductDetailsproductInfo という出力変数で JSON オブジェクトを返すとします。

各サブ統合の実行からすべての productInfo 出力を収集し、メイン統合内の配列変数の要素として保存するには:

  • [サブ統合の出力から値を収集] を構成します。
  • [Sub-integration output to collect from] から productInfo を選択します。
  • [Integration variable to collect into] から、メイン統合の配列変数(allProductDetails など)を選択します。

ループが完了すると、allProductDetails は、各要素が 1 つのサブインテグレーション実行からの productInfo JSON である配列になります。

回答のオーバーライドで結果を集計する

リスト内の各アイテムに対してサブ統合(GetProductDetails など)を呼び出すメイン統合があり、すべてのアイテムの合計金額を計算するとします。各サブ統合の実行から返された数値を合計するには:

  • サブ統合が出力変数 itemPrice で値を返すことを確認します。
  • メイン統合で totalPrice 変数を 0 に初期化します。
  • [Response parameter override mapping] を構成します。
    • itemPrice(サブ統合から)を totalPrice(メイン統合内)にマッピングします。
  • [Map to additional sub-integration input(s)] セクションで、次の操作を行います。
    • totalPrice(メイン統合から)をサブ統合の入力変数(currentTotal など)にマッピングします。
  • サブ統合のロジックで、メイン統合から受け取った currentTotal に現在のアイテムの価格を追加します。次に、この新しい合計を itemPrice という名前の出力変数で返します。このプロセスでは、累積集計が作成されます。

追加の入力を渡す

サブ統合 GetProductDetails でメイン統合の currency コードが必要な場合は、次のようになります。

  • [Map to additional sub-integration input(s)] セクションで、次の操作を行います。
    • メイン統合変数 currencyCode をサブ統合入力変数 subIntCurrency にマッピングします。
  • この currencyCode は、サブインテグレーションのすべての実行に渡されます。

次の統合例では、前のセクションで説明したコンセプトの実用的なステップバイステップ ガイドと実行可能な例を紹介しています。

ベスト プラクティス

For Each Loop タスクに適用される使用量上限については、 使用量上限をご覧ください。

エラー処理方法

タスクのエラー処理方法では、一時的なエラーによってタスクが失敗した場合のアクションを指定します。エラー処理方式と、さまざまな種類のエラー処理方式の詳細については、エラー処理方法をご覧ください。

割り当てと上限

割り当てと上限については、割り当てと上限をご覧ください。

次のステップ