jbpm5 持久化及流转流程剖析.docx
《jbpm5 持久化及流转流程剖析.docx》由会员分享,可在线阅读,更多相关《jbpm5 持久化及流转流程剖析.docx(23页珍藏版)》请在三一办公上搜索。
1、Jbpm5 持久化及流转流程剖析1 Jbpm5 持久化结构图Jbpm5实例流程图下面的文档讲解了基于该流程的步骤流程2 第一步启动任务流程时序图:2.1 启动TaskServer使用线程启动TaskServer,初始化持久化OrganizationEntity,将流程中需要使用到的 groupId,actorId.全部初始化到表中。2.2 启动流程1)根据路径解析*.bpmn2或*.bpmn 文件,放入到内存中。 在该类注册了相关的对象org.jbpm.bpmn2.xml.BPMNSemanticModule .2.2.1 开启事务2.2.2 Ksession开始执行任务在org.drools
2、.persistence.SingleSessionCommandService 中 execute执行,流程实例为org.jbpm.ruleflow.instance.RuleFlowProcessInstance 的对象进入 mand.runtime.process.StartProcessCommand 中执行 excute2.2.3 执行StartNode执行StartNode,结点任务任务流转核心方法2.2.4 流程执行HumanTaskNode流程执行到HumanTask任务结点,引擎会执行org.jbpm.workflow.instance.node.WorkItemNodeIn
3、stance 这个实例类的internalTrigger方法,并持久化WorkItemInfo2.3 初始化Handler官方默认提供了WorkItemHandler的实现,com.carefx.workflow.handler.CommandBasedWSHumanTaskHandler。这个handler 就类似人工任务的范本,如果业务系统要做其他事情,可以适当的修改这个类就可以,例如:与外部组织机构交互等。2.3.1 初始化Client初始化TaskClient. 用于Client 与 服务端Server 交互2.3.2 建立Mina通信连接 Jbpm5 默认以 Mina 作为通信持久化
4、通信桥梁2.3.3 注册事件Complete2.3.4 注册事件Fail2.3.5 注册事件Skip初始化CommandBasedWSHumanTaskHandler方法时,由客户端发起,向服务端中注册任务事件(TaskCompletedEvent, TaskFailedEvent, TaskSkippedEvent, TaskClaimedEvent等)。客户端(通过mina发起):服务端(通过mina接收):2.4 调用excuteWorkItem 方法调用excuteWorkItem 方法,目的初始化任务信息(任务名称、任务优先级、处理任务人员分配等),将得到的任务信息 一并发送到服务端
5、进行持久化2.4.1 初始化Task任务信息2.4.2 调用Client添加任务信息2.4.3 AddTaskRequest由客户端(TaskClient) 向服务端(TaskServer)转发持久化 Task 请求该方法最后一行 通过发送 AddTaskRequest 请求,发送到服务端 ,由服务端持久化Task和 Content 信息2.4.4 持久化Task服务端(org.jbpm.task.service.TaskServerHandler)接收到客户端发送来的消息AddTaskRequest, 1)持久化Task信息,插入相关的表(PeopleAssignments_PotOwner
6、s,PeopleAssignments_ExclOwners,PeopleAssignments_Stakeholders,PeopleAssignments_Bas,PeopleAssignments_Recipients,Task, I18NTEXT)2.4.5 AddTaskResponse通过AddTaskResponse,由服务端(TaskServer) 发起请求通知客户端(TaskClient),通知客户端(org.jbpm.task.service.TaskClientHandler)添加任务完毕,持久化ProcessInstanceInfo, WorkItemInfo 数据此时
7、路程已经执行到了HumanTask任务结点上,同时分配了任务给具体的人。进行了持久化操作。接着等待人员触发该任务2.4.6 返回任务结束返回sessionId,procesInstanceId给用户,外部系统保持以便获取持久化信息。2.5 关闭事务(提交事务)持久化processInfo,workItem 等,并对 sessionInfo 解锁2.6 执行流程的后续操作2.6.1 执行HumanTaskAfterNode拦截器2.6.2 执行StartAfterNode拦截器2.6.3 执行HumanTaskAfterNode拦截器2.6.4 Ksession.disponse()释放kses
8、sion3 第二步人工任务流程时序图:3.1 启动TaskServerTaskServer 保持启动状态,或者重新启动一个线程亦可。3.2 调用人工任务执行接口外部系统通过该接口实现人工任务的交互3.3 解析bpmn2读取原来流程的bpmn2 文件并解析到jbpm5 框架中3.4 通过kessionId 获取ksession通过第一步返回的sessionId.获取到持久化的sessionInfo 信息,以及 processInstance信息。同时processInstance流程实体采用数据锁,保证并发安全性3.5 初始化Client3.5.1 建立Mina 通信连接初始化TaskClien
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- jbpm5 持久化及流转流程剖析 持久 流转 流程 剖析
链接地址:https://www.31ppt.com/p-1663012.html