工作流引擎產(chǎn)品無論國內(nèi)或國外都有不少成熟之作,開源的工作流產(chǎn)品也有諸如shark之類的精品。但工作流產(chǎn)品做為一個(gè)獨(dú)立的中間件,無論是其本身或通過它進(jìn)行流程設(shè)計(jì)及與你自己的系統(tǒng)整合,對(duì)很多使用過工作流產(chǎn)品的開發(fā)人員來說都是一件不容易的事。特別是在一些其實(shí)只是一些很簡單的流程控制應(yīng)用需要時(shí),我們是否需要一個(gè)獨(dú)立的工作流產(chǎn)品來運(yùn)作呢?
也許你可以嘗試自己做一個(gè)工作流組件?聽起來好象有點(diǎn)兒難,但其實(shí)并不是一件很恐怖的工作。讓我們先從通常會(huì)使用到工作流引擎的情景分析下我們需要什么?
情景:某公司需要對(duì)員工請假進(jìn)行管理,員工請假需進(jìn)行系統(tǒng)填寫申請,如果請假天數(shù)<=1天,可以部門主管批準(zhǔn)。如果請假天數(shù)>1天,需由部門主管->副總經(jīng)理進(jìn)行再行批復(fù)。批準(zhǔn)后的請假自動(dòng)記入考勤系統(tǒng)。
從這個(gè)簡單的業(yè)務(wù)需求,我們進(jìn)行分析它的需求:
1、工作流程的選擇是由業(yè)務(wù)信息(請假單)相關(guān)聯(lián)的,工作流獨(dú)立存在是無意義的。
2、業(yè)務(wù)信息中的內(nèi)容會(huì)決定流程的選擇與流向。如:請假天數(shù),或是主管的批復(fù)意見
3、工作流程的流轉(zhuǎn)與組織結(jié)構(gòu)、角色、員工相關(guān)。
4、工作流程通常會(huì)調(diào)用相關(guān)業(yè)務(wù)應(yīng)用(記入考勤)來完成多應(yīng)用系統(tǒng)之間的協(xié)作。
結(jié)合以上需求,我們定義出工作流系統(tǒng)所需功能與數(shù)據(jù):
1、流程定義工具(負(fù)責(zé)生成工作流引擎能明白的流程控制信息),對(duì)應(yīng)于XPDL
2、工作流控制變量定義(即用于控制流程流轉(zhuǎn)的控制量,如請假天數(shù)與各級(jí)審批意見,可由系統(tǒng)根據(jù)流程實(shí)體信息自動(dòng)注入至工作流引擎)
3、工作流相關(guān)數(shù)據(jù),即與業(yè)務(wù)過程相關(guān)的數(shù)據(jù),如:業(yè)務(wù)表單、組織結(jié)構(gòu)、角色、員工等
4、工作流引擎,負(fù)責(zé)解釋流程定義,創(chuàng)建過程實(shí)例并控制其執(zhí)行,并可能提供相關(guān)的監(jiān)控界面以保障工作流的正確運(yùn)轉(zhuǎn)。
5、外部應(yīng)用,可由工作流引擎進(jìn)行調(diào)用完成多個(gè)業(yè)務(wù)系統(tǒng)的流程銜接。這通常是工作流引擎的最大亮點(diǎn)。
未完待續(xù)>>
本人原創(chuàng)文章,歡迎轉(zhuǎn)載,轉(zhuǎn)載請注明出處!
隨筆分類
隨筆檔案
朋友
- Opentaps官方中文wiki