閱讀本文,你必須已經使用過工作流引擎作過純流程的例子,并且擁有
java,jsp,html
的基礎,而且知道如何閱讀相關
javadoc/chm
查閱編程所需的
api
。
我們以一個簡單的請假流程來介紹如何實現一個工作流項目:
流程很簡單,程序員向部門經理提交一張請假單,部門經理收到后,根據主觀意識決定是否批準
(
黑暗吧,哈哈
…)
既然要填寫一張請假單,因此我們必須知道
”
請假申請
”
活動對應的請假單的路徑,在
b/s
程序中,就是請假單的超鏈接,因此我們要給請假申請活動添加一個擴展屬性來記錄超鏈接,如下:
同樣,
”
經理審批
”
活動也要一個,后兩個活動不重要,略了。
因為需要在審批的時候看到申請單的信息,所以需要知道是哪一條申請記錄,最直接的方法,就是儲存申請單的主鍵值在流程中,本例假設該表是單主鍵,所以我們在流程定義中添加一個工作流相關數據集
id
。
而審批需要根據審批結果是通過
/
失敗決定流程的走向,因此我們還需要一個工作流數據集
auditResult(Boolean)
?
?
然后要設定表達式,這樣才能決定走向
另一條路徑就不設了,引擎會自動判斷。
下面是各步驟程序功能的說明:
接下來出場的是實現代碼
…
…
…
你想的美咧,自己整去
~~
后記:
本文寫得挺郁悶的,因為開始時不想畫流程,后來發現不畫流程不好解釋引擎和業務系統間的關系。
接著又發現不容易描述在流程進行時每一步程序該做些什么,于是又畫了張描述圖,但是這圖不知道屬于哪種圖,而且也不知道別人看不看得懂。流程活動步驟程序偽碼圖?--這么長的名字有夠拉風的。
就這樣吧。工作流的初學者可以看看這篇文章。
將工作流引擎與業務系統結合使用,就是在其中一處儲存另外一處的一些信息,我上面使用的是在引擎中儲存業務信息的方法,當然也可以反過來,在業務表存流程序號和活動序號。
目前任一個開源工作流引擎,都是可以應用到項目的。關鍵是看自身的技術路線合適哪個引擎,市場考量等等。
但是一般一開始使用某個引擎,以后就很難換掉,因為在不斷的擴展引擎的功能,而且要保證歷史項目的兼容性,再轉移這些代碼到另一個引擎就是浩大的工程。
本人原創文檔版權歸本人所有,如欲轉載,請注明作者及出處。