版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Jbpm5 持久化及流轉(zhuǎn)流程剖析Jbpm5 持久化結(jié)構(gòu)圖Jbpm5實(shí)例例流程圖下面的文檔講解解了基于該流流程的步驟流流程第一步啟動(dòng)任務(wù)務(wù)流程時(shí)序圖:?jiǎn)?dòng)TaskSServerr使用線程啟動(dòng)TTaskSeerver,初初始化持久化化OrgannizatiionEnttity,將將流程中需要要使用到的 grouppId,acctorIdd.全部初始始化到表中。啟動(dòng)流程1)根據(jù)路徑解解析*.bppmn2或*.bpmnn 文件,放放入到內(nèi)存中中。 在該類類注冊(cè)了相關(guān)關(guān)的對(duì)象orrg.jbppm.bpmmn2.xmml.BPMNSSemantticModdule .開啟事務(wù)Ksessioon開始執(zhí)行行任
2、務(wù)在org.drrools.persiistencce.SinglleSesssionCoommanddServiice 中 execuute執(zhí)行,流程實(shí)例為orrg.jbppm.rullefloww.insttance.RuleFFlowPrrocesssInstaance 的的對(duì)象進(jìn)入 mmand.runtiime.prrocesss.StarttProceessCommmand 中執(zhí)行 eexcutee執(zhí)行StarttNode執(zhí)行StarttNode,結(jié)點(diǎn)任務(wù)任務(wù)流轉(zhuǎn)核心方方法流程執(zhí)行HummanTasskNodee流程執(zhí)行到HuumanTaask任務(wù)結(jié)結(jié)點(diǎn),引擎會(huì)會(huì)執(zhí)行orgg.jbp
3、mm.workkflow.instaance.nnode.WorkIItemNoodeInsstancee 這個(gè)實(shí)例例類的intternallTriggger方法,并并持久化WoorkIteemInfoo初始化Handdler官方默認(rèn)提供了了WorkIItemHaandlerr的實(shí)現(xiàn),ccom.caarefx.workfflow.hhandleer.CommaandBassedWSHHumanTTaskHaandlerr。這個(gè)haandlerr 就類似人人工任務(wù)的范范本,如果業(yè)業(yè)務(wù)系統(tǒng)要做做其他事情,可可以適當(dāng)?shù)男扌薷倪@個(gè)類就就可以,例如如:與外部組組織機(jī)構(gòu)交互互等。初始化Clieent初始化
4、TaskkCliennt. 用于于Cliennt 與 服服務(wù)端Serrver 交交互建立Mina通通信連接 Jbpm5 默認(rèn)以 MMina 作作為通信持久久化通信橋梁梁注冊(cè)事件Commpletee注冊(cè)事件Faiil注冊(cè)事件Skiip初始化CommmandBaasedWSSHumannTaskHHandleer方法時(shí),由由客戶端發(fā)起起,向服務(wù)端端中注冊(cè)任務(wù)務(wù)事件(TaaskCommpleteedEvennt, TaskkFaileedEvennt, TaskkSkipppedEveent, TaskkClaimmedEveent等)??蛻舳?通過mmina發(fā)起起):服務(wù)端(通過mmina接收收)
5、:調(diào)用excutteWorkkItem 方法調(diào)用excutteWorkkItem 方法,目的的初始化任務(wù)務(wù)信息(任務(wù)務(wù)名稱、任務(wù)務(wù)優(yōu)先級(jí)、處處理任務(wù)人員員分配等),將將得到的任務(wù)務(wù)信息 一并并發(fā)送到服務(wù)務(wù)端進(jìn)行持久久化初始化Taskk任務(wù)信息調(diào)用Cliennt添加任務(wù)務(wù)信息AddTaskkRequeest由客戶端(TaaskCliient) 向服務(wù)端(TaskSServerr)轉(zhuǎn)發(fā)持久久化 Tassk 請(qǐng)求該方法最后一行行 通過發(fā)送送 AddTTaskReequestt 請(qǐng)求,發(fā)送到到服務(wù)端 ,由由服務(wù)端持久久化Taskk和 Conntent 信息持久化Taskk服務(wù)端(orgg.jbpmm.
6、taskk.servvice.TaskSServerrHandller)接收收到客戶端發(fā)發(fā)送來的消息息AddTaaskReqquest, 1)持久久化Taskk信息,插入入相關(guān)的表(PeopleAssignments_PotOwners,PeopleAssignments_ExclOwners,PeopleAssignments_Stakeholders,PeopleAssignments_Bas,PeopleAssignments_Recipients,Task, I18NTEXT)AddTaskkRespoonse通過AddTaaskRessponsee,由服務(wù)端(TaskSServerr
7、) 發(fā)起請(qǐng)請(qǐng)求通知客戶戶端(TasskClieent),通通知客戶端(org.jjbpm.ttask.sservicce.TaskCClienttHandller)添加加任務(wù)完畢,持久化PrrocesssInstaanceInnfo, WorkIItemInnfo 數(shù)據(jù)據(jù)此時(shí)路程已經(jīng)執(zhí)執(zhí)行到了HuumanTaask任務(wù)結(jié)結(jié)點(diǎn)上,同時(shí)時(shí)分配了任務(wù)務(wù)給具體的人人。進(jìn)行了持持久化操作。接接著等待人員員觸發(fā)該任務(wù)務(wù)返回任務(wù)結(jié)束返回ssessioonId,pprocessInstaanceIdd給用戶,外外部系統(tǒng)保持持以便獲取持持久化信息。關(guān)閉事務(wù)(提交交事務(wù))持久化proccessInnfo,woor
8、kIteem 等,并并對(duì) sesssionIInfo 解解鎖執(zhí)行流程的后續(xù)續(xù)操作執(zhí)行HumannTaskAAfterNNode攔截截器執(zhí)行StarttAfterrNode攔攔截器執(zhí)行HumannTaskAAfterNNode攔截截器Ksessioon.dissponsee()釋放ksesssion第二步人工任務(wù)務(wù)流程時(shí)序圖:啟動(dòng)TaskSServerrTaskSerrver 保保持啟動(dòng)狀態(tài)態(tài),或者重新新啟動(dòng)一個(gè)線線程亦可。調(diào)用人工任務(wù)執(zhí)執(zhí)行接口外部系統(tǒng)通過該該接口實(shí)現(xiàn)人人工任務(wù)的交交互解析bpmn22讀取原來流程的的bpmn22 文件并解解析到j(luò)bppm5 框架架中通過kessiionId 獲
9、取kseessionn通過第一步返回回的sesssionIdd.獲取到持持久化的seessionnInfo 信息,以及及 proccessInnstancce信息。同同時(shí)proccessInnstancce流程實(shí)體體采用數(shù)據(jù)鎖鎖,保證并發(fā)發(fā)安全性初始化Clieent建立Mina 通信連接初始化TaskkCliennt, 建立立起Minaa連接 注冊(cè)事件Commpletee注冊(cè)事件Faiil注冊(cè)事件Skiip同時(shí)由客戶端(TaskCClientt)發(fā)起,須須向服務(wù)端(TTaskSeerver)中中注冊(cè)任務(wù)事事件(TasskComppleteddEventt, TaskkFaileedEvennt
10、, TaskkSkipppedEveent, TaskkClaimmedEveent)。注注冊(cè)幾個(gè)事件件,就需要發(fā)發(fā)起幾個(gè)Miina 請(qǐng)求求客戶端(通過mmina發(fā)起起):服務(wù)端(通過mmina接收收):返回registeerWorkkItemHHandleer(容器注注冊(cè)人工任務(wù)務(wù)Handller)通過handller注冊(cè)后后,jbpmm5 會(huì)自動(dòng)動(dòng)實(shí)現(xiàn)與業(yè)務(wù)務(wù)系統(tǒng)的交互互發(fā)起查詢?nèi)斯と稳蝿?wù)請(qǐng)求轉(zhuǎn)發(fā)請(qǐng)求查詢?nèi)巳斯と蝿?wù)請(qǐng)求求到 TasskClieentQueryTaasksAsssigneedAsPootentiialOwnner客戶端(TasskClieent)向服服務(wù)端(TaaskSerr
11、ver)發(fā)發(fā)送請(qǐng)求。發(fā)發(fā)起QuerryTaskksAssiignedAAsPoteentiallOwnerr 查詢請(qǐng)求:查詢分配的的用戶任務(wù)列列表服務(wù)端(TaaskSerrver) 接收QueeryTassksAsssigneddAsPottentiaalOwneer 請(qǐng)求QueryTTaskSuummaryyRespoonse客戶端(TasskClieent)接收收返回QueeryTasskSummmaryReesponsse 請(qǐng)求自此,一個(gè)來回回后,客戶端端總算獲取到到了任務(wù)信息息,接下來再再往下走吧返回人工任務(wù)信信息人工任務(wù)返回 包含在 rresponnseHanndler 中 通過該該
12、接口的geetResuults 既既可獲取發(fā)起開始執(zhí)行任任務(wù)請(qǐng)求(SStart)查看是否需要分分配任務(wù),查查看是否有g(shù)groupIId,如果ggroupIId不為空則則可以讓該組組下的某個(gè)用用戶先領(lǐng)取任任務(wù)。(此處處不介紹分配配任務(wù)情況)開始執(zhí)行任務(wù)OperatiionReqquest客戶端(TasskClieent)發(fā)起起開始執(zhí)行任任務(wù)請(qǐng)求服務(wù)端(TasskServver)接收收開始執(zhí)行任任務(wù)請(qǐng)求OperatiionRessponsee客戶端(TasskClieent)接收收請(qǐng)求自此,proccessInnfo任務(wù)狀狀態(tài)保存為IInProccess.返回發(fā)起成功完成人人工任務(wù)請(qǐng)求求(Comp
13、plete)完成任務(wù),該流流程極為繁瑣瑣。OpertattionReequestt客戶端(TasskClieent)向服服務(wù)端(TaaskSerrver)發(fā)發(fā)送完成任務(wù)務(wù)請(qǐng)求OpeeratioonRequuestEventTrriggerrRespoonse由服務(wù)端(TaaskSerrver)向向服務(wù)端(TTaskCllient)發(fā)送EveentTriiggerRResponnse請(qǐng)求,目的需需要客戶端調(diào)調(diào)用任務(wù)信息息,促發(fā)geetConttentReequestt,讓Conntent做做持久化OperataaionReesponsse服務(wù)端(TasskServver)向服服務(wù)端(TaaskC
14、liient)發(fā)發(fā)送OperrationnRespoonse請(qǐng)求求。GetTaskkRequeest客戶端(TasskClieent)向服服務(wù)端(TaaskSerrver)發(fā)發(fā)送GetTTaskReequestt請(qǐng)求,查詢?cè)冇脩羧蝿?wù)信信息。GetTaskkRespoonse服務(wù)端(TasskServver)向服服務(wù)端(TaaskCliient)發(fā)發(fā)送GetTTaskReesponsse請(qǐng)求,返回任任務(wù)信息,并并執(zhí)行GettComplletedTTaskReesponsseHanddler 中的exxecutee方法GetConttentReequestt客戶端(TasskClieent)向服服
15、務(wù)端(TaaskSerrver)發(fā)發(fā)送GetCContenntRequuest請(qǐng)求求,查詢Coontentt信息GetConttentReesponsse服務(wù)端(TasskServver)向服服務(wù)端(TaaskCliient)發(fā)發(fā)送GetCContenntRespponse請(qǐng)請(qǐng)求,調(diào)用WorkIItem管理理器 commpleteeWorkIItem接口口Ksessioon開啟事務(wù)務(wù)Kessionn 執(zhí)行CoompletteWorkkItemCCommannd結(jié)點(diǎn)開始流轉(zhuǎn)調(diào)用HumannHandller(初始始化)初始化下個(gè)結(jié)結(jié)點(diǎn)的 woorkIteem 信息初始化clieent注冊(cè)Compl
16、leteEvvent注冊(cè)FailEEvent注冊(cè)SkipEEventexcuteWWorkIttem初始化下個(gè)結(jié)點(diǎn)點(diǎn)的Taskk在CommanndBaseedWSHuumanTaaskHanndler 中執(zhí)行初始始化下個(gè)結(jié)點(diǎn)點(diǎn)的Taskk發(fā)送創(chuàng)建任務(wù)持持久化請(qǐng)求AddTaskkRequeestAddTaskkRespoonse返回返回提交事務(wù)返回相關(guān)表操作步驟TaskCliientTaskSerrver操作類型涉及的表2.1AOrganizzationnalEnttity2.2.3ASessionnInfo2.3.2AProcesssInstaanceInnfo2.3.1AWorkIteemI
17、nfoo2.3.1AVariablleInsttanceLLog, ProccessInnstancceLog,NodeInsstanceeLog2.3.1AVariablleInsttanceLLog,NodeInsstanceeLog2.4.4ATask,I18NTexxt, PeopleAAssignnmentss_Bas,PeopleAAssignnmentss_PotOOwnerss,PEOPLEAASSIGNNMENTSS_EXCLLOWNERRS,PEOPLEAASSIGNNMENTSS_RECIIPIENTTS,PEOPLEAASSIGNNMENTSS_STAKKEHOLDDERS,Contentt,3.7UProcesssInstaanceInnfo3.9.10AWorkIteemInfoo(新增下個(gè)個(gè)結(jié)點(diǎn))3.9.11AVariablleInsttanceLLog, NodeInsstanceeLog3.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 斷橋門窗合同范本3篇
- 安居房施工合同款項(xiàng)支付條件3篇
- 搬運(yùn)工人勞務(wù)合同范本3篇
- 擋土墻施工合同技術(shù)支持3篇
- 收購(gòu)糧食合同3篇
- 攪拌站施工爭(zhēng)議解決協(xié)議3篇
- 排水管材購(gòu)買條款3篇
- 提前解除合同通知模板3篇
- 攝影合同協(xié)議書撰寫要點(diǎn)3篇
- 改擴(kuò)建工程施工合同的索賠案例3篇
- 河北省邯鄲市2023-2024學(xué)年高一上學(xué)期期末質(zhì)量檢測(cè)地理試題 附答案
- 環(huán)境、健康、安全施工管理體系及職責(zé)
- 2024年度物業(yè)管理公司員工獎(jiǎng)懲制度3篇
- 湖南省雅禮教育集團(tuán)2023-2024學(xué)年高二上學(xué)期期末英語試卷 含解析
- 2024年7月國(guó)家開放大學(xué)法學(xué)本科《知識(shí)產(chǎn)權(quán)法》期末考試試題及答案
- 醫(yī)學(xué)生職業(yè)規(guī)劃演講
- 北京市西城區(qū)2022-2023學(xué)年六年級(jí)上學(xué)期數(shù)學(xué)期末試卷(含答案)
- 團(tuán)隊(duì)建設(shè)與執(zhí)行力課件
- 2024秋期國(guó)家開放大學(xué)本科《經(jīng)濟(jì)學(xué)(本)》一平臺(tái)在線形考(形考任務(wù)1至6)試題及答案
- 2024智能變電站新一代集控站設(shè)備監(jiān)控系統(tǒng)技術(shù)規(guī)范部分
- 抵押貸款行業(yè)可行性分析報(bào)告
評(píng)論
0/150
提交評(píng)論