背景
當控制項/控制措施有許多行或流程時間過長時,使用平行鏈結可大幅縮短執行時間。
範例情況
假設您的連線中有一個指令群使用Group Iterator 。在此設定中,控制工作表內容是使用Get Sheet Data 指令從 Workiva 電子表格擷取。接著,連鎖會針對工作表中的每一行重複執行一組動作。(請參閱設定說明這裡 。)
如果控制表行的執行順序 並不重要 ,且每一行都可以獨立處理,您可以使用以下步驟並行運行它們,以提高鏈的效率。
附註:以下步驟是根據上面顯示的樣本鏈結。 請針對您自己的 Chains(自動化工作流程)及其可能包含的任何額外命令進行必要調整。
步驟 1:編製您的主要 Chains(自動化工作流程) 刪除所有節點之間的連結。
- 已刪除所有節點間的所有連結。
- 已刪除CSV 至 JSON和命令群組 節點。
- 從Tabular Transformations 連接器新增Advanced Query 命令,並將其連接至Get Sheet Data 節點。
- 以下列值組態配置節點:
- Tables >File: 從變數面板選取Get Sheet Data > Data輸出。
- 表格 > 表格名稱: 使用不含 間距的名稱。
- 查詢: 使用 MySQL
NTILE函數為每一行指派一個群組編號 (例如:NTILE(3)代表三個群組)。
附註: 您必須測試您的流程,尋找合適的群組數,以對齊/協調您所需的執行時間。 作為最佳做法,數字應小於 10。
步驟 2:設定子鏈並行運行
- 在Run Chain 事件執行的子鏈結中,新增或增修Runtime Inputs 命令。 提醒事項必須是鏈結的第一節點。為其配置兩個輸入:一個FileField 輸入為資料檔案,另一個NumberField 輸入為群組編號。
- 若要確保每個實例只處理其指派的記錄,請在Runtime Inputs 指令之後、其他指令之前,立即連線Filter Rows 指令。篩選條件會依群組編號隔離記錄,確保所有後續命令只在正確的行上執行。
附註: Search Columns 欄位以 0 為基礎。
- 在Chain Settings 中,確保Allow concurrent runs 選項已啟用。
步驟 3:透過檔案和群組號碼
-
在主要 Chains(自動化工作流程)中,為
NTILE函數中使用的每個 群組編號新增一條Run Chain 命令(例如,為NTILE(3)新增 3 條命令)。- 資料檔案 運行時輸入:從變數面板選取進階查詢 > 結果 輸出。
- 群組編號 Runtime Input(運行時輸入):從 1 到群組總數的唯一數字。
結果
您的連鎖程式現在可以一次處理三倍於控制工作表的資料。您可以透過增加NTILE 編號,並增加相應的Run Chain 指令,進一步擴充。
警告
- 避免一次執行太多平行鏈,因為這樣做會超出平台限制,導致指令失敗。 作為最佳做法,平行鏈結的數目應少於 10。
- 所有鏈解決方案在用於即時或生產環境之前,都應針對邊緣情況和所有相關資料類型進行徹底測試。
- Run Chain 使用量超過六層巢狀 (的) 的鏈結可能無法正確匯出或匯入。
其他資源
如需更多有關鏈控制表的資訊,請參閱我們的其他資源。