jbpm5 持久化及流轉(zhuǎn)流程剖析_第1頁
jbpm5 持久化及流轉(zhuǎn)流程剖析_第2頁
jbpm5 持久化及流轉(zhuǎn)流程剖析_第3頁
jbpm5 持久化及流轉(zhuǎn)流程剖析_第4頁
jbpm5 持久化及流轉(zhuǎn)流程剖析_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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 耐久化構(gòu)造圖Jbpm5實(shí)例流程圖下面的文檔講解了基于該流程的步驟流程第一步啟動(dòng)義務(wù)流程時(shí)序圖:?jiǎn)?dòng)TaskServer運(yùn)用線程啟動(dòng)TaskServer,初始化耐久化OrganizationEntity,將流程中需求運(yùn)用到的 groupId,actorId.全部初始化到表中。啟動(dòng)流程1根據(jù)途徑解析*.bpmn2或*.bpmn 文件,放入到內(nèi)存中。 在該類注冊(cè)了相關(guān)的對(duì)象org.jbpm.bpmn2.xml.BPMNSemanticModule .開啟事務(wù)Ksession開場(chǎng)執(zhí)行義務(wù)在org.drools.persistence.SingleSe

2、ssionCommandService 中 execute執(zhí)行,流程實(shí)例為org.jbpm.ruleflow.instance.RuleFlowProcessInstance 的對(duì)象進(jìn)入 cess.StartProcessCommand 中執(zhí)行 excute執(zhí)行StartNode執(zhí)行StartNode,結(jié)點(diǎn)義務(wù)義務(wù)流轉(zhuǎn)中心方法流程執(zhí)行HumanTaskNode流程執(zhí)行到HumanTask義務(wù)結(jié)點(diǎn),引擎會(huì)執(zhí)行org.jbpm.workflow.instance.node.WorkItemNodeInstance 這個(gè)實(shí)例類的internalTr

3、igger方法,并耐久化WorkItemInfo初始化Handler官方默許提供了WorkItemHandler的實(shí)現(xiàn),com.carefx.workflow.handlermandBasedWSHumanTaskHandler。這個(gè)handler 就類似人工義務(wù)的范本,假設(shè)業(yè)務(wù)系統(tǒng)要做其他事情,可以適當(dāng)?shù)男拚@個(gè)類就可以,例如:與外部組織機(jī)構(gòu)交互等。初始化Client初始化TaskClient. 用于Client 與 效力端Server 交互建立Mina通訊銜接 Jbpm5 默許以 Mina 作為通訊耐久化通訊橋梁注冊(cè)事件Complete注冊(cè)事件Fail注冊(cè)事件Skip初始化CommandB

4、asedWSHumanTaskHandler方法時(shí),由客戶端發(fā)起,向效力端中注冊(cè)義務(wù)事件(TaskCompletedEvent, TaskFailedEvent, TaskSkippedEvent, TaskClaimedEvent等)??蛻舳?經(jīng)過mina發(fā)起):效力端(經(jīng)過mina接納):調(diào)用excuteWorkItem 方法調(diào)用excuteWorkItem 方法,目的初始化義務(wù)信息(義務(wù)稱號(hào)、義務(wù)優(yōu)先級(jí)、處置義務(wù)人員分配等),將得到的義務(wù)信息 一并發(fā)送到效力端進(jìn)展耐久化初始化Task義務(wù)信息調(diào)用Client添加義務(wù)信息AddTaskRequest由客戶端(TaskClient) 向效力端

5、(TaskServer)轉(zhuǎn)發(fā)耐久化 Task 懇求該方法最后一行 經(jīng)過發(fā)送 AddTaskRequest 懇求,發(fā)送到效力端 ,由效力端耐久化Task和 Content 信息耐久化Task效力端org.jbpm.task.service.TaskServerHandler接納到客戶端發(fā)送來的音訊AddTaskRequest, 1耐久化Task信息,插入相關(guān)的表PeopleAssignments_PotOwners,PeopleAssignments_ExclOwners,PeopleAssignments_Stakeholders,PeopleAssignments_Bas,PeopleAss

6、ignments_Recipients,Task, I18NTEXTAddTaskResponse經(jīng)過AddTaskResponse,由效力端(TaskServer) 發(fā)起懇求通知客戶端(TaskClient),通知客戶端(org.jbpm.task.service.TaskClientHandler)添加義務(wù)終了,耐久化ProcessInstanceInfo, WorkItemInfo 數(shù)據(jù)此時(shí)路程曾經(jīng)執(zhí)行到了HumanTask義務(wù)結(jié)點(diǎn)上,同時(shí)分配了義務(wù)給詳細(xì)的人。進(jìn)展了耐久化操作。接著等待人員觸發(fā)該義務(wù)前往義務(wù)終了前往sessionId,procesInstanceId給用戶,外部系統(tǒng)堅(jiān)持

7、以便獲取耐久化信息。封鎖事務(wù)(提交事務(wù))耐久化processInfo,workItem 等,并對(duì) sessionInfo 解鎖執(zhí)行流程的后續(xù)操作執(zhí)行HumanTaskAfterNode攔截器執(zhí)行StartAfterNode攔截器執(zhí)行HumanTaskAfterNode攔截器Ksession.disponse()釋放ksession第二步人工義務(wù)流程時(shí)序圖:啟動(dòng)TaskServerTaskServer 堅(jiān)持啟動(dòng)形狀,或者重新啟動(dòng)一個(gè)線程亦可。調(diào)用人工義務(wù)執(zhí)行接口外部系統(tǒng)經(jīng)過該接口實(shí)現(xiàn)人工義務(wù)的交互解析bpmn2讀取原來流程的bpmn2 文件并解析到j(luò)bpm5 框架中經(jīng)過kessionId 獲取k

8、session經(jīng)過第一步前往的sessionId.獲取到耐久化的sessionInfo 信息,以及 processInstance信息。同時(shí)processInstance流程實(shí)體采用數(shù)據(jù)鎖,保證并發(fā)平安性初始化Client建立Mina 通訊銜接初始化TaskClient, 建立起Mina銜接 注冊(cè)事件Complete注冊(cè)事件Fail注冊(cè)事件Skip同時(shí)由客戶端(TaskClient)發(fā)起,須向效力端TaskServer中注冊(cè)義務(wù)事件(TaskCompletedEvent, TaskFailedEvent, TaskSkippedEvent, TaskClaimedEvent)。注冊(cè)幾個(gè)事件,就

9、需求發(fā)起幾個(gè)Mina 懇求客戶端(經(jīng)過mina發(fā)起):效力端(經(jīng)過mina接納):前往registerWorkItemHandler容器注冊(cè)人工義務(wù)Handler經(jīng)過handler注冊(cè)后,jbpm5 會(huì)自動(dòng)實(shí)現(xiàn)與業(yè)務(wù)系統(tǒng)的交互發(fā)起查詢?nèi)斯ちx務(wù)懇求轉(zhuǎn)發(fā)懇求查詢?nèi)斯ちx務(wù)懇求到 TaskClientQueryTasksAssignedAsPotentialOwner客戶端(TaskClient)向效力端(TaskServer)發(fā)送懇求。發(fā)起QueryTasksAssignedAsPotentialOwner 查詢懇求:查詢分配的用戶義務(wù)列表效力端(TaskServer) 接納QueryTasksAs

10、signedAsPotentialOwner 懇求QueryTaskSummaryResponse客戶端(TaskClient)接納前往QueryTaskSummaryResponse 懇求自此,一個(gè)來回后,客戶端總算獲取到了義務(wù)信息,接下來再往下走吧前往人工義務(wù)信息人工義務(wù)前往 包含在 responseHandler 中 經(jīng)過該接口的getResults 既可獲取發(fā)起開場(chǎng)執(zhí)行義務(wù)懇求(Start)查看能否需求分配義務(wù),查看能否有g(shù)roupId,假設(shè)groupId不為空那么可以讓該組下的某個(gè)用戶先領(lǐng)取義務(wù)。此處不引見分配義務(wù)情況開場(chǎng)執(zhí)行義務(wù)OperationRequest客戶端(TaskCli

11、ent)發(fā)起開場(chǎng)執(zhí)行義務(wù)懇求效力端(TaskServer)接納開場(chǎng)執(zhí)行義務(wù)懇求OperationResponse客戶端(TaskClient)接納懇求自此,processInfo義務(wù)形狀保管為InProcess.前往發(fā)起勝利完成人工義務(wù)懇求(Complete)完成義務(wù),該流程極為繁瑣。OpertationRequest客戶端(TaskClient)向效力端(TaskServer)發(fā)送完成義務(wù)懇求OperationRequestEventTriggerResponse由效力端(TaskServer)向效力端(TaskClient)發(fā)送EventTriggerResponse懇求,目的需求客戶端調(diào)

12、用義務(wù)信息,促發(fā)getContentRequest,讓Content做耐久化OperataionResponse效力端(TaskServer)向效力端(TaskClient)發(fā)送OperationResponse懇求。GetTaskRequest客戶端(TaskClient)向效力端(TaskServer)發(fā)送GetTaskRequest懇求,查詢用戶義務(wù)信息。GetTaskResponse效力端(TaskServer)向效力端(TaskClient)發(fā)送GetTaskResponse懇求,前往義務(wù)信息,并執(zhí)行GetCompletedTaskResponseHandler 中的execute方

13、法GetContentRequest客戶端(TaskClient)向效力端(TaskServer)發(fā)送GetContentRequest懇求,查詢Content信息GetContentResponse效力端(TaskServer)向效力端(TaskClient)發(fā)送GetContentResponse懇求,調(diào)用WorkItem管理器 completeWorkItem接口Ksession開啟事務(wù)Kession 執(zhí)行CompleteWorkItemCommand結(jié)點(diǎn)開場(chǎng)流轉(zhuǎn)調(diào)用HumanHandler初始化初始化下個(gè)結(jié)點(diǎn)的 workItem 信息初始化client注冊(cè)CompleteEvent注冊(cè)

14、FailEvent注冊(cè)SkipEventexcuteWorkItem初始化下個(gè)結(jié)點(diǎn)的Task在CommandBasedWSHumanTaskHandler 中執(zhí)行初始化下個(gè)結(jié)點(diǎn)的Task發(fā)送創(chuàng)建義務(wù)耐久化懇求AddTaskRequestAddTaskResponse前往前往提交事務(wù)前往相關(guān)表操作步驟TaskClientTaskServer操作類型涉及的表2.1AOrganizationalEntity2.2.3ASessionInfo2.3.2AProcessInstanceInfo2.3.1AWorkItemInfo2.3.1AVariableInstanceLog, ProcessInst

15、anceLog,NodeInstanceLog2.3.1AVariableInstanceLog,NodeInstanceLog2.4.4ATask,I18NText, PeopleAssignments_Bas,PeopleAssignments_PotOwners,PEOPLEASSIGNMENTS_EXCLOWNERS,PEOPLEASSIGNMENTS_RECIPIENTS,PEOPLEASSIGNMENTS_STAKEHOLDERS,Content,3.7UProcessInstanceInfo3.9.10AWorkItemInfo新增下個(gè)結(jié)點(diǎn)3.9.11AVariableInstanceLog, NodeInstanceLog3.9.1

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論