查看 Application Integration 支援的連接器

針對每個迴圈工作

針對每個迴圈工作,可讓您從目前的 (主要) 整合作業重複呼叫子整合作業。這項工作會疊代設定的陣列變數,並針對陣列中的每個元素呼叫子整合。子整合的呼叫次數等於陣列變數的大小。

「API 觸發條件 ID」和「整合名稱」會識別您要執行的子整合項目。

這項工作也能讓您收集各項子整合執行的回應,並將值儲存在目前的整合中,以供下游工作使用。您可以透過下列任一方式收集回覆:

  • 將每次執行的回應彙整到陣列變數中,其中陣列的每個元素都包含一次執行的回應。如要彙整回覆,請設定 Collect values from sub-integration output(s) 屬性。
  • 將所有執行的回應彙整到單一變數中。如要匯總回覆,請設定 Response parameter override mapping 屬性。

事前準備

設定屬性

下表說明「For Each Loop」工作的設定屬性。

屬性 資料類型 說明
API Trigger ID String 要執行的子整合觸發 ID。

這個值位於子整合服務的「API 觸發條件」「觸發條件 ID」欄位中。

Integration name String 要執行的子整合名稱。
List to iterate 布林值、字串、整數、雙精度浮點數或 JSON 類型的陣列。 子整合應執行的值清單。系統會依序針對清單中的每個值執行子整合。

您可以設定「疊代元素子整合對應」屬性,將疊代值傳遞至子整合。在這個屬性中,請指定子整合中的變數,疊代值必須對應至該變數。

Iteration element sub-integration mapping 不適用 子整合中的變數,目前疊代的元素必須指派給該變數。
Map to additional sub-integration input(s) 不適用 要從目前整合傳遞至子整合的其他值。

這個屬性的值為鍵/值組合,其中鍵是目前整合中的變數,值則是子整合中的對應輸入變數。舉例來說,假設主要整合含有 productID 變數,而您想將該變數對應至 subIntProductID 子整合變數,請從「要對應的整合變數」下拉式選單中選取 productID,然後在「要對應的子整合輸入」下拉式選單中選取 subIntProductID

Collect values from sub-integration output(s) 不適用 彙整子整合執行作業的結果。

每次執行子整合作業時,您都可以將子整合作業的輸出內容儲存在目前整合作業的陣列變數中。從「Sub-integration output to collect from」(要從子整合作業收集的輸出內容) 下拉式選單中選取子整合作業的輸出變數,並從「Integration variable to collect into」(要收集至的整合作業變數) 下拉式選單中選取目前整合作業的陣列變數。陣列的每個元素都包含特定子整合執行的回應。舉例來說,如果陣列變數為 resultsArray,則 resultsArray[0] 包含第一次執行的回應,而 resultsArray[1] 包含第二次執行的回應。

Response parameter override mapping 不適用 讀取子整合作業執行的輸出變數,並儲存在目前整合作業的變數中。

從「Sub-integration output to map from」(要對應的子整合作業輸出) 下拉式選單中選取子整合作業的輸出變數,然後從「Integration variable 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」工作。這些範例說明不同用途的設定步驟:

疊代並傳遞每個元素

假設您有一個主要整合,其中包含名為 productIds 的陣列變數,內含 ["P1", "P2", "P3"] 等值。如要為每個產品 ID 呼叫名為 GetProductDetails 的子整合,請依下列方式設定「For Each Loop」工作:

  • 將「List to iterate」(要疊代的清單) 設為 productIds
  • 設定「疊代元素子整合對應」,將 productIds 的目前元素對應至 GetProductDetails 中的變數,例如 subIntProductId

每次執行 GetProductDetails 時,都會從 productIds 收到一個產品 ID。

收集子整合輸出內容

如上一個範例所示,假設 GetProductDetails 會在名為 productInfo 的輸出變數中傳回 JSON 物件。

如要收集每次子整合執行作業的所有 productInfo 輸出內容,並將這些內容儲存為主要整合中的陣列變數元素,請按照下列步驟操作:

  • 設定「從子整合輸出內容收集值」
  • 從「Sub-integration output to collect from」(要收集的子整合輸出內容) 中選取 productInfo
  • 在主要整合中選取陣列變數,例如「Integration variable to collect into」(要收集的整合變數) 中的 allProductDetails

迴圈完成後,allProductDetails 會成為陣列,每個元素都是來自一個子整合執行的 productInfo JSON。

匯總結果 (覆寫回應)

假設您有一個主要整合項目,會針對清單中的每個項目呼叫子整合項目 (例如 GetProductDetails),而您想計算所有項目的總價。如要加總每次子整合執行作業傳回的數值,請按照下列步驟操作:

  • 確認子整合會在輸出變數 itemPrice 中傳回值。
  • 在主要整合中,將 totalPrice 變數初始化為 0
  • 設定「回應參數覆寫對應」
    • itemPrice (來自子整合) 對應至 totalPrice (在主要整合中)。
  • 在「對應至其他子整合輸入」部分:
    • totalPrice (來自主要整合作業) 對應至子整合作業中的輸入變數,例如 currentTotal
  • 在子整合的邏輯中,將目前商品的價格新增至從主要整合收到的 currentTotal。然後,在名為 itemPrice 的輸出變數中傳回這個新總和。這個程序會建立累計匯總。

傳遞其他輸入內容

如果子整合 GetProductDetails 需要主要整合的 currency 程式碼,請按照下列步驟操作:

  • 在「對應至其他子整合輸入」部分:
    • 將主要整合作業變數 currencyCode 對應至子整合作業輸入變數 subIntCurrency
  • 這個 currencyCode 會傳遞至子整合的每次執行作業。

如要瞭解實用逐步指南,以及前幾節討論概念的可執行範例,請參閱下列整合範例:

最佳做法

如要瞭解 For Each Loop 工作適用的用量限制,請參閱「 用量限制」。

錯誤處理策略

工作錯誤處理策略會指定工作因暫時性錯誤而失敗時,系統應採取的動作。如要瞭解如何使用錯誤處理策略,以及不同類型的錯誤處理策略,請參閱「錯誤處理策略」。

配額與限制

如要瞭解配額和限制,請參閱配額和限制

後續步驟