SUB_PROCESS是一種特殊的任務類型,它可以在工作流程內引用另一個已定義的工作流程工作。這種任務類型適用於將複雜的任務分解為多個子任務,每個子任務可以獨立定義和管理,從而提高任務的可維護性和可重用性。
背景資訊
工作流程中可通過在SUB_PROCESS節點中引用已有工作流程的方式,實現工作流程間的嵌套調用。被引用的工作流程無需設定定時任務和依賴關係,其執行完全由引用它的工作流程決定,具體來說:
開啟可被引用的工作流程是否運行:取決於是否有工作流程引用該工作流程。
開啟可被引用的工作流程實際已耗用時間:取決於引用這個工作流程的工作流程實際已耗用時間。
若為多層嵌套引用,調度系統會從最後一層引用(如左圖第四層引用)開始執行。運行過程中若檢測到當前工作流程中存在SUB_PROCESS節點,則會同步觸發該SUB_PROCESS節點引用的工作流程執行(如左圖所示,當Workflow-E執行時,由於Workflow-E存在SUB_PROCESS節點引用Workflow-D,所以Workflow-E執行時會同步觸發Workflow-D執行)。
開啟可被引用的工作流程實際執行次數:取決於該工作流程被引用的次數。
若每一層引用存在多個SUB_PROCESS時,被引用的工作流程運行次數取決於被引用的次數。
根據您的業務需求,您可以選擇構建一個簡單直接的線性引用工作流程,如左側示意圖所示。或者設計一個更為複雜、允許多個分支並行的工作流程層級結構,如右側示意圖展示。每種結構都有其特點和適用情境,選擇最適合您商務程序的方案進行實施:
左側示意圖:這個圖展示了一個線性工作流程層級結構,每一層的工作流程都依賴於前一層的工作流程,並通過內部的SUB_PROCESS節點逐層引用。例如,工作流程Workflow-E通過其內部的SUB_PROCESS節點引用Workflow-D,依此類推,直到工作流程Workflow-B通過其內部的SUB_PROCESS節點引用Workflow-A。
右側示意圖:展示了一個複雜的工作流程層級結構,每一層的工作流程可以被多個工作流程通過內部的SUB_PROCESS節點所引用。例如,工作流程Workflow-A可被Workflow-B1、Workflow-B2兩個工作流程通過其內部的SUB_PROCESS節點引用。
前提條件
已有勾選使用新版資料開發(Data Studio)的工作空間,並已完成資源群組的綁定,詳情請參見建立工作空間。
注意事項
使用SUB_PROCESS節點實現多層嵌套時,可嵌套引用的層級數上限為
5(包含Root根工作流程),總的工作流程個數不能超過200個。使用SUB_PROCESS實現的工作流程參考關聯性為觸發的關係,非上下遊依賴關係,即只要檢測到工作流程中存在SUB_PROCESS節點,便會觸發SUB_PROCESS節點引用的工作流程執行。
存在參考關聯性而被觸發啟動並執行工作流程,其代碼中的調度參數賦值將根據觸發其啟動並執行工作流程定時時間決定。
工作流程開啟被引用能力後,該工作流程及其內部節點不能依賴其他任務(特指其他工作流程或不在該工作流程內的其他節點)也不能被其他任務依賴,包括空間根節點。
配置工作流程
以使用SUB_PROCESS節點實現工作流程Workflow2引用工作流程Workflow1情境為例,為您介紹如何通過SUB_PROCESS節點引用已有工作流程,具體操作步驟如下:
工作流程1:開啟可被引用
一個工作流程若要支援被引用,需要移除已有的上下遊節點依賴關係,並且設定可被引用的工作流程不支援設定定時調度已耗用時間,請參考以下內容為工作流程開啟可被引用開關。建議您建立全新工作流程體驗該功能。
您可按照以下步驟建立可被引用的工作流程Workflow1,並為工作流程Workflow1開啟可被引用開關。
建立工作流程
Workflow1。進入DataWorks工作空間列表頁,在頂部切換至目標地區,找到目標工作空間,單擊操作列的,進入Data Studio。
在左側導覽列單擊
,然後在專案目錄右側單擊,設定工作流程名稱並儲存後,進入工作流程編輯頁面。
開啟可被引用開關。
進入工作流程
Workflow1編輯頁面,單擊頁面右側的屬性,在屬性配置對話方塊中開啟可被引用開關。說明開啟被引用能力後,當前工作流程可被其他工作流程通過SUB_PROCESS節點引用,調度時間、調度依賴等屬性將無需配置。
開啟被引用能力後,該工作流程及其內部節點不能依賴其他任務(特指其他工作流程或不在該工作流程內的其他節點)也不能被其他任務依賴,包括空間根節點。
工作流程2:引用工作流程1
您可通過在工作流程下面建立Workflow2SUB_PROCESS節點來引用工作流程Workflow1。
建立工作流程
Workflow2,詳情請參見周期工作流程。建立
SUB_PROCESS節點。單擊您所建立的工作流程
Workflow2,進入工作流程編輯頁面。將邏輯節點下方的SUB_PROCESS節點拖拽至畫布中。配置引用工作流程。
進入添加節點對話方塊,引用工作流程您需選擇已有,在選擇已有下方的下拉框中選擇需要被引用的工作流程
Workflow1,節點名稱您可使用系統產生的名稱,或者修改為您所自訂的名稱,單擊確認完成引用。說明如果您需要選擇引用建立的工作流程時,您可自訂建立的工作流程名稱,單擊確認完成引用。
確認引用建立工作流程後,您可將滑鼠懸浮在SUB_PROCESS節點,單擊上方的開啟引用工作流程,在彈出的提示框單擊儲存並開啟,進入建立工作流程的編輯頁面。
建立的被引用工作流程編輯頁面右側屬性配置面板中的可被引用開關,預設處於開啟狀態。
儲存查看引用詳情。
進入工作流程
Workflow2編輯頁面,單擊上方的儲存,在變更檢查頁面完成儲存確認。說明工作流程可被引用的開關開啟後,同一個工作流程可被多個工作流程引用。您可在被引用工作流程頁面右側的屬性中查看被引用次數,也可點擊查看詳情,瞭解更多詳情資訊。
後續步驟
完成工作流程之間的配置引用後,您可以將工作流程工作發布至調度環境進行周期性調度,並通過補資料的方式觀察整體工作流程的運行情況。
調度配置。
工作流程工作需要周期性調度時,請先對工作流程進行調度配置,詳情請參見節點調度。
發布工作流程工作。
工作流程工作發布到生產環境後才會自動調度,您需對工作流程進行發布,詳情請參見發布周期工作流程。
重要在發布
SUB_PROCESS節點所在工作流程Workflow2的時候,您需提前發布SUB_PROCESS節點引用的工作流程Workflow1,否則會發布失敗。運行查看工作流程工作。
工作流程工作發布後,建議您通過補資料方式,在營運中心查看周期任務的運行情況,詳情請參見營運中心入門。
找到運行中的SUB_PROCESS節點,按右鍵查看引用工作流程的內部任務,可直接查看該節點引用工作流程下的所有內部節點任務執行情況。
> 建立工作流程