5
BPM工作流workflow
你的位置:首頁->知識中心

F2BPM工作流引擎駁回模式

發布時間:2018-11-21  來源:http://www.f2bpm.com所屬公司:廣州致博軟件科技有限公司    閱讀量:8319

1.1 關于駁回

駁回,在有的應用中叫“回退”。駁回是中國特色的一種方式,駁回在流程圖上也沒有遷移線的表達經常也是隱性的,比如申請經費可能由于資料不足被駁回來補充資料,像這樣的例子有非常多,也很常見。

駁回是工作流參與者對自己“待辦任務”的一種操作,即參與者主動回退待辦任務列表中的任務到已經執行過的人工節點。

回退的情況實際上是非常復雜的,有串行上的駁回,也有并行內的駁回,并行區內駁回到并行區外,從分支駁回到主干等,從主干駁回到分支內,多重聚合的駁回等。駁回過程中會發生很多事情,也會可能導致重走路徑時產生重復路徑。

駁回方式的支持力度也往往成為評價一個工作流引擎是否具有中國特色和引擎強弱的能重要批價指標。

1.2 關于顯隱性駁回的理解

如下圖所示,有節點A到節點B 屬于正常發送,但從節點B到節點A,則出現兩種情況:

 

(1)遷移駁回:實際說是遷移駁回的表達是不正確的,因為沒有遷移駁回的說法,本質上還是正常發送,如圖中B—A黑色線;(遷移的駁回嚴格上沒有駁回的意義存在,只是一種表象,與正常向提交節點沒有區別,所以遷移式的駁回不是本節討論的重點),這里只是提出來有一個認識。

通過流程定義時繪出駁退遷移線來顯式的支持駁回,即使用遷移的方式來作為回退,實際這種不叫駁回,只是用流程的正常提交流轉而已。

(2)被駁回:(流程圖中不存在線,如上圖中紅色線是不存在的)可能因為某些特殊原因,被任務B退回,要求任務A重新辦理,如圖中B—A紅色線。雖然都是從B到A,代表的意義卻完全不同。(本章所討論的駁回模型都是討論這種情況),

1.3 關于業務補償

業務補償是一個很重要的概念,在回退的情況下需要相應的回退部分業務操作。這里由通常由用戶自行編寫相關的代碼進行業務上的回滾,由用戶自定義代碼進行處理。

1.4 駁回問題類型

1僅可駁回到提單

2僅可駁回到上一步

3僅可駁回到上一步或提單

4駁回任意歷史節點

5駁回指定歷史節點

1.5 駁回模式

1.5.1 描述

 

上圖:駁回模式

駁回模式是指駁回后再重新提交應當怎么處理,如上圖所示,節點3駁回到節點2,然后節點2重新提交時直接提交回到節點3.這就叫直來直往。

上圖所示,節點6駁回到節點2,節點2正常提交依然是走節點5,節點5再并發給節點3和節點6,這樣的方式就叫按流程圖執行。

當按直來直往或按圖流程執行時都會發生一些問題,比如節點6駁回節點2時,如果當時節點3已經存在實例了,那么這時駁回節點2這后重新走節點5會導致節點3的分支重復,那么這些問題就是駁回模式中要解決的問題。

主要分為兩種模式:

按流程圖執行

即按流程圖定義執行。

直來直往模式

哪里在來的就回哪里去。

1.5.2 直來直往

即駁回后回到本節點

 

如上圖所示,節點3駁回到節點2,節點2處理后直接返回到節點3.直來直往適應于絕大多數情況。


 

直來直往模式有且只能轉遞一次,比如節點13直來直住模式駁回到節點3,這時候節點3不允許再有直來直往駁回到節點2.因為如果有再次直來直住駁回到節點2會造成混亂,因為節點2處理完后直接返回節點3,當節點3再次處理時是按正常提交給節點7,并不會直接返回節點13,那么此時流程實例將無法正常流轉到結束,因為節點13是一個并行結束節點。

節點3此時也不支持再次使用按流程圖執行的駁回,因為是會破壞節點13的設置期望,節點13是期望駁回后直接處理返回回來,所以直來直往駁回后,統一規則為不允許再次駁回。只能是按節點13的期望處理完后再次返回給節點13.

1.5.3 按流程圖執行

1、并行區間外駁回到并行區前

 

如上圖所示節點13駁回到節點2,此時節點2提交后是按流程圖執行,而引擎是刪除節點2之后所有節點實例,比如節點6如果存在實例而清空掉這些實例。那么當前任務會從節點5重新開發。

1.5.4 并行外駁回到并行區間內

 

如上圖所示,任務13駁回到任務7的情況,由于節點7處于并行分支上,我們約定這種情況的駁回模式只支持“直來直往”模式, 因為若不是這樣那么節點7可能永遠不法繼續流轉,因為節點13是一個并行結束節點,需要等候節點7和節點15同時到達。

直來直往模式:支持

按流程圖執行:不支持

1.5.5 并行區間內駁回到并行區間外

 

如上圖所示為并行區間內駁回到并行區間外,節點3駁回到節點2.

直來直往模式:支持

按流程圖執行:支持


 

關注BPM行業門戶公眾號,第一時間獲取最新BPM行業資訊。

注:如果本文章涉及版權或其他原因,請聯系我們刪除。

惠泽社群四肖中特