while 迴圈工作
使用「While Loop」工作,您可以從目前的 (主要) 整合服務重複呼叫子整合服務,直到符合指定條件為止。
「API 觸發條件 ID」和「整合名稱」會識別您要執行的子整合項目。
這項工作也能讓您收集各個子整合執行的回應,並將值儲存在目前的整合中,以供下游工作使用。您可以透過下列任一方式收集回覆:
- 在陣列變數中彙整每次執行的回應,陣列的每個元素都包含一次執行的回應。如要彙整回覆,請設定
Collect values from sub-integration output(s)屬性。 - 將所有執行作業的回覆彙整到單一變數中。如要匯總回覆,請設定
Override values from sub-integration output(s)屬性。
事前準備
- 確認您已將使用者代管的服務帳戶附加至整合功能。如果整合服務未設定使用者管理的服務帳戶,系統預設會使用預設服務帳戶 (
service-PROJECT_NUMBER@gcp-sa-integrations.iam.gserviceaccount.com) 進行驗證。 - 確認服務帳戶具備「Application Integration 叫用者」IAM 角色。如要瞭解如何將角色授予服務帳戶,請參閱「管理服務帳戶的存取權」。
設定屬性
下表說明「While Loop」工作的設定屬性。
| 屬性 | 資料類型 | 說明 |
API Trigger ID
|
String | 要執行的子整合作業觸發 ID。
這個值位於子整合服務的「API 觸發條件」中的「觸發條件 ID」欄位。 |
Integration name |
String | 要執行的子整合名稱。 |
While loop condition
|
不適用 | 終止迴圈的條件。子整合會持續執行,直到符合條件為止。例如 $loopMetadata.current_iteration_count$< 10。 |
Map to sub-integration input(s)
|
不適用 | 要從目前整合傳遞至子整合的值。
這個屬性的值為鍵/值組合,其中鍵是目前整合中的變數,值則是子整合中的對應輸入變數。舉例來說,假設主要整合含有 |
Collect values from sub-integration output(s)
|
不適用 | 彙整子整合執行作業的結果。
每次執行子整合作業時,您都可以將子整合作業的輸出內容儲存在目前整合作業的陣列變數中。在「Sub-Integration output to collect from」(要從中收集的子整合作業輸出) 欄位中,輸入子整合作業的輸出變數,然後從「Integration variable to collect into」(要收集到的整合作業變數) 下拉式選單中,選取目前整合作業的陣列變數。陣列的每個元素都包含特定子整合執行的回應。舉例來說,如果陣列變數為 |
Override values from sub-integration output(s)
|
不適用 | 讀取子整合作業執行的輸出變數,並儲存在目前整合作業的變數中。
從「Sub-integration output to map from」(要對應的子整合輸出) 下拉式選單中選取子整合的輸出變數,然後從「Integration variable 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。
|
最佳做法
如要瞭解 While Loop 工作適用的用量限制,請參閱「 用量限制」。
錯誤處理策略
工作錯誤處理策略會指定工作因暫時性錯誤而失敗時,系統應採取的動作。如要瞭解如何使用錯誤處理策略,以及不同類型的錯誤處理策略,請參閱「錯誤處理策略」。
配額與限制
如要瞭解配額和限制,請參閱「配額與限制」。