跳轉至

節點分組 (Node Groups)

群組 (Group) 是一種能夠容納其他節點的容器節點。所有群組都能在視覺上為其內部的節點進行組織歸類,但部分特定類型的群組更進一步接管了內部節點的執行方式 — 將它們整合成一個單元平行運算,或反覆循環迭代執行。本頁介紹如何建立、配置與執行群組。關於一般節點的操作請參閱節點操作指南。

建立群組

選取您想要分組的節點(若未選取任何物件,則會建立一個可於稍後拖入節點的空白群組容器),然後:

  • 按下 Cmd/Ctrl+G:立即使用您已設為預設值的群組類型建立群組。
  • 按下 Shift+Cmd/Ctrl+G,或按一下右鍵並選擇 Create Group:先行開啟群組類型選擇器 (Group type picker)。

群組類型選擇器列出了目前已安裝程式庫所提供的所有可用群組類型,並支援像 Add Node 快顯功能表一樣的即時關鍵字搜尋。在選定類型前勾選底部的 Make default for Cmd/Ctrl+G,下次即可直接使用快速鍵略過選擇視窗。在未指定預設類型前,按下 Cmd/Ctrl+G 也會自動彈出選擇器。

新建立的群組框會自動調整大小並帶有適度留白,完美包裹建立時所選取的所有節點。將節點拖曳並放置到現有群組的本體內部即可將其加入群組;將內部子節點向外拖曳即可將其移出群組。

群組類型

標準程式庫隨附的群組類型主要分為兩大家族:

群組類型 是否參與執行? 功能說明
Group (普通群組) 否 純視覺組織用途。附帶說明描述欄位;不會將內部節點作為統一單元執行,亦不影響執行順序。
Subflow Node Group (子流節點群組) 是 將內部所有節點打包為單一子流單元,以平行方式同步執行。
ForEach Group (遍歷群組) 是 針對傳入的清單 (List) 或字典 (Dictionary) 元素逐一執行內部子流。
For Loop Group (計數迴圈群組) 是 在指定的數值範圍區間內(起始/終止/步長)依序循環執行內部子流。
Retry Group (重試群組) 是 當內部節點執行失敗時自動觸發重新執行,最多可嘗試指定次數。

普通 Group 永遠不會出現 Run Group 按鈕 — 因為它不具備可執行特性,引擎不會對其發起整體運算,內部節點依然維持各自獨立運作。表格中的其餘類型均屬於子流群組 (Subflow Group):它們會在內部建立專屬的獨立子流 (Subflow) 來容納其子節點,而群組節點本身在外部主工作流程圖中則視為單一可執行單元。

Subflow Node Group (子流節點群組)

基準的可執行群組容器。當群組被觸發運行時,其內部所有節點會在專屬子流中一併執行,並將各節點的最終輸出匯總至群組節點本身的輸出參數埠。當您希望將一群緊密關聯的節點視為大型流程中的單一步驟時(為了版面整潔,或希望透過單一 Run Group 按鈕一次執行整組節點),此類型最為適用。

ForEach Group (遍歷群組)

對傳入的清單或字典進行迭代遍歷。將清單(或字典)連入其 items 輸入端;群組會針對每個元素執行一次內部子節點,並將當前處理的項目透過 current_item 暴露、項目索引位置透過 index 暴露給內部子節點使用。位於對側的 new_item_to_add 輸入端則負責收集每次迭代產出的數值,並彙總至群組的 results 輸出清單中。

在群組設定中,Execution Mode (執行模式) 可選擇每次迭代以 one at a time (依序單次) 執行或 all at once (全體平行) 執行。只有依序單次模式支援 Skip to Next Iteration (跳至下次迭代) 與 Break Out of Loop (跳出迴圈) 控制輸入埠 — 當切換為全體平行模式時,這兩個埠會自動隱藏,因為所有迭代已經處於同時運算狀態,不存在可跳轉的「下一次迭代」。設定中的 Testing Mode (測試模式) 開關允許您在除錯迴圈體邏輯時僅執行指定的單一索引項,無需跑完整個龐大清單。

For Loop Group (計數迴圈群組)

結構與 ForEach 類似,但改為在指定數值區間內進行迭代 — 包含 start (起始)、end (結束)、step (步長) 以及決定是否包含終止值的 Include end value 開關。它與 ForEach 共享完全相同的 Execution Mode、results、skip 與 break 控制機制。

Retry Group (重試群組)

當內容執行失敗時自動重新執行。將子節點的成功路徑連至群組的 Succeeded 控制端點,失敗路徑連至 Failed。若 Failed 被觸發且尚有剩餘重試次數(Max Iterations,預設為 3 次),整個群組將重新運行;若 Succeeded 觸發或重試預算耗盡,流程將繼續向下游傳遞,並由 was_successful 回報最終成敗布林值。開啟 Raise on failure (失敗時拋出異常) 開關會在重試次數用盡時直接以錯誤中斷工作流程,而非帶著 false 狀態默默向下游傳遞。

跨越群組邊界的連線處理 (Wall Parameters)

任何從子流群組外部連入內部節點(或從內部引出至外部)的連線,都會強制經由邊界參數 (Wall Parameter) 進行轉接路由 — 這些參數依附在群組節點本身的外圍邊緣:流入群組的連線顯示在左側邊緣,流出的連線顯示在右側邊緣。您無需手動新增這些邊界端點:只需直接將內部節點的手柄拖曳連線至外部節點(或反向連線),邊界參數便會自動生成並貫通連線。

在底層運作中,每個邊界參數實質上都是一個代理介面 (Proxy):引擎會將原本直通的連線拆解,在群組邊界上建立相符型別的參數,並以兩段跳轉方式串聯。若將帶有邊界連線的子節點拖出群組外,連線會自動還原為原本的一般直接連線,群組上不再使用的邊界參數亦會隨之自動消失;若群組內的多個子節點都需要取用外部同一資料來源,它們會共用同一個外部邊界參數,避免生成冗餘手柄。

普通的 Group 不執行任何邊界代理 — 因為它沒有隔離的子流邊界,連線直接穿透其框線本體。

群組的巢狀嵌套 (Nesting groups inside groups)

群組支援無限制的深層巢狀嵌套。將一個群組拖曳放入另一個群組本體中,或者同時選取一個群組與其他節點並按下 Cmd/Ctrl+G,內層群組就會成為外層群組的子節點 — 並完整攜帶其內部既有的一切組件。

巢狀嵌套是將龐大工作流程拆解為清晰層級的絕佳架構手段:例如一個 ForEach Group 的內部迴圈體本身就是一個 Subflow Node Group,讓每次迭代執行的都是封裝良好的命名工作區塊,而非雜亂無章的大量裸節點。

單一群組具備的所有特性在多層嵌套時均完全適用。運行外層群組會自動連帶執行所有內層嵌套群組,無需逐一單獨執行。折疊、收起捲動與 Fit to nodes (貼合節點) 均僅作用於當前所操作的目標群組層級,內部嵌套結構絲毫不受影響。

跨層連線同樣保持嚴謹的層次傳遞。從外層群組外部連入深藏於兩層之內的節點時,連線在穿透每一層群組邊界時都會生成對應的邊界參數,便於順著邊界層層追蹤資料流向。若連線完全發生在同一群組內部,則無論嵌套深度如何,都不會產生任何邊界參數。

Ungroup (解散群組) 每次僅剝離當前操作的外層容器。解散外層群組時,內部的子群組保持完好無損,並直接落在畫布原位。直接刪除群組對內部物件的處理規則亦同。

編輯器唯一嚴格禁止的排列是「自我嵌套」— 將群組拖入其自身的任何後代容器中會被系統明確拒絕,因為這會導致邏輯拓撲失效而無最外層可供調度。

折疊與收起 (Collapsing and rolling up)

點擊群組標頭上的折疊箭頭可將其折疊 (Collapse)。折疊後的群組會隱藏所有子節點,縮減至僅保留其邊界參數的精簡方塊(若無邊界參數,則顯示單行提示「Group collapsed」)。這是在不失去重新連線能力的前提下,將龐大群組迅速精簡為只有輸入/輸出介面手柄的最佳方式。

收起 (Roll up) — 當在設定中啟用 Node Roll-Up 後,連按兩下群組標頭或點擊折疊按鈕旁的收起圖示 — 具有相似效果但保留原始版面寬度:群組會垂直壓縮至標頭高度,但維持當前寬度與內部子節點相對座標不變,再次展開時能瞬間還原為原先的視覺排版。

貼合節點 (Fit to nodes)

Fit to nodes (貼合節點)(選取單一群組時按 Shift+F,或在群組右鍵功能表/工具列中選取):自動重新計算並緊密調整群組外框尺寸,使之以固定的留白間距完美包裹內部所有的子節點。在手動添加或移除內部子節點後,群組外框若顯得過大或偏位,使用此功能可立即恢復俐落版面。

解散群組 (Ungrouping)

在群組右鍵功能表或工具列中選擇 Ungroup,將移除群組容器並將內部子節點完整保留在畫布原處,其座標會自動從群組相對座標轉換為畫布絕對座標。對於子流群組,這也會同步解除其專屬子流,並將所有的邊界轉接連線自動還原為原始節點之間的直接連線 — 底層的任何資料傳輸路徑絲毫不受損失,僅僅是解除了分組封裝。

直接按鍵刪除群組節點(而非選擇解散群組)對其內部子節點的處理機制完全相同:子節點會被安全脫鉤並保留在畫布上,絕不會連同群組框一併遭到誤刪。

運行群組 (Running a group)

可執行的群組類型在其選取工具列中具備 Run Group (運行群組) 按鈕,緊鄰著折疊與建立副本按鈕。點擊運行群組會解析該群組內部邏輯 — 並傳遞解析其上游所依賴的一切前置節點 — 運作機制與運行任何單一節點完全一致。

子流群組在群組設定視窗中還包含 Execution Environment (執行環境) 選項,用來指定其子節點的實體運算位置。預設為 Local Execution (本地執行) — 即與畫布其他組件一樣在引擎程序內部運行;若安裝了具備遠端發布與執行能力的第三方套件,此處將自動展示對應的遠端執行環境選項。

群組運行期間,其標頭會即時展示與普通節點一致的 Running / Resolved / Unresolved 狀態徽章。普通的普通 Group 容器由於不參與整體調度運算,因此永遠不會顯示狀態徽章。