閱讀本文,你必須已經(jīng)使用過工作流引擎作過純流程的例子,并且擁有java,jsp,html的基礎(chǔ),而且知道如何閱讀相關(guān)javadoc/chm查閱編程所需的api。
我們以一個(gè)簡單的請假流程來介紹如何實(shí)現(xiàn)一個(gè)工作流項(xiàng)目:

流程很簡單,程序員向部門經(jīng)理提交一張請假單,部門經(jīng)理收到后,根據(jù)主觀意識決定是否批準(zhǔn)(黑暗吧,哈哈…)
既然要填寫一張請假單,因此我們必須知道”請假申請”活動對應(yīng)的請假單的路徑,在b/s程序中,就是請假單的超鏈接,因此我們要給請假申請活動添加一個(gè)擴(kuò)展屬性來記錄超鏈接,如下:

同樣,”經(jīng)理審批”活動也要一個(gè),后兩個(gè)活動不重要,略了。

因?yàn)樾枰趯徟臅r(shí)候看到申請單的信息,所以需要知道是哪一條申請記錄,最直接的方法,就是儲存申請單的主鍵值在流程中,本例假設(shè)該表是單主鍵,所以我們在流程定義中添加一個(gè)工作流相關(guān)數(shù)據(jù)集id。
而審批需要根據(jù)審批結(jié)果是通過/失敗決定流程的走向,因此我們還需要一個(gè)工作流數(shù)據(jù)集auditResult(Boolean)

然后要設(shè)定表達(dá)式,這樣才能決定走向

另一條路徑就不設(shè)了,引擎會自動判斷。
下面是各步驟程序功能的說明:
.gif)
接下來出場的是實(shí)現(xiàn)代碼
…
…
…
你想的美咧,自己整去~~
后記:
本文寫得挺郁悶的,因?yàn)殚_始時(shí)不想畫流程,后來發(fā)現(xiàn)不畫流程不好解釋引擎和業(yè)務(wù)系統(tǒng)間的關(guān)系。
接著又發(fā)現(xiàn)不容易描述在流程進(jìn)行時(shí)每一步程序該做些什么,于是又畫了張描述圖,但是這圖不知道屬于哪種圖,而且也不知道別人看不看得懂。流程活動步驟程序偽碼圖?--這么長的名字有夠拉風(fēng)的。
就這樣吧。工作流的初學(xué)者可以看看這篇文章。
將工作流引擎與業(yè)務(wù)系統(tǒng)結(jié)合使用,就是在其中一處儲存另外一處的一些信息,我上面使用的是在引擎中儲存業(yè)務(wù)信息的方法,當(dāng)然也可以反過來,在業(yè)務(wù)表存流程序號和活動序號。
目前任一個(gè)開源工作流引擎,都是可以應(yīng)用到項(xiàng)目的。關(guān)鍵是看自身的技術(shù)路線合適哪個(gè)引擎,市場考量等等。
但是一般一開始使用某個(gè)引擎,以后就很難換掉,因?yàn)樵诓粩嗟臄U(kuò)展引擎的功能,而且要保證歷史項(xiàng)目的兼容性,再轉(zhuǎn)移這些代碼到另一個(gè)引擎就是浩大的工程。
本人原創(chuàng)文檔版權(quán)歸本人所有,如欲轉(zhuǎn)載,請注明作者及出處。
posted on 2006-01-05 14:46
★yesjoy★ 閱讀(176)
評論(0) 編輯 收藏