版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、Jbpm5 持久化及流轉(zhuǎn)流程剖析Jbpm5 持久化結(jié)構(gòu)圖Jbpm5實(shí)例例流程圖下面的文檔講解解了基于該流流程的步驟流流程第一步啟動任務(wù)務(wù)流程時(shí)序圖:啟動TaskSServerr使用線程啟動TTaskSeerver,初初始化持久化化OrgannizatiionEnttity,將將流程中需要要使用到的 grouppId,acctorIdd.全部初始始化到表中。啟動流程1)根據(jù)路徑解解析*.bppmn2或*.bpmnn 文件,放放入到內(nèi)存中中。 在該類類注冊了相關(guān)關(guān)的對象orrg.jbppm.bpmmn2.xmml.BPMNSSemantticModdule .開啟事務(wù)Ksessioon開始執(zhí)行行任
2、務(wù)在org.drrools.persiistencce.SinglleSesssionCoommanddServiice 中 execuute執(zhí)行,流程實(shí)例為orrg.jbppm.rullefloww.insttance.RuleFFlowPrrocesssInstaance 的的對象進(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),引擎會會執(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 作作為通信持久久化通信橋梁梁注冊事件Commpletee注冊事件Faiil注冊事件Skiip初始化CommmandBaasedWSSHumannTaskHHandleer方法時(shí),由由客戶端發(fā)起起,向服務(wù)端端中注冊任務(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)先級、處處理任務(wù)人員員分配等),將將得到的任務(wù)務(wù)信息 一并并發(fā)送到服務(wù)務(wù)端進(jìn)行持久久化初始化Taskk任務(wù)信息調(diào)用Cliennt添加任務(wù)務(wù)信息AddTaskkRequeest由客戶端(TaaskCliient) 向服務(wù)端(TaskSServerr)轉(zhuǎn)發(fā)持久久化 Tassk 請求該方法最后一行行 通過發(fā)送送 AddTTaskReequestt 請求,發(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ā)起請請求通知客戶戶端(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 等,并并對 sesssionIInfo 解解鎖執(zhí)行流程的后續(xù)續(xù)操作執(zhí)行HumannTaskAAfterNNode攔截截器執(zhí)行StarttAfterrNode攔攔截器執(zhí)行HumannTaskAAfterNNode攔截截器Ksessioon.dissponsee()釋放ksesssion第二步人工任務(wù)務(wù)流程時(shí)序圖:啟動TaskSServerrTaskSerrver 保保持啟動狀態(tài)態(tài),或者重新新啟動一個(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連接 注冊事件Commpletee注冊事件Faiil注冊事件Skiip同時(shí)由客戶端(TaskCClientt)發(fā)起,須須向服務(wù)端(TTaskSeerver)中中注冊任務(wù)事事件(TasskComppleteddEventt, TaskkFaileedEvennt
10、, TaskkSkipppedEveent, TaskkClaimmedEveent)。注注冊幾個(gè)事件件,就需要發(fā)發(fā)起幾個(gè)Miina 請求求客戶端(通過mmina發(fā)起起):服務(wù)端(通過mmina接收收):返回registeerWorkkItemHHandleer(容器注注冊人工任務(wù)務(wù)Handller)通過handller注冊后后,jbpmm5 會自動動實(shí)現(xiàn)與業(yè)務(wù)務(wù)系統(tǒng)的交互互發(fā)起查詢?nèi)斯と稳蝿?wù)請求轉(zhuǎn)發(fā)請求查詢?nèi)巳斯と蝿?wù)請求求到 TasskClieentQueryTaasksAsssigneedAsPootentiialOwnner客戶端(TasskClieent)向服服務(wù)端(TaaskSerr
11、ver)發(fā)發(fā)送請求。發(fā)發(fā)起QuerryTaskksAssiignedAAsPoteentiallOwnerr 查詢請求:查詢分配的的用戶任務(wù)列列表服務(wù)端(TaaskSerrver) 接收QueeryTassksAsssigneddAsPottentiaalOwneer 請求QueryTTaskSuummaryyRespoonse客戶端(TasskClieent)接收收返回QueeryTasskSummmaryReesponsse 請求自此,一個(gè)來回回后,客戶端端總算獲取到到了任務(wù)信息息,接下來再再往下走吧返回人工任務(wù)信信息人工任務(wù)返回 包含在 rresponnseHanndler 中 通過該該
12、接口的geetResuults 既既可獲取發(fā)起開始執(zhí)行任任務(wù)請求(SStart)查看是否需要分分配任務(wù),查查看是否有g(shù)groupIId,如果ggroupIId不為空則則可以讓該組組下的某個(gè)用用戶先領(lǐng)取任任務(wù)。(此處處不介紹分配配任務(wù)情況)開始執(zhí)行任務(wù)OperatiionReqquest客戶端(TasskClieent)發(fā)起起開始執(zhí)行任任務(wù)請求服務(wù)端(TasskServver)接收收開始執(zhí)行任任務(wù)請求OperatiionRessponsee客戶端(TasskClieent)接收收請求自此,proccessInnfo任務(wù)狀狀態(tài)保存為IInProccess.返回發(fā)起成功完成人人工任務(wù)請求求(Comp
13、plete)完成任務(wù),該流流程極為繁瑣瑣。OpertattionReequestt客戶端(TasskClieent)向服服務(wù)端(TaaskSerrver)發(fā)發(fā)送完成任務(wù)務(wù)請求OpeeratioonRequuestEventTrriggerrRespoonse由服務(wù)端(TaaskSerrver)向向服務(wù)端(TTaskCllient)發(fā)送EveentTriiggerRResponnse請求,目的需需要客戶端調(diào)調(diào)用任務(wù)信息息,促發(fā)geetConttentReequestt,讓Conntent做做持久化OperataaionReesponsse服務(wù)端(TasskServver)向服服務(wù)端(TaaskC
14、liient)發(fā)發(fā)送OperrationnRespoonse請求求。GetTaskkRequeest客戶端(TasskClieent)向服服務(wù)端(TaaskSerrver)發(fā)發(fā)送GetTTaskReequestt請求,查詢詢用戶任務(wù)信信息。GetTaskkRespoonse服務(wù)端(TasskServver)向服服務(wù)端(TaaskCliient)發(fā)發(fā)送GetTTaskReesponsse請求,返回任任務(wù)信息,并并執(zhí)行GettComplletedTTaskReesponsseHanddler 中的exxecutee方法GetConttentReequestt客戶端(TasskClieent)向服服
15、務(wù)端(TaaskSerrver)發(fā)發(fā)送GetCContenntRequuest請求求,查詢Coontentt信息GetConttentReesponsse服務(wù)端(TasskServver)向服服務(wù)端(TaaskCliient)發(fā)發(fā)送GetCContenntRespponse請請求,調(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注冊Compl
16、leteEvvent注冊FailEEvent注冊SkipEEventexcuteWWorkIttem初始化下個(gè)結(jié)點(diǎn)點(diǎn)的Taskk在CommanndBaseedWSHuumanTaaskHanndler 中執(zhí)行初始始化下個(gè)結(jié)點(diǎn)點(diǎn)的Taskk發(fā)送創(chuàng)建任務(wù)持持久化請求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等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 貴州城市職業(yè)學(xué)院《醫(yī)用治療儀器》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025安徽省安全員-C證考試(專職安全員)題庫及答案
- 2025江蘇省建筑安全員B證考試題庫及答案
- 貴陽人文科技學(xué)院《中國古代文學(xué)一》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025遼寧省建筑安全員《B證》考試題庫
- 2025湖南省安全員知識題庫及答案
- 2025四川建筑安全員B證考試題庫
- 2025重慶市建筑安全員C證(專職安全員)考試題庫
- 2025甘肅省建筑安全員知識題庫
- 2025年海南建筑安全員C證(專職安全員)考試題庫
- 2024智能變電站新一代集控站設(shè)備監(jiān)控系統(tǒng)技術(shù)規(guī)范部分
- 語文七年級下字帖打印版
- 醫(yī)院員工離職移交表
- 采購部經(jīng)理年度工作總結(jié)精編ppt
- 江蘇省幼兒園教育技術(shù)裝備標(biāo)準(zhǔn)
- 中國醫(yī)院質(zhì)量安全管理 第3-5部分:醫(yī)療保障 消毒供應(yīng) T∕CHAS 10-3-5-2019
- 湖北省3000萬元以下建設(shè)項(xiàng)目前期工作咨詢收費(fèi)標(biāo)準(zhǔn)
- 2018中國美業(yè)發(fā)展經(jīng)濟(jì)共享峰會方案-41P
- 電子病歷質(zhì)控操作手冊1.9.1版(共26頁)
- 利潤表空白表下載
- 人教版八年級下冊英語單詞表(按單元排序)全冊(附音標(biāo)和解釋)
評論
0/150
提交評論