jBPM詳解-工作流管理系統(tǒng)_第1頁(yè)
jBPM詳解-工作流管理系統(tǒng)_第2頁(yè)
jBPM詳解-工作流管理系統(tǒng)_第3頁(yè)
jBPM詳解-工作流管理系統(tǒng)_第4頁(yè)
jBPM詳解-工作流管理系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩58頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、J2EE工作流管理系統(tǒng)jBPM詳解(一)一、jBPM入門簡(jiǎn)介 概述 工作流業(yè)務(wù)流流程管理技術(shù)術(shù)是基于SOOA技術(shù)實(shí)現(xiàn)現(xiàn)的一個(gè)核心心部分。使用用工作流能夠夠在軟件開(kāi)發(fā)發(fā)和業(yè)務(wù)兩個(gè)個(gè)層次受益: 1、方便開(kāi)發(fā)發(fā) 工作流管理系系統(tǒng)能夠簡(jiǎn)化化企業(yè)級(jí)軟件件開(kāi)發(fā)甚至維維護(hù)。 降低開(kāi)發(fā)風(fēng)風(fēng)險(xiǎn) - 通通過(guò)使用狀態(tài)態(tài)和動(dòng)作這樣樣的術(shù)語(yǔ),業(yè)業(yè)務(wù)分析師和和開(kāi)發(fā)人員使使用同一種語(yǔ)語(yǔ)言交談。這這樣開(kāi)發(fā)人員員就不必將用用戶需求轉(zhuǎn)化化成軟件設(shè)計(jì)計(jì)了。 實(shí)現(xiàn)的集中中統(tǒng)一 -業(yè)業(yè)務(wù)流程經(jīng)常常變化,使用用工作流系統(tǒng)統(tǒng)的最大好處處是:業(yè)務(wù)流流程的實(shí)現(xiàn)代代碼,不再是是散落在各種種各樣的系統(tǒng)統(tǒng)中 。 加快應(yīng)用用開(kāi)發(fā) - 你的軟件不不用再

2、關(guān)注流流程的參與者者,開(kāi)發(fā)起來(lái)來(lái)更快,代碼碼更容易維護(hù)護(hù)。 2、業(yè)務(wù)流程程管理 (BBPM) 在自動(dòng)化業(yè)務(wù)務(wù)流程之前,分分析并將它們們規(guī)格化是一一件艱苦但會(huì)會(huì)有很好回報(bào)報(bào)的工作: 提高效率 - 許多流流程在自動(dòng)化化過(guò)程中會(huì)去去除一些不必必要的步驟較較好的流程控控制 - 通通過(guò)標(biāo)準(zhǔn)的工工作方法和跟跟蹤審計(jì),提提高了業(yè)務(wù)流流程的管理 改進(jìn)客戶戶服務(wù) - 因?yàn)榱鞒痰牡囊恢滦裕崽岣吡藢?duì)客戶戶響應(yīng)的可預(yù)預(yù)見(jiàn)性 靈活 - 跨越流程的的軟件控制,使使流程可以按按照業(yè)務(wù)的需需要重新設(shè)計(jì)計(jì)。 業(yè)業(yè)務(wù)流程改進(jìn)進(jìn) - 對(duì)流流程的關(guān)注,使使它們趨向于于流暢和簡(jiǎn)單單 但從長(zhǎng)遠(yuǎn)的角角度,工作流流流程管理技技術(shù)的研究可可

3、為兩個(gè)階段段進(jìn)行:1.目前解決華華研今后新項(xiàng)項(xiàng)目中復(fù)雜業(yè)業(yè)務(wù)流程如何何使用工作流流引擎技術(shù)進(jìn)進(jìn)行實(shí)現(xiàn)的問(wèn)問(wèn)題。 2.上升到面面向服務(wù)體系系架構(gòu),實(shí)現(xiàn)現(xiàn)各個(gè)服務(wù)之之間的業(yè)務(wù)流流程。 jBPM,全全稱是 HYPERLINK / Javva Bussinesss Proccess MManageement,是是一種基于JJ2EE的輕輕量級(jí)工作流流管理系統(tǒng)。jjBPM是公公開(kāi)源代碼項(xiàng)項(xiàng)目,它使用用要遵循 AApachee Liceense. jBPM在22004年110月18日日,發(fā)布了22.0版本,并并在同一天加加入了JBooss,成為為了JBosss企業(yè)中間間件平臺(tái)的一一個(gè)組成部分分,它的名稱稱也

4、改成JBBoss jjBPM.隨隨著jBPMM加入JBooss組織,jjBPM也將將進(jìn)入一個(gè)全全新的發(fā)展時(shí)時(shí)代,它的前前景是十分光光明的。 JBoss jBPM 只有最小的的倚賴性,它它可以很容易易的作為jaava庫(kù)來(lái)使使用。當(dāng)然它它也可以用在在訪問(wèn)量很大大的J2EEE 群應(yīng)用 HYPERLINK / 服服務(wù)器環(huán)境中中。 JBooss jBBPM 可以以同任何數(shù)據(jù)據(jù)庫(kù)配置可以以部署在任何何應(yīng)用 HYPERLINK / 服務(wù)器器上。 jBPM 最最大的特色就就是它的商務(wù)務(wù)邏輯定義沒(méi)沒(méi)有采用目前前的一些規(guī)范范,如WfMMC XPDDL, BPPML, eebXML, BPEL44WS等,而而是采用

5、了它它自己定義的的JBosss jBPMM Proccess ddefiniition languuage (jjPdl)。jjPdl認(rèn)為為一個(gè)商務(wù)流流程可以被看看作是一個(gè)UUML狀態(tài)圖圖。jPdll就是詳細(xì)定定義了這個(gè)狀狀態(tài)圖的每個(gè)個(gè)部分,如起起始、結(jié)束狀狀態(tài),狀態(tài)之之間的轉(zhuǎn)換等等。 jBPM的另另一個(gè)特色是是它使用Hiibernaate來(lái)管理理它的數(shù)據(jù)庫(kù)庫(kù)。Hibeernatee是目前 HYPERLINK / Jaava領(lǐng)域最最好的一種數(shù)數(shù)據(jù)持久層解解決方案。通通過(guò)Hibeernatee,jBPMM將數(shù)據(jù)的管管理職能分離離出去,自己己專注于商務(wù)務(wù)邏輯的處理理。(具體選選型報(bào)告可參參考工作流

6、技技術(shù)選型評(píng)估估報(bào)告)。 本文檔主要是是工作流研究究小組關(guān)于開(kāi)開(kāi)源工作流引引擎jbpmm的研究成果果總結(jié)。內(nèi)容容包括工作流流研究場(chǎng)景的的介紹、jbbpm的環(huán)境境配置,并包包括以下六個(gè)個(gè)研究主題: JBPM同同開(kāi)發(fā)如何結(jié)結(jié)合,又如何何保持獨(dú)立性性;對(duì)應(yīng)用系系統(tǒng)的設(shè)計(jì)實(shí)實(shí)現(xiàn)有什么樣樣的制約 用戶/角色色如何同應(yīng)用用系統(tǒng)結(jié)合,變變化又如何處處理 流程程中每個(gè)活動(dòng)動(dòng),如何動(dòng)態(tài)態(tài)指定執(zhí)行者者 類似傳傳閱功能如何何實(shí)現(xiàn) 子子流程如何實(shí)實(shí)現(xiàn) 流程程執(zhí)行步驟耗耗時(shí)閥值和自自動(dòng)提醒設(shè)置置 jBPPM當(dāng)前版本本的穩(wěn)定性評(píng)評(píng)估術(shù)語(yǔ)、定義和縮縮略語(yǔ)應(yīng)用場(chǎng)景 本場(chǎng)景是從房房地產(chǎn)營(yíng)銷系系統(tǒng)的需求中中提取出來(lái)的的,在房地產(chǎn)

7、產(chǎn)項(xiàng)目中,客客戶選戶購(gòu)房房的過(guò)程是一一個(gè)非常典型型的工作流場(chǎng)場(chǎng)景。我們將將這一過(guò)程提提取出來(lái),作作為jbpmm技術(shù)研究的的場(chǎng)景。 在購(gòu)房過(guò)程中中,會(huì)有以下下人員參與。 客戶:購(gòu)房的主體 銷售人員:在購(gòu)房過(guò)程中指導(dǎo)看房,購(gòu)房。 銷售經(jīng)理:確定認(rèn)購(gòu)信息。 財(cái)務(wù)人員:收取定金。 客服人員:打印收據(jù),打印客戶認(rèn)購(gòu)書。 客戶購(gòu)房的過(guò)程可以描述如下。 客戶來(lái)到售樓中心,銷售人員進(jìn)行接待。 客戶向銷售人員提供預(yù)先申請(qǐng)的服務(wù)號(hào)。 銷售人員確認(rèn)服務(wù)號(hào)是否有效,如果無(wú)效現(xiàn)場(chǎng)給出一個(gè)新的服務(wù)號(hào)。 銷售人員引導(dǎo)客戶選房。 客戶確定戶型,房號(hào)。 銷售人員錄入客戶認(rèn)購(gòu)資料。 銷售人員確認(rèn)認(rèn)購(gòu)資料填寫完整。 銷售人員將認(rèn)購(gòu)

8、資料提交給銷售經(jīng)理審批。 確定是否可以獲得優(yōu)惠,如果客戶是一次交清房款,獲得0.1%優(yōu)惠。 交上級(jí)經(jīng)理審批。 銷售人員引導(dǎo)客戶到財(cái)務(wù)處交納定金。 交納定金后,客服人員打印收據(jù)。 客服人員打印認(rèn)購(gòu)書。 為了使用研究究的場(chǎng)景更有有代表性,揉揉合其他典型型的工作流應(yīng)應(yīng)用場(chǎng)景,將將上面的流程程作一些刪改改。 客戶認(rèn)購(gòu)的流流程改為: 客戶確定定購(gòu)房,銷售售人員錄入認(rèn)認(rèn)購(gòu)資料。 提交認(rèn)購(gòu)購(gòu)資料,必須須保證錄入資資料的完整性性。 提交交審核,按總總金額進(jìn)行分分類審核。如如果金額小于于50萬(wàn)銷售售經(jīng)理審核即即可,大于550萬(wàn)還要上上級(jí)經(jīng)理兩人人同時(shí)審核通通過(guò)。 審審批完成,客客戶到財(cái)務(wù)處處交納定金。 客服人員

9、為客戶打印收據(jù),打印認(rèn)購(gòu)書,認(rèn)購(gòu)?fù)瓿伞I厦娴牧鞒讨幸灰恍┊惓G闆r況(流程中的的一些分支),在這里先先不作考慮,如如,客戶在交交納定金之前前可以隨時(shí)放放棄認(rèn)購(gòu)。 客戶的認(rèn)購(gòu)要要錄入的資料料內(nèi)容包括:客戶姓名,房房號(hào),定金,總總金額,流程程號(hào)等,這里里僅選取幾個(gè)個(gè)重要的數(shù)據(jù)據(jù)作為保存對(duì)對(duì)象。保存錄錄入資料時(shí)自自動(dòng)取得一個(gè)個(gè)流程號(hào),任任何時(shí)候,可可以根據(jù)此流流程號(hào)跟蹤流流程狀態(tài),所所以在保存認(rèn)認(rèn)購(gòu)資料時(shí)要要記錄流程號(hào)號(hào)。通用的標(biāo)標(biāo)準(zhǔn)規(guī)范 jjBPM 是是個(gè)功能全面面的Workkflow Enginne,融合了了4大功能:Workfflow,BBPM,BPPEL,PaageFloow。它自己己有個(gè)BP

10、EEL擴(kuò)展,采采用jbosss Hibbernatte實(shí)現(xiàn),它它使用自定義義的自定義標(biāo)標(biāo)準(zhǔn)jpdll,不支持目目前公開(kāi)的工工作流(業(yè)務(wù)務(wù)流程)標(biāo)準(zhǔn)準(zhǔn),如: JCP JSR2008 Javva Bussinesss Inteegratiion JJSR2077 Proccess DDefiniition for JJava OASIIS WSS-BPELL Worrkfloww Manaagemennt Coaalitioon(WFMMC) WWFMC XXPDL Businness PProcesss Mannagemeent Innitiattive (BPMI) BPMMN Obbject

11、 Managgementt Grouup (OMMG) SState Chartt XML (SCXMML) 處理 HYPERLINK 測(cè)試階段段的JBosss jBPPM BPEEL擴(kuò)展準(zhǔn)備備支持BPEEL 1.11標(biāo)準(zhǔn)(非標(biāo)標(biāo)準(zhǔn)組織通過(guò)過(guò)的標(biāo)準(zhǔn))。技術(shù)方案 由于于公司采取的的架構(gòu)是ejjb3+taapestrry4架構(gòu),所所以我們的場(chǎng)場(chǎng)景實(shí)現(xiàn)架構(gòu)構(gòu)也是基于以以上架構(gòu)進(jìn)行行實(shí)現(xiàn)的(ttapesttry4+eejb3+jjbpm3.2),我們們所采取的jjbpm版本本是3.2,這這也是目前jjbpm最新新的版本。這這里我們使用用jbosss作為我們的的web服務(wù)務(wù)器開(kāi)發(fā)環(huán)境 這這里我們是采采用

12、ecliipse3.2開(kāi)發(fā)工具具進(jìn)行開(kāi)發(fā),TTapesttry4+eejb3的開(kāi)開(kāi)發(fā)環(huán)境配置置和以往的項(xiàng)項(xiàng)目配置基本本保持一致,這這里就不再進(jìn)進(jìn)行詳細(xì)介紹紹,關(guān)鍵就是是jbpm33.2的配置置方法。 我們從jBooss官方網(wǎng)網(wǎng)站(htttp:/wwww.jbboss.oorg)上 HYPERLINK / 下下載jbpmm-jpdll-suitte-3.22.GA.zzip,最新新的版本是33.2.GAA,這個(gè)包括括: jbpm-serveer , 預(yù)預(yù)先配置的jjboss 應(yīng)用服務(wù)器器. jjbpm-ddesignner , jBPM流流程圖形化設(shè)設(shè)計(jì)器的ecclipsee 插件 . jjbp

13、m-ddb , jjBPM 數(shù)數(shù)據(jù)庫(kù)兼容包包 (參看下下面). jbpmm , 核心心jbpm組組件包括庫(kù)和和用戶手冊(cè). jbbpm-bppel , JBosss jBPMM BPELL 擴(kuò)展參考考. 預(yù)配置的JBBoss 應(yīng)應(yīng)用服務(wù)器有有下列安裝組組件: 核核心jBPMM 組件 , 打包作為為JBosss服務(wù)檔案 一個(gè)包括所有有jBPM 表格的完整整數(shù)據(jù)庫(kù) : 默認(rèn)的 hyperrsonicc 數(shù)據(jù)庫(kù)包包含所有的jjBPM 表表格和已經(jīng)定定義的流程. jBPM 控控制臺(tái)webb應(yīng)用程序 這個(gè)可以用用來(lái)為jBPPM管理員. jBPMM調(diào)度程序 所有定時(shí)器器的執(zhí)行. 調(diào)度程序在在新手工具箱箱里配

14、置成了了一個(gè)serrvlet.這個(gè)Serrvlet會(huì)會(huì)為產(chǎn)生一個(gè)個(gè)線程來(lái)監(jiān)視視每個(gè)定時(shí)器器的執(zhí)行. 一個(gè)流程例子子 已經(jīng)發(fā)布布進(jìn)了jBPPM 數(shù)據(jù)庫(kù)庫(kù),關(guān)于jbbpm-jppdl-suuite-33.2套件包包的具體介紹紹,可以參考考JBosss jBPMM Cookkbook手手冊(cè)。 JBoss jBPM 是一個(gè)Jaava庫(kù). 因此,它可可以用在任何何java環(huán)環(huán)境比如weeb 應(yīng)用程程序,Swiing應(yīng)用程程序,EJBB,Web Serviice等等,JJBoss jBPM 核心組件被被打包成一個(gè)個(gè)簡(jiǎn)單的Jaava庫(kù)文件件.它依賴你你所使用的功功能性, 庫(kù)庫(kù) jbpmm-jpdll.jar

15、及及一些相關(guān)的的第三方的庫(kù)庫(kù)比如 . hiberrnate33.2, ddom4j 等等 在我們實(shí)現(xiàn)場(chǎng)場(chǎng)景中。要使使用jbpmm,我們首先先需要將jbbpm3.22的包導(dǎo)入我我們的項(xiàng)目當(dāng)當(dāng)中, jbbpm3.22的主要包括括兩個(gè)包jbbpm-jppdl.jaar和jbppm-ideentityy.jar。而而jbpm-jpdl.jar是jjbpm的核核心包,jbbpm-iddentitty.jarr則是jbppm自帶的用用戶角色權(quán)限限管理包。我我們將這兩個(gè)個(gè)包導(dǎo)入我們們的項(xiàng)目中。(具具體可參考jjbpm的用用戶手冊(cè)) 在jbpm中中,流程的定定義主要是編編寫在xmll文件中的,我我們需要將具具

16、體的業(yè)務(wù)流流程在xmll中定義。所所以我們需要要在項(xiàng)目的根根目錄上新建建一個(gè)源目錄錄,這里我們們命名為“pprocessses”,在在該目錄我們們可以保存流流程定義xmml文件。 JBoss jBPM 包括一個(gè)圖圖形化的流程程設(shè)計(jì)工具. 這個(gè)設(shè)計(jì)計(jì)器是用來(lái)創(chuàng)創(chuàng)作商業(yè)流程程的,該圖形形設(shè)計(jì)器是一一個(gè)Ecliipse插件件,圖形化設(shè)設(shè)計(jì)工具最重重要的特性是是它同時(shí)支持持業(yè)務(wù)分析員員和技術(shù)開(kāi)發(fā)發(fā)人員. 這這樣就可以在在業(yè)務(wù)流程建建模和實(shí)際執(zhí)執(zhí)行之間平滑滑轉(zhuǎn)換。使用用該插件你可可以通過(guò)界面面來(lái)拖拉描繪繪你的業(yè)務(wù)流流程,而不需需要靠手寫編編碼來(lái)設(shè)計(jì)。該該插件位于jjbpm-jjpdl-ssuite-3.

17、2.GGA.zipp中,插件的的安裝方法可可以參考ellipse插插件的安裝方方法。安裝完完畢后,我們們下面可以通通過(guò)該插件新新建流程設(shè)計(jì)計(jì)文件。步驟如下:1、在在proceesses目目錄中右建選選擇“Neww”“oother” 2、選擇“PProcesss Deffinitiion”,點(diǎn)點(diǎn)擊“Nexxt” 輸入Proccess nname,點(diǎn)點(diǎn)擊完成。打打開(kāi)設(shè)計(jì)界面面,我們就可可以在上面根根據(jù)我們的業(yè)業(yè)務(wù)來(lái)設(shè)計(jì)工工作流流程文文件。 Jbpm本身身包含很多自自己的jbppm數(shù)據(jù)庫(kù)表表,jBPMM內(nèi)部使用hhibernnate來(lái)管管理它的數(shù)據(jù)據(jù)庫(kù),通過(guò)HHibernnate,jjBPM將數(shù)數(shù)據(jù)

18、的管理職職能分離出去去,自己專注注于商務(wù)邏輯輯的處理,而而且我們可以以使jBPMM移植在不同同的數(shù)據(jù)庫(kù).。我們進(jìn)行行的每一步流流程操作都保保存在jbppm數(shù)據(jù)表中中,通過(guò)調(diào)用用jbpm提提供的接口,我我們可以對(duì)jjBPM數(shù)據(jù)據(jù)庫(kù)進(jìn)行 HYPERLINK / 存儲(chǔ)儲(chǔ),更新和檢檢索流程信息息的服務(wù)。這這里我們使用用Mysqll5.0數(shù)據(jù)據(jù)庫(kù),下面我我們?cè)陧?xiàng)目中中新建一個(gè)源源目錄“coonfig.filess”,名字可可以任意,在在該目錄建立立hiberrnate.cfg.xxml文件:hibernaate.cffg.xmll?xml vversioon=1.0 enncodinng=uttf-8?

19、!DOCTYYPE hiibernaate-coonfiguuratioon PUBBLIC -/Hiibernaate/Hiibernaate Coonfiguuratioon DTDD 3.0/EN http:/hibbernatte.souurcefoorge.nnet/hiibernaate-coonfiguuratioon-3.00.dtdhibernnate-cconfigguratiionsessioon-facctory!- hiibernaate diialectt -!-proopertyy namee=hibbernatte.diaalectorg.hiberrnate.

20、dialeect.HSSQLDiaalect/propperty-properrty naame=hhibernnate.ddialecctorg.hibbernatte.diaalect.MySQLLDialeect/propeerty!- JDDBC coonnecttion pproperrties (begiin) =properrty naame=hhibernnate.cconnecction.driveer_claassoorg.hssqldb.jdbcDDriverr/proopertyyproperrty naame=hhibernnate.cconnecction.urlj

21、dbc:hsqlddb:memm:jbpmm/proopertyyproperrty naame=hhibernnate.cconnecction.usernnamesa/pproperrtyproperrty naame=hhibernnate.cconnecction.passwword/proopertyy= JDDBC coonnecttion pproperrties (end) -!- JDDBC coonnecttion ffor MyySQL ddatabaase -properrty naame=cconnecction.driveer_claasscom.myssql.jd

22、dbc.Drriver/propeertyproperrty naame=cconnecction.urljdbc:myysql:/locaalhostt/myjbbpm/propeertyproperrty naame=cconnecction.usernnameroot/proppertyproperrty naame=cconnecction.passwword1234/propperty!- JDDBC coonnecttion ppool (use tthe buuilt-iin) -properrty naame=cconnecction.pool_size1/pproperrty

23、properrty naame=viider_cclassorg.hibbernatte.cacche.HaashtabbleCaccheProoviderr/propeerty!- usse datta souurce -!- DaataSouurce pproperrties (begiin)properrty naame=hhibernnate.cconnecction.datassourceejava:coomp/ennv/JbppmDS/propeertyDataSouurce pproperrties (end) -!- Drrop annd re-creatte thee dat

24、aabase schemma on starttup -properrty naame=hhbm2dddl.auttocrreate/propperty!- JTTA traansacttion pproperrties (begiin) =properrty naame=hhibernnate.ttransaactionn.facttory_cclassorg.hibbernatte.traansacttion.JJTATraansacttionFaactoryy/proopertyyproperrty naame=hhibernnate.ttransaactionn.manaager_ll

25、ookupp_classsorg.hibbernatte.traansacttion.JJBossTTransaactionnManaggerLoookup/propeerty= JTTA traansacttion pproperrties (end) -!- CMMT traansacttion pproperrties (begiin) =properrty naame=hhibernnate.ttransaactionn.facttory_cclassorg.hibbernatte.traansacttion.CCMTTraansacttionFaactoryy/proopertyyp

26、roperrty naame=hhibernnate.ttransaactionn.manaager_llookupp_classsorg.hibbernatte.traansacttion.JJBossTTransaactionnManaggerLoookup/propeerty= CMMT traansacttion pproperrties (end) -!- looggingg proppertiees (beegin) =properrty naame=hhibernnate.sshow_ssqlttrue/propeertyproperrty naame=hhibernnate.f

27、formatt_sqltruee/proopertyyproperrty naame=hhibernnate.uuse_sqql_commmentsstruue/prropertty= looggingg proppertiees (ennd) -!- # -!- # mappiing fiiles wwith eexternnal deependeenciess # -!- # -!- foollowiing maappingg filee has a deppendenndy onn-!- bbsh-vversioon.jaar. -!- unncommeent thhis iff you

28、 dontt havee bsh on yoour -!- cllasspaath. you wwont be abble too use the -!- sccript elemeent inn proccess ddefiniition filess-mappinng ressourcee=orgg/jbpmm/grapph/acttion/SScriptt.hbm.xml /!- foollowiing maappingg filees havve a ddependdendy on -!- jjbpm-iidentiity.jaar, mmappinng filles-!- off t

29、he plugggable jbpm identtity ccomponnent. -!- Unncommeent thhe folllowinng 3 llines if yoou -!- waant too use the jjBPM iidentiity mggmgt -!- coomponeent.-!- iddentitty mapppingss (beggin) -mappinng ressourcee=orgg/jbpmm/idenntity/User.hbm.xxml /mappinng ressourcee=orgg/jbpmm/idenntity/Groupp.hbm.xm

30、l /mappinng ressourcee=orgg/jbpmm/idenntity/Membeershipp.hbm.xml /!- iddentitty mapppingss (endd) -!- foollowiing maappingg filees havve a ddependdendy on -!- thhe JCRR API -!- jccr mapppingss (beggin) =mappinng ressourcee=orgg/jbpmm/conttext/eexe/vaariablleinsttanc /JcrNNodeInnstancce.hbmm.xml/= jc

31、cr mapppingss (endd) -!- # -!- # jbpm mappiing fiiles # -!- # -!- hqql queeries and ttype ddefs -mappinng ressourcee=orgg/jbpmm/db/hhibernnate.qqueriees.hbmm.xml /!- grraph.ddef maappingg filees -mappinngresourcce=orrg/jbppm/graaph/deef/ProocessDDefiniition.hbm.xxml /mappinng ressourcee=orgg/jbpmm/g

32、rapph/deff/Nodee.hbm.xml /mappinng ressourcee=orgg/jbpmm/grapph/deff/Trannsitioon.hbmm.xml /mappinng ressourcee=orgg/jbpmm/grapph/deff/Evennt.hbmm.xml /mappinng ressourcee=orgg/jbpmm/grapph/deff/Actiion.hbbm.xmll /mappinng ressourcee=orgg/jbpmm/grapph/deff/SupeerStatte.hbmm.xml /mappinng ressourcee=

33、orgg/jbpmm/grapph/deff/ExceeptionnHandller.hbbm.xmll /mappinng ressourcee=orgg/jbpmm/insttantiaation/Deleggationn.hbm.xml /!- grraph.nnode mmappinng filles -mappinng ressourcee=orgg/jbpmm/grapph/nodde/StaartStaate.hbbm.xmll /mappinng ressourcee=orgg/jbpmm/grapph/nodde/EnddStatee.hbm.xml /mappinng re

34、ssourcee=orgg/jbpmm/grapph/nodde/ProocessSState.hbm.xxml /mappinng ressourcee=orgg/jbpmm/grapph/nodde/Deccisionn.hbm.xml /mappinng ressourcee=orgg/jbpmm/grapph/nodde/Forrk.hbmm.xml /mappinng ressourcee=orgg/jbpmm/grapph/nodde/Joiin.hbmm.xml /mappinng ressourcee=orgg/jbpmm/grapph/nodde/Staate.hbbm.xm

35、ll /mappinng ressourcee=orgg/jbpmm/grapph/nodde/TasskNodee.hbm.xml /!- coontextt.def mappiing fiiles -mappinngresourcce=orrg/jbppm/conntext/def/CContexxtDefiinitioon.hbmm.xml /mappinng ressourcee=orgg/jbpmm/conttext/ddef/VaariablleAcceess.hbbm.xmll /!- taaskmgmmt.deff mappping ffiles -mappinngresour

36、cce=orrg/jbppm/tasskmgmtt/def/TaskMMgmtDeefinittion.hhbm.xmml /mappinng ressourcee=orgg/jbpmm/taskkmgmt/def/SSwimlaane.hbbm.xmll /mappinng ressourcee=orgg/jbpmm/taskkmgmt/def/TTask.hhbm.xmml /mappinngresourcce=orrg/jbppm/tasskmgmtt/def/TaskCControoller.hbm.xxml /!- moodule.def mmappinng filles -mapp

37、inngresourcce=orrg/jbppm/moddule/ddef/MooduleDDefiniition.hbm.xxml /!- byytes mmappinng filles -mappinng ressourcee=orgg/jbpmm/bytees/BytteArraay.hbmm.xml /!- fiile.deef mappping filess -mappinng ressourcee=orgg/jbpmm/filee/def/FileDDefiniition.hbm.xxml /!- sccheduller.deef mappping filess -mappinng

38、resourcce=orrg/jbppm/schheduleer/deff/CreaateTimmerActtion.hhbm.xmml /mappinngresourcce=orrg/jbppm/schheduleer/deff/CanccelTimmerActtion.hhbm.xmml /!- grraph.eexe maappingg filees -mappinng ressourcee=orgg/jbpmm/grapph/exee/Commment.hhbm.xmml /mappinng ressourcee=orgg/jbpmm/grapph/exee/ProccessInnst

39、ancce.hbmm.xml /mappinng ressourcee=orgg/jbpmm/grapph/exee/Tokeen.hbmm.xml /mappinng ressourcee=orgg/jbpmm/grapph/exee/RunttimeAcction.hbm.xxml /!- moodule.exe mmappinng filles -mappinng ressourcee=orgg/jbpmm/moduule/exxe/ModduleInnstancce.hbmm.xml /!- coontextt.exe mappiing fiiles -mappinngresourcc

40、e=orrg/jbppm/conntext/exe/CContexxtInsttance.hbm.xxml /mappinngresourcce=orrg/jbppm/conntext/exe/TTokenVVariabbleMapp.hbm.xml /mappinngresourcce=orrg/jbppm/conntext/exe/VVariabbleInsstancee.hbm.xml /mappinngresourcce=orrg/jbppm/conntext/exe/vvariabbleinsstancee/ByteeArrayyInstaance.hhbm.xmml /mappin

41、ngresourcce=orrg/jbppm/conntext/exe/vvariabbleinsstancee/DateeInstaance.hhbm.xmml /mappinngresourcce=orrg/jbppm/conntext/exe/vvariabbleinsstancee/DoubbleInsstancee.hbm.xml /mappinngresourcce=orrg/jbppm/conntext/exe/vvariabbleinsstancee/HibeernateeLongIInstannce.hbbm.xmll /mappinngresourcce=orrg/jbpp

42、m/conntext/exe/vvariabbleinsstancee/HibeernateeStrinngInsttance.hbm.xxml /mappinngresourcce=orrg/jbppm/conntext/exe/vvariabbleinsstancee/LonggInstaance.hhbm.xmml /mappinngresourcce=orrg/jbppm/conntext/exe/vvariabbleinsstancee/NulllInstaance.hhbm.xmml /mappinngresourcce=orrg/jbppm/conntext/exe/vvaria

43、bbleinsstancee/StriingInsstancee.hbm.xml /!- joob mappping filess -mappinng ressourcee=orgg/jbpmm/job/Job.hhbm.xmml /mappinng ressourcee=orgg/jbpmm/job/Timerr.hbm.xml /mappinng ressourcee=orgg/jbpmm/job/ExecuuteNoddeJob.hbm.xxml /mappinng ressourcee=orgg/jbpmm/job/ExecuuteActtionJoob.hbmm.xml /!- ta

44、askmgmmt.exee mappping ffiles -mappinngresourcce=orrg/jbppm/tasskmgmtt/exe/TaskMMgmtInnstancce.hbmm.xml /mappinng ressourcee=orgg/jbpmm/taskkmgmt/exe/TTaskInnstancce.hbmm.xml /mappinng ressourcee=orgg/jbpmm/taskkmgmt/exe/PPooleddActorr.hbm.xml /mappinngresourcce=orrg/jbppm/tasskmgmtt/exe/SwimllaneIn

45、nstancce.hbmm.xml /!- looggingg mappping ffiles -mappinng ressourcee=orgg/jbpmm/loggging/llog/PrrocesssLog.hhbm.xmml /mappinng ressourcee=orgg/jbpmm/loggging/llog/MeessageeLog.hhbm.xmml /mappinng ressourcee=orgg/jbpmm/loggging/llog/CoomposiiteLogg.hbm.xml /mappinng ressourcee=orgg/jbpmm/grapph/logg/

46、ActiionLogg.hbm.xml /mappinng ressourcee=orgg/jbpmm/grapph/logg/NodeeLog.hhbm.xmml /mappinngresourcce=orrg/jbppm/graaph/loog/ProocessIInstannceCreeateLoog.hbmm.xml /mappinngresourcce=orrg/jbppm/graaph/loog/ProocessIInstannceEnddLog.hhbm.xmml /mappinng ressourcee=orgg/jbpmm/grapph/logg/ProccessSttate

47、Loog.hbmm.xml /mappinng ressourcee=orgg/jbpmm/grapph/logg/SignnalLogg.hbm.xml /mappinng ressourcee=orgg/jbpmm/grapph/logg/TokeenCreaateLogg.hbm.xml /mappinng ressourcee=orgg/jbpmm/grapph/logg/TokeenEndLLog.hbbm.xmll /mappinng ressourcee=orgg/jbpmm/grapph/logg/TrannsitioonLog.hbm.xxml /mappinng resso

48、urcee=orgg/jbpmm/conttext/llog/VaariablleLog.hbm.xxml /mappinngresourcce=orrg/jbppm/conntext/log/VVariabbleCreeateLoog.hbmm.xml /mappinngresourcce=orrg/jbppm/conntext/log/VVariabbleDelleteLoog.hbmm.xml /mappinngresourcce=orrg/jbppm/conntext/log/VVariabbleUpddateLoog.hbmm.xml /mappinngresourcce=orrg/

49、jbppm/conntext/log/vvariabbleinsstancee/ByteeArrayyUpdatteLog.hbm.xxml /mappinngresourcce=orrg/jbppm/conntext/log/vvariabbleinsstancee/DateeUpdatteLog.hbm.xxml /mappinngresourcce=orrg/jbppm/conntext/log/vvariabbleinsstancee/DoubbleUpddateLoog.hbmm.xml /mappinngresourcce=orrg/jbppm/conntext/log/vvari

50、abbleinsstancee/HibeernateeLongUUpdateeLog.hhbm.xmml /mappinngresourcce=orrg/jbppm/conntext/log/vvariabbleinsstancee/HibeernateeStrinngUpdaateLogg.hbm.xml /mappinng resouurce=org/jjbpm/ccontexxt/logg/variiableiinstannce/LoongUpddateLoog.hbmm.xml /mappinng resouurce=org/jjbpm/ccontexxt/logg/variiable

51、iinstannce/SttringUUpdateeLog.hhbm.xmml /mappinng ressourcee=orgg/jbpmm/taskkmgmt/log/TTaskLoog.hbmm.xml /mappinng ressourcee=orgg/jbpmm/taskkmgmt/log/TTaskCrreateLLog.hbbm.xmll /mappinng ressourcee=orgg/jbpmm/taskkmgmt/log/TTaskAsssignLLog.hbbm.xmll /mappinng ressourcee=orgg/jbpmm/taskkmgmt/log/TTa

52、skEnndLog.hbm.xxml /mappinng ressourcee=orgg/jbpmm/taskkmgmt/log/SSwimlaaneLogg.hbm.xml /mappinngresourcce=orrg/jbppm/tasskmgmtt/log/SwimllaneCrreateLLog.hbbm.xmll / mapppingresourcce=orrg/jbppm/tasskmgmtt/log/SwimllaneAsssignLLog.hbbm.xmll /sessiion-faactoryy/hiberrnate-confiigurattion 我們?cè)趙ebb應(yīng)用項(xiàng)目的

53、的web.xxml文件中中定義JbppmConttextFiilter過(guò)過(guò)濾類,它用用于實(shí)現(xiàn)JBBPMCONNTEXT 的初始化 filtter filteer-nammeJbppmConttextFiilter/filtter-naame filteer-claassorrg.jbppm.webb.JbpmmConteextFillter/filteer-claass /fillter filtter-maappingg filteer-nammeJbppmConttextFiilter/filtter-naame url-ppatterrn/*/url-patteern/filteer-m

54、appping 到這里,jbbpm的配置置已經(jīng)基本完完成,關(guān)于jjbpm詳細(xì)細(xì)資料大家可可以參考jbbpm用戶指指南,這里就就不多說(shuō)。子流程的使用 成果介紹 詳細(xì)闡述開(kāi)發(fā)發(fā)成果 評(píng)審審標(biāo)準(zhǔn):清楚楚介紹開(kāi)發(fā)成成果 當(dāng)一個(gè)流程程的業(yè)務(wù)邏輯輯非常復(fù)雜的的時(shí)候,可以以考慮使用子子流程。子流流程和主流程程是相對(duì)獨(dú)立立的。 設(shè)計(jì)思路 描述主要的設(shè)設(shè)計(jì)思路,開(kāi)開(kāi)發(fā)方法以及及技術(shù)要點(diǎn)評(píng)評(píng)審標(biāo)準(zhǔn):清清晰表達(dá)設(shè)計(jì)計(jì)思路和技術(shù)術(shù)要點(diǎn) 在jbpmm中,我們可可以將一個(gè)復(fù)復(fù)雜的業(yè)務(wù)流流程文件根據(jù)據(jù)業(yè)務(wù)邏輯的的不同劃分為為父流程和子子流程,這樣樣一方面可以以令我們的流流程定義文件件不會(huì)設(shè)計(jì)得得太臃腫,二二來(lái)可以方便便我們

55、將來(lái)的的維護(hù),只對(duì)對(duì)需要修改的的流程進(jìn)行修修改,而不影影響其他流程程。 如何使用 闡述如何結(jié)合合項(xiàng)目需要應(yīng)應(yīng)用成果進(jìn)行行開(kāi)發(fā)。這部部分需要詳細(xì)細(xì)描述,讓其其他開(kāi)發(fā)人員員按照此成果果報(bào)告,能夠夠進(jìn)行一般簡(jiǎn)簡(jiǎn)單的開(kāi)發(fā),具具有較強(qiáng)的可可操作性。評(píng)評(píng)審標(biāo)準(zhǔn):開(kāi)開(kāi)發(fā)人員按此此使用說(shuō)明基基本能應(yīng)用成成果進(jìn)行開(kāi)發(fā)發(fā) 這里我們介紹紹下關(guān)于jbbpm子流程程的使用,這這里我們定義義兩個(gè)流程定定義xml文文件,一個(gè)是是父流程定義義文件,一個(gè)個(gè)是子流程定定義文件。這這里我想當(dāng)執(zhí)執(zhí)行完P(guān)ayyfirstt任務(wù)的時(shí)候候,jbpmm流程能自動(dòng)動(dòng)去我的子流流程文件中去去執(zhí)行那邊定定義的任務(wù)。這里是父流程pprocesssd

56、efiinitioon.xmll?xml vversioon=1.0 enncodinng=UTTF-8?processs-deffinitiion xmmlns=urn:jjbpm.oorg:jppdl-3.2 naame=mmyapp。task-nnode nname=PayFiirsttask nname=PayFiirstTaask sswimlaane=ffinancce/tasktransiition name=get housee conttract to=subprrocesssactionn namee=acttionclass=com.mmyapp.actioon.Mess

57、sageAActionnHandllermessaggeHas payy firsst bullk of moneyy. Priint coonstraact noow!/messaage/actioon/transsitionn/task-nodeprocesss-staate naame=ssubproocesssub-prrocesss namee=subbproceessdeffinitiion/transiition to=eend/trannsitioon/proceess-sttatetask-nnode nname=pass roundd for perussal signal

58、=lastt-waitt creeate-ttasks=falssetask nname=perussalassignnment actorr-id=#proocessSStarteer/assiggnmentt/taskevent type=nodee-enteeractionn namee=creeateInnstancce class=com.mmyapp.actioon.CreeateTaaskInsstanceeActioon/actioon/eventttransiition name=backkto tto=OnnePerssonAuddit/transsitionn/task-

59、node/proceess-deefinittion 可以看到,上上面我們使用用到了,在jjbpm中,pprocesss-staate標(biāo)簽代代表的是引用用子流程。這這里我們接著著定義子流程程文件。 子流程subbproceessdeffinitiion定義文文件?xml vversioon=1.0 enncodinng=UTTF-8?processs-deffinitiion xmmlns=urn:jjbpm.oorg:jppdl-3.2 name=ssubproocessddefiniitionswimlaane naame=sservicceassignnment actorr-id=se

60、rviice1 /swimllanestart-statee namee=subbStartttransiition to=PPrintCContraact/trannsitioon/startt-stattetask-nnode nname=PrinttContrracttask nname=PrinttContrractTaask sswimlaane=sservicce/tasktransiition name=PrinntConttract to=endactionn namee=acttionclass=com.mmyapp.actioon.MesssageAActionnHandl

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論