迴圈
使用「迴圈」動作可重複執行一個動作或一組動作指定的次數,或直到符合指定條件為止。
完成下列步驟,可在工作流程中使用「迴圈」動作:
部份 A:配置迴圈動作
1. 按一下
並將
「迴圈」下的
「迴圈」動作拖曳至畫布。
「迴圈」區塊會顯示在畫布上。
2. 將指標置於動作上,然後按一下
,或連按兩下該動作。「迴圈」視窗即會開啟。
3. 視需要編輯「標籤」。依預設,標籤名稱與動作名稱相同。
4. 在「選取迴圈類型」欄位中,選取下列其中一個選項,然後執行其各自的任務:
選取迴圈類型 | 任務 |
---|
「次數」- 重複一或多個任務,直到符合指定計數為止。 當「迴圈」動作內的工作流程不需要上一個動作的任何輸入時,建議您選取此選項。 | 在「次數」欄位中,指定迴圈應執行的次數。 |
「每個項目」- 為陣列或集合中的每個項目重複一或多個任務。 | 在「來源陣列或物件」欄位中,對應上一個動作的輸出,以提供陣列或物件。 |
While - 重複一或多個任務,直到符合指定條件為止。 | a. 在「初始值」欄位中,提供迴圈的初始值。此值可以是數字、布林值、字串或 JSON。 此值會設定 $currentItem 值。此值僅在迴圈開始前使用一次。 b. 在「條件」欄位中,提供條件。如果您要使用「初始值」中的項目,請在內置運算式中使用 $currentItem。例如:{{$currentItem}} < 5。 每次執行迴圈之前都會評估此條件。如果此條件的結果評估為 true,則迴圈會繼續;否則,迴圈會中斷。將「條件」設定為 0、false (不區分大小寫),或將其保留空白,會將條件評估為 false,且會中斷迴圈。 | 如果條件無限為 true,則迴圈會一直執行,直到工作流程逾時為止。預設工作流程逾時為 3 分鐘。 |
c. 在「已更新的值」欄位中,提供更新的值。此值可以是數字、布林值、字串或 JSON。 此值會更新 $currentItem 值。此運算式會在每一個迴圈週期之後評估一次。 | 針對 「已更新的值」欄位,您可以使用迴圈內任何動作的輸出。但是,由於迴圈內動作的輸出並未顯示,因此,您需要 參考動作索引來手動對應輸出。 針對「初始值」與「條件」,如果您使用迴圈內任何動作的輸出,「條件」會評估為 undefined,且「迴圈」會失敗。 |
|
5. 按一下「完成」。
6. 此外,將游標置於「迴圈」區塊上可執行下列任務:
▪ 按一下
可最大化或最小化
「迴圈」區塊。
▪ 按一下
可將
「迴圈」區塊從畫布中移除。
部份 B:在迴圈區塊外新增動作
1. 在工作流程編輯器右側的「動作」面板中,將動作拖曳到「迴圈」區塊外的畫布上。
在「迴圈」區塊之前和之後可以有一或多個動作。
2. 將
「迴圈」區塊前的動作連線至
。
3. 將
「迴圈」區塊後的動作連線至
。
4. 根據您的需求配置動作。
部份 C:將動作新增至迴圈區塊
1. 在工作流程編輯器右側的
「動作」面板中,將動作拖曳到
「迴圈」區塊上。當動作在
「迴圈」區塊上時,
「迴圈」區塊會反白顯示。在您將動作放到
「迴圈」區塊上之後,如果它是區塊中的第一個動作,該動作會自動連線至
。
您可以將單一動作或多個動作新增至「迴圈」區塊。
當您將動作拖曳到「迴圈」區塊外的畫布上時,無法將其拖曳到「迴圈」區塊內。
2. 將多個動作新增至「迴圈」區塊,並逐一連線。如果需要,「迴圈」區塊內只能有一個動作。
3. 將
「迴圈」區塊中的最後一個動作連線至
。
4. 根據您的需求配置「迴圈」區塊中的動作。
執行
當執行工作流程時,會先以工作流程中的第一個動作開始,重複執行迴圈區塊內的所有動作,直到符合定義的計數或條件為止,然後接著繼續執行下列動作。
輸出結構描述
針對「次數」迴圈:
◦ currentIndex - 目前版序的索引或位置 (從 1 開始)。
◦ currentKey - 目前版序的索引或位置 (從 0 開始)。
◦ currentItem、currentValue - 版序的目前值。
◦ totalLength - 會版序化迴圈的次數。
針對「每個項目」迴圈:
◦ currentIndex - 目前版序的索引或位置 (從 0 開始)。
◦ currentItem - 如果來源是物件,此內容會傳回與 currentIndex 對應的值。如果來源是陣列,此內容會傳回每個版序的目前物件。
◦ currentKey - 如果來源是物件,此內容會傳回物件的金鑰。如果來源是陣列,它會傳回每個項目的索引。
◦ currentValue - 如果來源是物件,此內容會傳回物件的值。如果來源是陣列,它會傳回陣列的所有項目,包括物件 (如果陣列內有任何物件)。若要擷取特定金鑰或內容的值,請指定 {{$ActionID.currentValue.<PropertyName>}}
◦ totalLength - 物件陣列內所有物件的總數,或陣列內所有項目的總數。
針對 While 迴圈:
◦ currentIndex、currentKey - 目前版序的索引或位置 (從 0 開始)。
◦ currentItem、currentValue - 傳回版序的目前值。
◦ totalLength - 未定義。