子產品資訊組織思路
子產品作為流程核心資訊的基本組織機關,同時也是使用者開發設計流程的主要對象。為了更好地設計流程,首先需要深入了解子產品資訊的組織思路。
TASKCTL 流程以子產品為機關的流程核心資訊組織思路是有别傳統的思路,是一種創新的思路。以下我們以與傳統思路比較的方式對該思路進行描述。
傳統設計思路
在排程業界,流程核心資訊主要組織思路為:将作業節點化,并将作業控制政策屬性化,其中依賴關系、并行關系是最主要的控制政策内容。
關系表達圖形思路在 ETL 排程界,流程圖主要根據流程作業節點以及節點關系進行表達。圖形表達如下:
由圖可知,該圖簡潔且直覺描述了各作業的依賴關系與并行關系。
資料表達思路
面向使用者的設計方案
傳統設計思路比較簡潔直覺,每個節點之間相對獨立。在面向使用者實施方面, 主要是對每個作業節點直接以記錄方式描述。
具體實施手段,主要是圖形拖拽以及節點表單方式描述。比如:Control-M 的作業對話框描述以及 Excel 方式描述。
TASKCTL 設計思路
關系表達圖形思路
TASKCTL 設計思路與傳統設計思路相比,共同點是将作業節點化,而不同點是對主要控制政策資訊依賴并行關系表達方式的不同,TASKCTL 未采用對依賴以簡單節點屬性方式描述,而是站在整個流程的角度,采用串并節點方式進行結構化描述。
該方式相對傳統方式有一定的抽象。
表達思路如下圖所示:
該方式與傳統方式相比,主要是增加了串并節點的思想,作業之間的運作關系不是主要通過依賴屬性确定,而是通過上級組節點的串并屬性決定。
資料表達思路
面向使用者的設計方案 由 TASKCTL 結構化示意圖得知,流程整個組織思路結構化特征非常明顯, 其結構是具有唯一根節點的标準樹結構。為此,TASKCTL 在流程核心資訊組織時,直接采用面向使用者并以 XML 語言為載體的文本進行描述。
以下是對前面 TASKCTL 結構化示意圖的 XML 描述:
由以上資訊可以簡單看出,流程的子產品資訊是通過 XML 語言對圖形直接描述,該資訊具有明顯的結構特征。由于是以文本的方式組織,使資訊更為扁平化, 更易編輯。
實際 TASKCTL 方案中,為了使流程設計更容易、更簡單,TASKCTL 提供了專業的流程內建設計開發環境,在該開發環境中,使用者既可以通過文本代碼方式設計,又可以圖形拖拽方式設計。
設計思路總結
從設計思路的角度,傳統方式比 TASKCTL 思路簡單,更容易讓人了解, TASKCTL 組織思路相對有一定的抽象,但由于采用了一定結構化特征,在面對大量作業面前,該思路在了解的基礎上,使用會更靈活、更快捷友善,完成同樣排程設計,資訊總量也相對較少。
流程總控檔案
流程總控檔案是通過 XML 語言描述的流程概述總控資訊檔案。該檔案與子產品檔案不一樣,不直接面向使用者,其資訊主要通過相應的流程設計工具軟體中相關指令與界面操作完成。
雖然流程總控檔案不直接面向使用者,但對該檔案的具體了解,不僅可以加深對整個流程的了解,同時也會對流程具體設計帶來更大的幫助。
另外,在 TASKCTL 的發展計劃中,今後該檔案會公開且直接面向使用者,使使用者可以對該檔案直接進行編輯設計,進而增加設計的靈活性。 一份簡單的流程總控檔案例子
通過以上範例得知,流程總控資訊主要由三部分構成,它們包括:流程基本資訊、子產品資訊、流程變量資訊等。
XML 關鍵字
流程總控檔案 XML 标簽關鍵字如下:
流程基本資訊
流程基本資訊主要包括:流程名稱、流程描述、啟動子產品、流程最大作業并行度、是否為子流程等資訊構成。
flowname-流程名稱
流程名稱是排程平台對流程的關鍵索引資訊,使用時注意以下幾點:
- 唯一性:流程名稱相對排程伺服器是唯一的,不能重複
- 長度:流程名稱長度不能超過 20 個字元
- 輸入限制:名稱不能數字開頭,不能包含特殊字元,如:!@|#*...等。
desc-流程描述
流程描述指流程的說明資訊,該資訊可以由任意字元組合。另外,流程描述雖然不是必輸項,但通過用戶端工具具體應用時,該資訊具有特殊的展示意義。
- 長度:名稱長度不能超過 100 個字元
- 輸入限制:不能包含特殊字元,如:!@|#*...等。
startmodul-啟動子產品
一個流程可能由多個子產品組成,使用者必須指定啟動子產品,以表示流程的排程運作入口。這與一個程式必須定義主函數類似。 在 TASKCTL 平台中,啟動子產品即為流程主子產品。
issubflow 是否為子流程
子流程是 TASKCTL 排程平台重要概念,它從資訊内容上與普通流程沒差別。唯一差別是:子流程能被其他普通流程調用。
TASKCTL 引入子流程概念的主要目的:一方面與子產品一樣,是為了有效結構化管理流程資訊,另一方面,是為了達到更佳的排程控制效果。
子流程與子產品本質差別在于:子產品是流程的組成部分,而子流程不是調用流程的組成部分;子流程有自己獨立的私有變量空間,而子產品與調用流程具有同樣的變量空間。
該差別就像實際程式一樣,子產品類似程式内部的一個類,而子流程是一個獨立程式,可以通過其它程式調用。
對于子流程的具體應用意義,在本文相關章節會有具體舉例說明。在流程總控檔案中,該屬性 Y 代表子流程;N 代表普通流程。
ctlbatch 業務批次規則
流程從頭到尾運作一次,稱之為一個批次。通過設定流程批次命名規則,以便于更好的了解和劃分業務流程的邏輯運作批次。在 TASKCTL 中,可以利用流程的 ctlbatch 屬性來實作個性化的批次命名規則。
比如:可以跟業務邏輯日期變量進行關聯:
<ctlbatch>核心系統第 $(work_date)批次流程</ctlbatch>
通過以上批次規則,可以直覺的在運作資料資訊中進行展示:“核心系統第 20200701 批次流程”
子產品資訊
子產品名稱
- 唯一性:一個流程内,子產品名稱是唯一的,不能重複
- 長度:子產品名稱長度不能超過 30 個字元
- 輸入限制:名稱不能數字開頭,不能包含特殊字元,如:!@|#*...等。
子產品描述
- 長度:名稱長度不能超過 100 個字元
- 輸入限制:不能包含特殊字元,如:!@|#*...等