武恙
摘 要 在辦公自動(dòng)化系統(tǒng)中應(yīng)用JBPM工作流管理系統(tǒng),為達(dá)到用戶需求標(biāo)準(zhǔn),需要對(duì)工作流進(jìn)行一系列研究,并按照工作流設(shè)計(jì)標(biāo)準(zhǔn)對(duì)JBPM圖形化流程、可擴(kuò)展性、開(kāi)放性進(jìn)行設(shè)計(jì)。
【關(guān)鍵詞】辦公自動(dòng)化系統(tǒng) JBPM 工作流管理
1 工作流及工作流管理系統(tǒng)
1.1 工作流及工作流管理系統(tǒng)定義
什么是工作流?其為一系列自動(dòng)進(jìn)行、互相銜接的任務(wù)或業(yè)務(wù)活動(dòng)??偠灾畬I(yè)務(wù)過(guò)程部分、或整體自動(dòng)化或計(jì)算機(jī)化,就是工作流。過(guò)程的自動(dòng)化處理體現(xiàn)出工作流技術(shù)的特點(diǎn),某一工作流的結(jié)束也可能是另一工作流的開(kāi)始。用于在一個(gè)、或者多個(gè)工作流引擎軟件上,對(duì)運(yùn)行的工作流進(jìn)行管理、實(shí)現(xiàn)以及定義的一套軟件就是工作流管理系統(tǒng)。要想執(zhí)行工作流實(shí)例,需要應(yīng)用計(jì)算機(jī),來(lái)推進(jìn)定義好的工作流邏輯。
1.2 基于JBPM的工作流管理系統(tǒng)
JBPM是工作流引擎,工作流管理系統(tǒng)的核心就是工作流引擎,其任務(wù)就是管理任務(wù)實(shí)例。JBPM是以J2EE為基礎(chǔ)的輕量級(jí)工作流引擎,同時(shí)也是一個(gè)工作流管理系統(tǒng),特點(diǎn)是容易擴(kuò)展、靈活多樣、開(kāi)源性,開(kāi)發(fā)語(yǔ)言為JAVA,對(duì)執(zhí)行流程實(shí)例以及定義管理流程時(shí)所需的運(yùn)行環(huán)境進(jìn)行管理。對(duì)自己定義的JPDL流程描述語(yǔ)言實(shí)施應(yīng)用,是JBPM的特色之一。JPDL以UML狀態(tài)圖來(lái)解釋任務(wù)流程,并對(duì)狀態(tài)間的轉(zhuǎn)換等狀態(tài)圖的每個(gè)部分進(jìn)行詳細(xì)定義,同時(shí)對(duì)其業(yè)務(wù)流程直觀描述。除此之外,JBPM在管理數(shù)據(jù)庫(kù)時(shí)還能將Hibermate應(yīng)用于持久層中,實(shí)現(xiàn)高質(zhì)量管理,這樣做是為了對(duì)OA系統(tǒng)更加專(zhuān)注。
2 JBPM工作流管理系統(tǒng)在OA中的應(yīng)用
2.1 工作流建模
為轉(zhuǎn)化實(shí)際業(yè)務(wù)流程為數(shù)字信息,便于存儲(chǔ),應(yīng)對(duì)工作流進(jìn)行建模,方便調(diào)用工作流運(yùn)行。JPDL流程文件后綴為.xml。流程定義在JBPM中被封裝成流程檔案,JPDL流程引擎在接收到流程檔案后對(duì)其執(zhí)行。流程事件的記錄、流程狀態(tài)的維持、定義動(dòng)作的執(zhí)行、流程圖的遍歷等工作均由JPDL流程引擎擔(dān)負(fù)??刂茽顟B(tài)變化的基礎(chǔ)為狀態(tài)機(jī)。定義任務(wù)、節(jié)點(diǎn)等都包含于工作流建模中。開(kāi)始發(fā)文流程實(shí)例化為開(kāi)始狀態(tài)節(jié)點(diǎn)任務(wù);結(jié)束發(fā)文實(shí)例為結(jié)束狀態(tài)節(jié)點(diǎn)任務(wù);登記來(lái)文、意見(jiàn)的擬辦、分管領(lǐng)導(dǎo)審閱、匯總處理、公開(kāi)信息欄等均為任務(wù)節(jié)點(diǎn)工作內(nèi)容;歸檔是自動(dòng)節(jié)點(diǎn)任務(wù),而傳閱的公開(kāi)與否則為判定節(jié)點(diǎn)的任務(wù)。
2.2 工作流應(yīng)用
(1)工作流基本要素。數(shù)據(jù)、活動(dòng)、參與者都為工作流基本要素。伴隨活動(dòng),數(shù)據(jù)從一個(gè)節(jié)點(diǎn)流轉(zhuǎn)至另一節(jié)點(diǎn),在JBPM中,由hibernate來(lái)管理持久層數(shù)據(jù)庫(kù),而儲(chǔ)存于數(shù)據(jù)庫(kù)中的工作列表則為數(shù)據(jù)的具體表現(xiàn)形式?;顒?dòng)是節(jié)點(diǎn),它是流程定義的組成。參與者負(fù)責(zé)執(zhí)行任務(wù),業(yè)務(wù)應(yīng)用層對(duì)參與者具體解釋負(fù)責(zé)。創(chuàng)建任務(wù)過(guò)程中,可不指定參與者,也可指定。
(2)工作流過(guò)程。首先需定義流程,而定義流程主要體現(xiàn)在對(duì)流程業(yè)務(wù)邏輯的定義上。Xml文件能夠被計(jì)算機(jī)理解,一個(gè)流程實(shí)例就是一次實(shí)際業(yè)務(wù)流轉(zhuǎn)過(guò)程。簡(jiǎn)單地說(shuō),流程實(shí)例就是有起始時(shí)間和結(jié)束時(shí)間,并在數(shù)據(jù)庫(kù)里存儲(chǔ)的數(shù)據(jù)。
步驟二,部署流程,在計(jì)算機(jī)系統(tǒng)中置入定義好的流程。
PROCESSDEFINITION PROCESS DEFINITION = PROCESSDEFINITION.PARSEXMLRESOURCE(“ORG/JBPM/PROCESSDEFINITION.XML”);
GRAPHSESSION.DELOPPROCESSDEFINITION(PROCESSDEFINITION);
步驟三,對(duì)流程的加載,方法如下:
PROCESSDEFINITION PROCESSDEFINITION = GRAPHSESSION.LOADPROCESSDEFINITION(PROCESSDEFINITIONID);
在加載流程的時(shí),應(yīng)在數(shù)據(jù)庫(kù)中,按照流程定義ID將需要加載的流程查找出來(lái)。
步驟四,將流程啟動(dòng)、并執(zhí)行,按照流程定義,開(kāi)始創(chuàng)建流程實(shí)例,內(nèi)容如下:
PROCESSINSTANCE PROCESS INSTANCE = NEW PROCESSINSTANCE (PROCESSDEF-INITION);這時(shí),ROOTTOKEN則向流程實(shí)例第1個(gè)節(jié)點(diǎn)進(jìn)行指向。
LIST LIST = TASKMGMTSESSION.FINDTASKINSTANCE(USERID)
步驟五,任務(wù)結(jié)束,完成當(dāng)前任務(wù)可調(diào)用接口END()的方法,在一個(gè)事物內(nèi)完成任務(wù)的結(jié)束與開(kāi)始,確保完整數(shù)據(jù)。
(3)人工選擇流程的走向。在對(duì)公文流轉(zhuǎn)文件進(jìn)行定義后,在傳閱的公開(kāi)與否節(jié)點(diǎn)位置可選擇2個(gè)路由,1個(gè)是轉(zhuǎn)向?yàn)g覽、公開(kāi)信息節(jié)點(diǎn),另一個(gè)則轉(zhuǎn)向領(lǐng)導(dǎo)審批節(jié)點(diǎn)。而在xml定義流程代碼中,流程的走向可進(jìn)行人工選擇,2條transition語(yǔ)句在該節(jié)點(diǎn)位置同時(shí)出現(xiàn)。
(4)程序自動(dòng)選擇流程走向。而流程走向的自動(dòng)選擇也可以通過(guò)對(duì)decision節(jié)點(diǎn)的設(shè)施來(lái)實(shí)現(xiàn),選擇的條件可根據(jù)JBPM
(5)使用泳道為多個(gè)任務(wù)指定相同的參與者。N個(gè)任務(wù)由一人進(jìn)行處理時(shí),JBPM為防止JAVA類(lèi)膨脹過(guò)度,針對(duì)該問(wèn)題,提供了泳道方式。
(6)會(huì)簽的應(yīng)用。會(huì)簽技術(shù)是為順利實(shí)現(xiàn)科學(xué)決策,在辦公自動(dòng)化中,需要N個(gè)用戶共同完成某些任務(wù)。當(dāng)經(jīng)過(guò)部門(mén)領(lǐng)導(dǎo)的批準(zhǔn)后,方可完成任務(wù),匯總工作由主辦人負(fù)責(zé)。會(huì)簽的實(shí)現(xiàn)可通過(guò)taskin-stance來(lái)實(shí)現(xiàn)。
3 結(jié)束語(yǔ)
在辦公自動(dòng)化系統(tǒng)中應(yīng)用JBPM工作流系統(tǒng),易于實(shí)現(xiàn)辦公自動(dòng)化相關(guān)流轉(zhuǎn)問(wèn)題。在對(duì)工作流模型進(jìn)行處理時(shí),因JBPM具有圖形化建模、高擴(kuò)展性、良好開(kāi)放性等特征,因此,可將部署靈活實(shí)現(xiàn),工作流引擎理想化,達(dá)到了客戶需求標(biāo)準(zhǔn)。
參考文獻(xiàn)
[1]吳潔.基于JBPM的辦公自動(dòng)化系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].電腦與電信,2012(1).
[2]周仁云,王振國(guó).JBPM在Web OA系統(tǒng)中的應(yīng)用[J].中國(guó)教育信息化,2010(8).
[3]鄭步芹,張瑜慧.基于JBPM的企業(yè)OA的應(yīng)用研究[J].現(xiàn)代計(jì)算機(jī)(專(zhuān)業(yè)版),2012(23).
作者單位
中國(guó)化工信息中心 北京市 100029
摘 要 在辦公自動(dòng)化系統(tǒng)中應(yīng)用JBPM工作流管理系統(tǒng),為達(dá)到用戶需求標(biāo)準(zhǔn),需要對(duì)工作流進(jìn)行一系列研究,并按照工作流設(shè)計(jì)標(biāo)準(zhǔn)對(duì)JBPM圖形化流程、可擴(kuò)展性、開(kāi)放性進(jìn)行設(shè)計(jì)。
【關(guān)鍵詞】辦公自動(dòng)化系統(tǒng) JBPM 工作流管理
1 工作流及工作流管理系統(tǒng)
1.1 工作流及工作流管理系統(tǒng)定義
什么是工作流?其為一系列自動(dòng)進(jìn)行、互相銜接的任務(wù)或業(yè)務(wù)活動(dòng)??偠灾畬I(yè)務(wù)過(guò)程部分、或整體自動(dòng)化或計(jì)算機(jī)化,就是工作流。過(guò)程的自動(dòng)化處理體現(xiàn)出工作流技術(shù)的特點(diǎn),某一工作流的結(jié)束也可能是另一工作流的開(kāi)始。用于在一個(gè)、或者多個(gè)工作流引擎軟件上,對(duì)運(yùn)行的工作流進(jìn)行管理、實(shí)現(xiàn)以及定義的一套軟件就是工作流管理系統(tǒng)。要想執(zhí)行工作流實(shí)例,需要應(yīng)用計(jì)算機(jī),來(lái)推進(jìn)定義好的工作流邏輯。
1.2 基于JBPM的工作流管理系統(tǒng)
JBPM是工作流引擎,工作流管理系統(tǒng)的核心就是工作流引擎,其任務(wù)就是管理任務(wù)實(shí)例。JBPM是以J2EE為基礎(chǔ)的輕量級(jí)工作流引擎,同時(shí)也是一個(gè)工作流管理系統(tǒng),特點(diǎn)是容易擴(kuò)展、靈活多樣、開(kāi)源性,開(kāi)發(fā)語(yǔ)言為JAVA,對(duì)執(zhí)行流程實(shí)例以及定義管理流程時(shí)所需的運(yùn)行環(huán)境進(jìn)行管理。對(duì)自己定義的JPDL流程描述語(yǔ)言實(shí)施應(yīng)用,是JBPM的特色之一。JPDL以UML狀態(tài)圖來(lái)解釋任務(wù)流程,并對(duì)狀態(tài)間的轉(zhuǎn)換等狀態(tài)圖的每個(gè)部分進(jìn)行詳細(xì)定義,同時(shí)對(duì)其業(yè)務(wù)流程直觀描述。除此之外,JBPM在管理數(shù)據(jù)庫(kù)時(shí)還能將Hibermate應(yīng)用于持久層中,實(shí)現(xiàn)高質(zhì)量管理,這樣做是為了對(duì)OA系統(tǒng)更加專(zhuān)注。
2 JBPM工作流管理系統(tǒng)在OA中的應(yīng)用
2.1 工作流建模
為轉(zhuǎn)化實(shí)際業(yè)務(wù)流程為數(shù)字信息,便于存儲(chǔ),應(yīng)對(duì)工作流進(jìn)行建模,方便調(diào)用工作流運(yùn)行。JPDL流程文件后綴為.xml。流程定義在JBPM中被封裝成流程檔案,JPDL流程引擎在接收到流程檔案后對(duì)其執(zhí)行。流程事件的記錄、流程狀態(tài)的維持、定義動(dòng)作的執(zhí)行、流程圖的遍歷等工作均由JPDL流程引擎擔(dān)負(fù)??刂茽顟B(tài)變化的基礎(chǔ)為狀態(tài)機(jī)。定義任務(wù)、節(jié)點(diǎn)等都包含于工作流建模中。開(kāi)始發(fā)文流程實(shí)例化為開(kāi)始狀態(tài)節(jié)點(diǎn)任務(wù);結(jié)束發(fā)文實(shí)例為結(jié)束狀態(tài)節(jié)點(diǎn)任務(wù);登記來(lái)文、意見(jiàn)的擬辦、分管領(lǐng)導(dǎo)審閱、匯總處理、公開(kāi)信息欄等均為任務(wù)節(jié)點(diǎn)工作內(nèi)容;歸檔是自動(dòng)節(jié)點(diǎn)任務(wù),而傳閱的公開(kāi)與否則為判定節(jié)點(diǎn)的任務(wù)。
2.2 工作流應(yīng)用
(1)工作流基本要素。數(shù)據(jù)、活動(dòng)、參與者都為工作流基本要素。伴隨活動(dòng),數(shù)據(jù)從一個(gè)節(jié)點(diǎn)流轉(zhuǎn)至另一節(jié)點(diǎn),在JBPM中,由hibernate來(lái)管理持久層數(shù)據(jù)庫(kù),而儲(chǔ)存于數(shù)據(jù)庫(kù)中的工作列表則為數(shù)據(jù)的具體表現(xiàn)形式?;顒?dòng)是節(jié)點(diǎn),它是流程定義的組成。參與者負(fù)責(zé)執(zhí)行任務(wù),業(yè)務(wù)應(yīng)用層對(duì)參與者具體解釋負(fù)責(zé)。創(chuàng)建任務(wù)過(guò)程中,可不指定參與者,也可指定。
(2)工作流過(guò)程。首先需定義流程,而定義流程主要體現(xiàn)在對(duì)流程業(yè)務(wù)邏輯的定義上。Xml文件能夠被計(jì)算機(jī)理解,一個(gè)流程實(shí)例就是一次實(shí)際業(yè)務(wù)流轉(zhuǎn)過(guò)程。簡(jiǎn)單地說(shuō),流程實(shí)例就是有起始時(shí)間和結(jié)束時(shí)間,并在數(shù)據(jù)庫(kù)里存儲(chǔ)的數(shù)據(jù)。
步驟二,部署流程,在計(jì)算機(jī)系統(tǒng)中置入定義好的流程。
PROCESSDEFINITION PROCESS DEFINITION = PROCESSDEFINITION.PARSEXMLRESOURCE(“ORG/JBPM/PROCESSDEFINITION.XML”);
GRAPHSESSION.DELOPPROCESSDEFINITION(PROCESSDEFINITION);
步驟三,對(duì)流程的加載,方法如下:
PROCESSDEFINITION PROCESSDEFINITION = GRAPHSESSION.LOADPROCESSDEFINITION(PROCESSDEFINITIONID);
在加載流程的時(shí),應(yīng)在數(shù)據(jù)庫(kù)中,按照流程定義ID將需要加載的流程查找出來(lái)。
步驟四,將流程啟動(dòng)、并執(zhí)行,按照流程定義,開(kāi)始創(chuàng)建流程實(shí)例,內(nèi)容如下:
PROCESSINSTANCE PROCESS INSTANCE = NEW PROCESSINSTANCE (PROCESSDEF-INITION);這時(shí),ROOTTOKEN則向流程實(shí)例第1個(gè)節(jié)點(diǎn)進(jìn)行指向。
LIST LIST = TASKMGMTSESSION.FINDTASKINSTANCE(USERID)
步驟五,任務(wù)結(jié)束,完成當(dāng)前任務(wù)可調(diào)用接口END()的方法,在一個(gè)事物內(nèi)完成任務(wù)的結(jié)束與開(kāi)始,確保完整數(shù)據(jù)。
(3)人工選擇流程的走向。在對(duì)公文流轉(zhuǎn)文件進(jìn)行定義后,在傳閱的公開(kāi)與否節(jié)點(diǎn)位置可選擇2個(gè)路由,1個(gè)是轉(zhuǎn)向?yàn)g覽、公開(kāi)信息節(jié)點(diǎn),另一個(gè)則轉(zhuǎn)向領(lǐng)導(dǎo)審批節(jié)點(diǎn)。而在xml定義流程代碼中,流程的走向可進(jìn)行人工選擇,2條transition語(yǔ)句在該節(jié)點(diǎn)位置同時(shí)出現(xiàn)。
(4)程序自動(dòng)選擇流程走向。而流程走向的自動(dòng)選擇也可以通過(guò)對(duì)decision節(jié)點(diǎn)的設(shè)施來(lái)實(shí)現(xiàn),選擇的條件可根據(jù)JBPM
(5)使用泳道為多個(gè)任務(wù)指定相同的參與者。N個(gè)任務(wù)由一人進(jìn)行處理時(shí),JBPM為防止JAVA類(lèi)膨脹過(guò)度,針對(duì)該問(wèn)題,提供了泳道方式。
(6)會(huì)簽的應(yīng)用。會(huì)簽技術(shù)是為順利實(shí)現(xiàn)科學(xué)決策,在辦公自動(dòng)化中,需要N個(gè)用戶共同完成某些任務(wù)。當(dāng)經(jīng)過(guò)部門(mén)領(lǐng)導(dǎo)的批準(zhǔn)后,方可完成任務(wù),匯總工作由主辦人負(fù)責(zé)。會(huì)簽的實(shí)現(xiàn)可通過(guò)taskin-stance來(lái)實(shí)現(xiàn)。
3 結(jié)束語(yǔ)
在辦公自動(dòng)化系統(tǒng)中應(yīng)用JBPM工作流系統(tǒng),易于實(shí)現(xiàn)辦公自動(dòng)化相關(guān)流轉(zhuǎn)問(wèn)題。在對(duì)工作流模型進(jìn)行處理時(shí),因JBPM具有圖形化建模、高擴(kuò)展性、良好開(kāi)放性等特征,因此,可將部署靈活實(shí)現(xiàn),工作流引擎理想化,達(dá)到了客戶需求標(biāo)準(zhǔn)。
參考文獻(xiàn)
[1]吳潔.基于JBPM的辦公自動(dòng)化系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].電腦與電信,2012(1).
[2]周仁云,王振國(guó).JBPM在Web OA系統(tǒng)中的應(yīng)用[J].中國(guó)教育信息化,2010(8).
[3]鄭步芹,張瑜慧.基于JBPM的企業(yè)OA的應(yīng)用研究[J].現(xiàn)代計(jì)算機(jī)(專(zhuān)業(yè)版),2012(23).
作者單位
中國(guó)化工信息中心 北京市 100029
摘 要 在辦公自動(dòng)化系統(tǒng)中應(yīng)用JBPM工作流管理系統(tǒng),為達(dá)到用戶需求標(biāo)準(zhǔn),需要對(duì)工作流進(jìn)行一系列研究,并按照工作流設(shè)計(jì)標(biāo)準(zhǔn)對(duì)JBPM圖形化流程、可擴(kuò)展性、開(kāi)放性進(jìn)行設(shè)計(jì)。
【關(guān)鍵詞】辦公自動(dòng)化系統(tǒng) JBPM 工作流管理
1 工作流及工作流管理系統(tǒng)
1.1 工作流及工作流管理系統(tǒng)定義
什么是工作流?其為一系列自動(dòng)進(jìn)行、互相銜接的任務(wù)或業(yè)務(wù)活動(dòng)??偠灾畬I(yè)務(wù)過(guò)程部分、或整體自動(dòng)化或計(jì)算機(jī)化,就是工作流。過(guò)程的自動(dòng)化處理體現(xiàn)出工作流技術(shù)的特點(diǎn),某一工作流的結(jié)束也可能是另一工作流的開(kāi)始。用于在一個(gè)、或者多個(gè)工作流引擎軟件上,對(duì)運(yùn)行的工作流進(jìn)行管理、實(shí)現(xiàn)以及定義的一套軟件就是工作流管理系統(tǒng)。要想執(zhí)行工作流實(shí)例,需要應(yīng)用計(jì)算機(jī),來(lái)推進(jìn)定義好的工作流邏輯。
1.2 基于JBPM的工作流管理系統(tǒng)
JBPM是工作流引擎,工作流管理系統(tǒng)的核心就是工作流引擎,其任務(wù)就是管理任務(wù)實(shí)例。JBPM是以J2EE為基礎(chǔ)的輕量級(jí)工作流引擎,同時(shí)也是一個(gè)工作流管理系統(tǒng),特點(diǎn)是容易擴(kuò)展、靈活多樣、開(kāi)源性,開(kāi)發(fā)語(yǔ)言為JAVA,對(duì)執(zhí)行流程實(shí)例以及定義管理流程時(shí)所需的運(yùn)行環(huán)境進(jìn)行管理。對(duì)自己定義的JPDL流程描述語(yǔ)言實(shí)施應(yīng)用,是JBPM的特色之一。JPDL以UML狀態(tài)圖來(lái)解釋任務(wù)流程,并對(duì)狀態(tài)間的轉(zhuǎn)換等狀態(tài)圖的每個(gè)部分進(jìn)行詳細(xì)定義,同時(shí)對(duì)其業(yè)務(wù)流程直觀描述。除此之外,JBPM在管理數(shù)據(jù)庫(kù)時(shí)還能將Hibermate應(yīng)用于持久層中,實(shí)現(xiàn)高質(zhì)量管理,這樣做是為了對(duì)OA系統(tǒng)更加專(zhuān)注。
2 JBPM工作流管理系統(tǒng)在OA中的應(yīng)用
2.1 工作流建模
為轉(zhuǎn)化實(shí)際業(yè)務(wù)流程為數(shù)字信息,便于存儲(chǔ),應(yīng)對(duì)工作流進(jìn)行建模,方便調(diào)用工作流運(yùn)行。JPDL流程文件后綴為.xml。流程定義在JBPM中被封裝成流程檔案,JPDL流程引擎在接收到流程檔案后對(duì)其執(zhí)行。流程事件的記錄、流程狀態(tài)的維持、定義動(dòng)作的執(zhí)行、流程圖的遍歷等工作均由JPDL流程引擎擔(dān)負(fù)。控制狀態(tài)變化的基礎(chǔ)為狀態(tài)機(jī)。定義任務(wù)、節(jié)點(diǎn)等都包含于工作流建模中。開(kāi)始發(fā)文流程實(shí)例化為開(kāi)始狀態(tài)節(jié)點(diǎn)任務(wù);結(jié)束發(fā)文實(shí)例為結(jié)束狀態(tài)節(jié)點(diǎn)任務(wù);登記來(lái)文、意見(jiàn)的擬辦、分管領(lǐng)導(dǎo)審閱、匯總處理、公開(kāi)信息欄等均為任務(wù)節(jié)點(diǎn)工作內(nèi)容;歸檔是自動(dòng)節(jié)點(diǎn)任務(wù),而傳閱的公開(kāi)與否則為判定節(jié)點(diǎn)的任務(wù)。
2.2 工作流應(yīng)用
(1)工作流基本要素。數(shù)據(jù)、活動(dòng)、參與者都為工作流基本要素。伴隨活動(dòng),數(shù)據(jù)從一個(gè)節(jié)點(diǎn)流轉(zhuǎn)至另一節(jié)點(diǎn),在JBPM中,由hibernate來(lái)管理持久層數(shù)據(jù)庫(kù),而儲(chǔ)存于數(shù)據(jù)庫(kù)中的工作列表則為數(shù)據(jù)的具體表現(xiàn)形式?;顒?dòng)是節(jié)點(diǎn),它是流程定義的組成。參與者負(fù)責(zé)執(zhí)行任務(wù),業(yè)務(wù)應(yīng)用層對(duì)參與者具體解釋負(fù)責(zé)。創(chuàng)建任務(wù)過(guò)程中,可不指定參與者,也可指定。
(2)工作流過(guò)程。首先需定義流程,而定義流程主要體現(xiàn)在對(duì)流程業(yè)務(wù)邏輯的定義上。Xml文件能夠被計(jì)算機(jī)理解,一個(gè)流程實(shí)例就是一次實(shí)際業(yè)務(wù)流轉(zhuǎn)過(guò)程。簡(jiǎn)單地說(shuō),流程實(shí)例就是有起始時(shí)間和結(jié)束時(shí)間,并在數(shù)據(jù)庫(kù)里存儲(chǔ)的數(shù)據(jù)。
步驟二,部署流程,在計(jì)算機(jī)系統(tǒng)中置入定義好的流程。
PROCESSDEFINITION PROCESS DEFINITION = PROCESSDEFINITION.PARSEXMLRESOURCE(“ORG/JBPM/PROCESSDEFINITION.XML”);
GRAPHSESSION.DELOPPROCESSDEFINITION(PROCESSDEFINITION);
步驟三,對(duì)流程的加載,方法如下:
PROCESSDEFINITION PROCESSDEFINITION = GRAPHSESSION.LOADPROCESSDEFINITION(PROCESSDEFINITIONID);
在加載流程的時(shí),應(yīng)在數(shù)據(jù)庫(kù)中,按照流程定義ID將需要加載的流程查找出來(lái)。
步驟四,將流程啟動(dòng)、并執(zhí)行,按照流程定義,開(kāi)始創(chuàng)建流程實(shí)例,內(nèi)容如下:
PROCESSINSTANCE PROCESS INSTANCE = NEW PROCESSINSTANCE (PROCESSDEF-INITION);這時(shí),ROOTTOKEN則向流程實(shí)例第1個(gè)節(jié)點(diǎn)進(jìn)行指向。
LIST LIST = TASKMGMTSESSION.FINDTASKINSTANCE(USERID)
步驟五,任務(wù)結(jié)束,完成當(dāng)前任務(wù)可調(diào)用接口END()的方法,在一個(gè)事物內(nèi)完成任務(wù)的結(jié)束與開(kāi)始,確保完整數(shù)據(jù)。
(3)人工選擇流程的走向。在對(duì)公文流轉(zhuǎn)文件進(jìn)行定義后,在傳閱的公開(kāi)與否節(jié)點(diǎn)位置可選擇2個(gè)路由,1個(gè)是轉(zhuǎn)向?yàn)g覽、公開(kāi)信息節(jié)點(diǎn),另一個(gè)則轉(zhuǎn)向領(lǐng)導(dǎo)審批節(jié)點(diǎn)。而在xml定義流程代碼中,流程的走向可進(jìn)行人工選擇,2條transition語(yǔ)句在該節(jié)點(diǎn)位置同時(shí)出現(xiàn)。
(4)程序自動(dòng)選擇流程走向。而流程走向的自動(dòng)選擇也可以通過(guò)對(duì)decision節(jié)點(diǎn)的設(shè)施來(lái)實(shí)現(xiàn),選擇的條件可根據(jù)JBPM
(5)使用泳道為多個(gè)任務(wù)指定相同的參與者。N個(gè)任務(wù)由一人進(jìn)行處理時(shí),JBPM為防止JAVA類(lèi)膨脹過(guò)度,針對(duì)該問(wèn)題,提供了泳道方式。
(6)會(huì)簽的應(yīng)用。會(huì)簽技術(shù)是為順利實(shí)現(xiàn)科學(xué)決策,在辦公自動(dòng)化中,需要N個(gè)用戶共同完成某些任務(wù)。當(dāng)經(jīng)過(guò)部門(mén)領(lǐng)導(dǎo)的批準(zhǔn)后,方可完成任務(wù),匯總工作由主辦人負(fù)責(zé)。會(huì)簽的實(shí)現(xiàn)可通過(guò)taskin-stance來(lái)實(shí)現(xiàn)。
3 結(jié)束語(yǔ)
在辦公自動(dòng)化系統(tǒng)中應(yīng)用JBPM工作流系統(tǒng),易于實(shí)現(xiàn)辦公自動(dòng)化相關(guān)流轉(zhuǎn)問(wèn)題。在對(duì)工作流模型進(jìn)行處理時(shí),因JBPM具有圖形化建模、高擴(kuò)展性、良好開(kāi)放性等特征,因此,可將部署靈活實(shí)現(xiàn),工作流引擎理想化,達(dá)到了客戶需求標(biāo)準(zhǔn)。
參考文獻(xiàn)
[1]吳潔.基于JBPM的辦公自動(dòng)化系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].電腦與電信,2012(1).
[2]周仁云,王振國(guó).JBPM在Web OA系統(tǒng)中的應(yīng)用[J].中國(guó)教育信息化,2010(8).
[3]鄭步芹,張瑜慧.基于JBPM的企業(yè)OA的應(yīng)用研究[J].現(xiàn)代計(jì)算機(jī)(專(zhuān)業(yè)版),2012(23).
作者單位
中國(guó)化工信息中心 北京市 100029