工作流系統之三十五 自由流的實現

2021-07-23 17:21:26 字數 2006 閱讀 5414

工作流系統在給業務流程建模的時候,按照流程引擎的設計,將業務流程定義出來。這個業務流程的每個流程例項,就按照流程建模時定義好的線路流轉。

通常自由流是指向前的跳轉,回退流是回退到曾經執行過的軌跡。向前跳轉會略過一些節點,不執行,直接到達新的節點。回退流是回到原來的軌跡,再重新執行,對應重做(撤回)的功能。自由流對應忽略某些步驟,直接達到後面的步驟。因此在實現上,自由流和回退流的實現是有區別的。

順序流的自由流的實現

當執行到填寫步驟時,由於某種原因,直接略過審核步驟,跳轉到檢視步驟。或者填寫人想作廢掉這次的填寫,直接就跳到結束步驟,結束本流程(當然需要填寫人有自由跳轉的許可權)。

實現過程:關閉當前步驟(當前任務)--》轉入歷史步驟(歷史任務)--》指定跳轉到的步驟為當前步驟--》生成新步驟的任務

條件路由

實現過程:和順序流一樣,當自由跳轉時,關閉當前步驟任務,生成跳轉到的節點的步驟和任務。

迴圈路由:和順序流處理過程一樣。

分支路由:

分支路由在eworkflow中分為靜態分支和動態分支,但是發生自由跳轉時,靜態分支和動態分支的處理過程是一樣的。分支路由的自由跳轉,就比順序流要複雜很多。

單層的分支:

主幹---分支

當由主幹節點跳轉到分支節點上時,這種跳轉是沒有意義的。因為分支節點產生並行的分支,幾個分支後的線路是同時並行的。當自由跳轉到乙個分支的節點上後,另外的分支不能產生,流程會變的沒有意義。

因此當發生 主幹 跳轉 到分支的情況時候,eworkflow是直接關閉當前節點,生成分支上的節點。但是這樣流程可能會變得沒有意義,主要看流程建模時候的模型。

主幹---主幹

當由主幹節點跳轉到主幹節點,這種是正常的自由流,實現過程;關閉當前主幹步驟(任務)--》轉入歷史步驟(歷史任務)--》跳轉到指定的主幹步驟--》生成新的主幹步驟任務。

多層的分支:

由於分支節點和聚合節點可以巢狀,因此就有多層的分支節點,分支主幹,分支的分支 之間的跳轉問題。總的原則是,分支主幹跳轉到分支主幹,其它的分支不受影響。在實現的時候,需要遞迴的查詢出各個分支的所有下級分支。

主幹--主幹

最外層的主幹節點上的跳轉,這種是正常的自由流,實現過程:關閉當前主幹步驟(任務)--》轉入歷史步驟(任務)--》生成最外層的主幹步驟--》生成新的主幹步驟任務。

分支主幹--分支主幹

分支主幹跳轉到本分支的主幹,是正常的自由流,關閉本分支主幹,生成本分支主幹的新節點,其它分支均不受影響。

實現過程:關閉本分支主幹步驟(任務)--》轉入歷史步驟(任務)--》生成本分支跳轉到的節點的步驟(任務) 其它分支均不受影響。

分支主幹--分支的分支

分支主幹跳轉到本分支的分支,這種是沒有意義的,和主幹跳入分支是一樣的,不是正常的自由流。

分支主幹--主幹

分支主幹跳入最外層的主幹,是正常的自由流,實現過程:結束所有分支的步驟(任務)--》轉入歷史步驟(任務)--》生成最外層跳轉到的節點的步驟(任務)

分支的分支--分支主幹

分支的分支跳轉到分支主幹,這種是正常的自由流,結束本分支下的所有子分支(包含巢狀的多級分支)生成分支主幹的步驟任務,其它分支主幹不受影響。

實現過程:遞迴查詢出所有分支主幹的下級分支節點--》結束查詢到的所有分支當前步驟(任務)--》生成新的分支主幹步驟(任務) 其它分支主幹的當前步驟任務均不變化。

分支的分支--主幹

分支的分支跳轉到最外層的主幹,這種是正常的自由流,結束所有分支,包含巢狀的分支的分支等等。生成最外層的主幹步驟。

實現過程:結束所有的當前步驟(任務)--》生成新的最外層的主幹步驟(任務)

其它 還會有 分支1的分支--分支2的分支:這種的跳轉顯然是沒有意義的。

工作流系統之三十一 回退流的實現

在流程建模的時候,定義好了返回的線路,這種嚴格來說,不是回退流。例如,審核不通過,則返回重新填寫,這種只是條件路由。工作流的回退流,是流程例項在流轉的過程中,可以回退到執行軌跡的任意步驟,同時還可以輔助一些業務補償方法,使得回退時候的環境和原來執行時候的環境一樣。所以回退流,和流程引擎支援的正常的路...

2 工作流的實現

首先再次說明一下我的想法 根據 1 幾天狂想的成果 工作流的定義與模型 對工作流的描述 workflow step step steps branches waits branch wait 為了便於實現,進一步抽象出 action作為乙個動作,它執行乙個動作並返回乙個結果。乙個步驟也是乙個動作,但...

工作流系統的設計與實現 1 0

i系統設計 5 1 概述 5 2 介紹 15 2.1 工作流歷史與發展 15 2.2 術語定義 wfmc 16 2.3 工作流模式說明 25 3 引擎設計 74 3.1 工作流物件狀態 74 3.2 三層狀態關係 75 3.3 過程推進 76 ii系統實現 84 4 系統定位 84 4.1 web應...