每個節點按順序執行
決策節點輸出邊中存在表達式,流程向邊表達式值為true行進。
fdcf867fb04a18ed1e82eb2e3c74beb6
使用決策節點,該表達式返回下一個節點的名稱
f8f00afab60cef8b0d64672b61d1259a
分支與合並要成對出現,由合並節點判斷是否具備合並條件。
30d9776fa8406d5333b59366ef8f6f48
主流程中存在子流程,當所有子流程結束,主流程才結束。
工作流中,會定義一些常用的流程元素。
流程最開始節點,整個流程由此節點開始,沒有輸入邊。
流程經過該節點後,流程將結束,沒有輸出邊。
在該節點上,會產生一些任務,可以是人工任務或者自動化任務,如果為人工任務,一般會產生阻塞,隻有任務完成,達到一定條件,才能驅動流程往下一個節點行進。
該節點存在決策表達式,流程經過該節點時,會執行決策表達式,決定下一步往哪個節點行進。
當存在多條支線時,需要分支節點。
與分支節點配合,多條支線最終會合並到該節點,由該節點決定是否可以往下一步行進。
主流程中衍生出的流程,該流程有自己的生命周期,子流程也會產生阻塞,所以隻有子流程執行結束,才能驅動流程往下一節點行進。
連接流程節點元素的邊。
元素名稱 | 元素屬性 | 元素行為 | 備註 |
---|---|---|---|
開始節點 | 編碼、名稱、前置攔截器、後置攔截器 | 執行節點 | 元素行為主要是調用輸出邊的執行方法 |
結束節點 | 編碼、名稱、前置攔截器、後置攔截器 | 執行節點 | 元素行為主要是修改流程實例狀態及歸檔。 |
任務節點 | 編碼、名稱、前置攔截器、後置攔截器、表單、參與者、參與者處理類、任務類型、參與類型、提醒時間、重復提醒間隔、期待完成時間、是否自動完成 | 執行節點 | 元素屬性主要是用於定義任務的,可自行擴展。元素行為主要是判斷是否可以往下一節點行進,如果可以,則調用輸出邊執行方法。 |
決策節點 | 編碼、名稱、前置攔截器、後置攔截器、決策表達式 | 執行節點 | 元素行為主要是執行決策表達式,找到輸出邊並執行輸出邊方法 |
分支節點 | 編碼、名稱 | 執行節點 | 元素行為調用輸出邊的執行方法 |
合並節點 | 編碼、名稱 | 執行節點 | 元素行為主要是判斷是否可以合並(往下一節點行進)如果可以,則調輸出邊執行方法。 |
子流程節點 | 編碼、名稱、前置攔截器、後置攔截器、流程名稱、流程版本號 | 執行節點 | 元素行為調用輸出邊的執行方法 |
輸入/輸出邊 | 編碼、名稱、表達式 | 執行輸出邊 | 如果下一節點為任務節點,則會執行創建任務處理器方法;如果下一節點為子流程,則會執行創建子流程處理器方法;否則,直接調用下一節點的執行方法。 |
在工作流中,業內習慣使用bpmn規范來定義流程,但是因該規范過於龐大且復雜,所以本工作流的設計並不采用該定義規范。而是以LogicFlow流程編輯器框架為基礎,進行自定義擴展。(省去前端再次技術選型的問題)這裡做一下簡單的介紹。 上文我們提到的流程元素就是構成流程的基礎單元,其中各節點對應著LogicFlow的node,而輸入/輸出邊則對應著LogicFlow的edge。 以下是LogicFlow的樣例文件:
{
"nodes": [{
"id": "start",
"type": "circle",
"x": 340,
"y": 160,
"text": "開始"
},
{
"id": "apply",
"type": "rect",
"x": 520,
"y": 160,
"text": {
"x": 520,
"y": 160,
"value": "請假申請"
}
},
{
"id": "deptApprove",
"type": "rect",
"x": 740,
"y": 160,
"text": {
"x": 740,
"y": 160,
"value": "部門領導審批"
}
},
{
"id": "end",
"type": "circle",
"x": 920,
"y": 160,
"text": "結束"
}
],
"edges": [{
"id": "t1",
"type": "polyline",
"sourceNodeId": "start",
"targetNodeId": "apply",
},
{
"id": "t2",
"type": "polyline",
"sourceNodeId": "apply",
"targetNodeId": "deptApprove",
},
{
"id": "t3",
"type": "polyline",
"sourceNodeId": "deptApprove",
"targetNodeId": "end"
}
]
}
前文概要結論先行(左邊標粗為推薦款):年度最新款/熱賣款投影儀介紹區體驗檔(2000~3000)極米NEW Z6X在同價位裡,性能表現...