工作流系統之三十 流程的靜態分支與動態分支

業務流程的流轉過程中,經常會有需要併發處理的過程,即流程流轉到下一步,同時產生多個當前需要處理的過程,這些過程不分先後處理順序,只要都處理完成了,最後匯聚到一起,再接着主流程運行,就可以了。例如:一份報銷單,填寫完成後,同時啓動財務部門審覈和本部門的審覈,這兩部分的審覈不分先後順序,只要都完成後,再將結果返回給報銷單填寫人,繼續下面的流轉。這種的並行處理的過程,就需要流程引擎支持分支和聚合。

分支又分爲 靜態的分支 和動態的分支。
靜態的分支,即在業務流程建模之初,就能確定好有多少個分支,每個分支的具體流轉,具體處理過程。
動態的分支,即在業務流程建模的時候,只能確定好一條分支的模版處理過程,在流程實例運行時,每流程實例根據自己的情況確定本次能產生多少個分支,然後依據分支模版的處理過程,複製出n個併發的分支線路,每分支線路的運行軌跡根據動態分支參數的設置而不盡相同。

 

聚合也分爲 靜態聚合 和 動態聚合
靜態聚合,和靜態分支匹配,當有靜態的分支併發流轉發生後,需要用靜態聚合來匯聚併發的線路。
動態聚合,和動態分支匹配,當有動態的分支併發流轉發生後,需要用動態聚合來匯聚併發的線路。


靜態分支模式:

動態分支模式:

 


靜態分支裏面可以嵌套 靜態分支:

動態分支裏面也可以嵌套 動態分支:

靜態分支裏面可以嵌套 動態分支 (暫未做示例)

動態分支裏面也可以嵌套 靜態分支:

 


注意:靜態分支,必須用靜態聚合來匯聚, 動態分支必須用動態聚合來匯聚。 
爲了 方便 設置匯聚條件,分支嵌套的時候,避免 內層聚合--到--外層聚合 的 這種流程建模方式,如果業務流程中,確實是內層聚合--到--外層聚合 的流轉,那就增加一個 自動步驟的 節點。即 內層聚合--自動步驟--外層聚合。此自動步驟,帶有自動執行的方法,當流程流轉到這裏時,會自動完成此步驟。


靜態分支後產生的併發流程,在流程建模時候,和普通的流程節點一樣設計。
動態分支後產生的併發流程,有些參數需要在流程實例運行時設置,如動態分支的個數,每分支的步驟執行人等等。


動態分支節點,在流程建模時,先定義好需要那些參數,在分支模版節點中,引入這些參數。流程實例運行時,各流程實例根據實際情況給參數賦值,分支節點中遇到參數表達式,解釋並得到參數值,參與到流程的流轉中。

 

 

 

 

參見  web工作流管理系統開發之二十 動態創建流程多分支節點 
http://www.cnblogs.com/webreport/archive/2010/05/30/1747537.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章