1. 程式人生 > >馳騁工作流引擎JFlow與activiti的對比之3種基於狀態的模式

馳騁工作流引擎JFlow與activiti的對比之3種基於狀態的模式

  1. 延遲選擇(Deferred Choice)

流程中某個點可以有多個分支進行選擇。不是基於簡單的資料或者決定就可以很明顯地作出選擇,而是會向系統或者執行環境提供多種可選擇的分支;但是又不同於AND-Split模式,延遲選擇只能選擇一個分支執行,一旦選擇了其中第一個分支,那麼其他分支就會被撤銷。這種延遲一直會持續到第一個選擇分支開始實際執行。

例子:收到的一批商品運送到各個部門,到底選擇什麼樣的執行方式,要看資源的可用性。

JFLOW中的模式:

通過在節點屬性—基本屬性中,設定手工選擇方向條件的方式,可以實現此種模式。實際上JFlow就是將流程流轉的許可權在交給了當前節點的操作的人員,由他來決定流程要傳送到什麼地方去。

 

  1. 交叉存取並行路由(Interleaved Parallel Routing)

或者叫任意順序流,指幾個活動必須按順序執行,不能同時進行,但是這種順序又是不定的。

例子:體檢的時候有很多專案,這些專案不能同時進行,但是可以以隨意順序進行。

JFLOW中的模式:

這是典型的一種多工分配流程,使用多維度的分合流可以實現,這個流程的特點是,一個操作人員可以處理三個不同的任務,這三個任務屬於三個子執行緒,與普通的分合流不同的是這三個子執行緒是同一個人處理。在這裡就決定了,有一個批次號(專案維度),在這裡就是檢查專案。

該資料來源返回了三個列,分別是:No,Name,BatchNo。 No=操作員編號,Name=操作員名稱,BatchNo批次編號。

 

  1. 里程碑(Milestone)

一個活動的啟用需要一種具體的狀態,比如活動A,B,C,只有在AB都執行完成的情況下才能執行C。

ACTIVITI 中的模式:

類似與順序模式或者同步模式。

JFLOW中的模式:

這個可能類似與JFlow的延續流程,當一個流程長度很大的時候,需要跨度很多年實施的時候,把該流程截成一段段的,分開設計,一條流程,是上一條流程的延續。

延續流程是父子流程的一種,但是延續流程只有一個段接一段,就是一個父流程有多個子流程,但是延續流程就只能有一個子流程。