Application Integration でサポートされているコネクタをご覧ください。
For Each Loop タスク
For Each Loop タスクでは、現在(メイン)の統合からサブ統合を繰り返し呼び出すことができます。タスクは構成された配列変数を反復処理し、配列内の各要素のサブ統合を呼び出します。サブ統合が呼び出される回数は、配列変数のサイズと同じです。
API トリガー ID と統合名は、実行するサブ統合を特定します。
このタスクでは、各サブ統合の実行からレスポンスを収集し、その値をダウンストリーム タスクで使用するために現在の統合に保存することもできます。次のいずれかの方法でレスポンスを収集できます。
- 配列変数で各実行のレスポンスを照合し、配列の各要素は 1 つの特定の実行からのレスポンスを受け取ります。レスポンスを照合するには、
Collect values from sub-integration output(s)
プロパティを構成します。 - すべての実行のレスポンスを 1 つの変数に集計します。レスポンスを集計するには、
Response parameter override mapping
プロパティを構成します。
始める前に
- 統合にユーザー管理のサービス アカウントが関連付けられていることを確認します。統合にユーザー管理のサービス アカウントが構成されていない場合は、デフォルトで、デフォルトのサービス アカウント(
service-PROJECT_NUMBER@gcp-sa-integrations.iam.gserviceaccount.com
)が認証に使用されます。 - サービス アカウントに Application Integration の起動元 IAM ロールが付与されていることを確認します。サービス アカウントへのロールの付与については、サービス アカウントに対するアクセス権の管理をご覧ください。
構成プロパティ
次の表に、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 ペアの形式です。キーは現在の統合の変数で、値はサブ統合で対応する入力変数です。たとえば、 |
Collect values from sub-integration output(s)
|
なし | サブ統合の実行結果を照合します。 サブ統合が実行されるたびに、現在の統合の配列変数にサブ統合の出力を格納できます。サブ統合の出力変数を [Sub-integration output to collect from] プルダウンから選択し、現在の統合における配列変数を [Integration variable to collect into] プルダウンから選択します。配列の各要素には、特定のサブ統合実行のレスポンスが含まれます。たとえば、配列変数が |
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_count 、sub_integration_execution_ids 、failure_location 、current_element 、iteration_element 、failure_message などの出力変数が含まれます。 |
例
以降のセクションでは、特定のシナリオで For Each Loop タスクを構成して使用する方法の具体的な例を示します。次の例は、さまざまなユースケースの構成手順を示しています。
各要素を反復処理して渡す
["P1", "P2", "P3"]
などの値を含む productIds
という配列変数を持つメイン統合があるとします。各商品 ID に対して GetProductDetails
という名前のサブインテグレーションを呼び出すには、次のように For Each Loop タスクを構成します。
- [List to iterate] を
productIds
に設定します。 - 反復処理要素のサブ統合マッピングを設定して、
productIds
の現在の要素をGetProductDetails
の変数(subIntProductId
など)にマッピングします。
GetProductDetails
の各実行は、productIds
から 1 つの商品 ID を受け取ります。
サブ インテグレーションの出力を収集する
前の例と同様に、GetProductDetails
は productInfo
という出力変数で 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 タスクに適用される使用量上限については、 使用量上限をご覧ください。
エラー処理方法
タスクのエラー処理方法では、一時的なエラーによってタスクが失敗した場合のアクションを指定します。エラー処理方式と、さまざまな種類のエラー処理方式の詳細については、エラー処理方法をご覧ください。
割り当てと上限
割り当てと上限については、割り当てと上限をご覧ください。
次のステップ
- すべてのタスクとトリガーを確認する。
- インテグレーションをテストして公開する方法について学習する。
- エラー処理について学習する。
- 統合の実行ログについて学習する。