欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

jbpm4.3工作流集成(2)业务表的设计与介绍

程序员文章站 2022-07-04 23:03:13
...

jbpm工作流引擎集成到业务中,想要实现业务动态配置工作流、工作流回退、工作流节点角色审批权限等功能,需要在业务表中设计关于工作流的数据表。业务表的设计比较草率,如有问题,还望指正。


1、工作流定义表(jbpm4_my_flow)

jbpm4.3工作流集成(2)业务表的设计与介绍

正常来说,工作流引擎api也可以获取工作流定义表,但是在业务中维护工作流时,不太方便,而且工作流定义表会和之后的其他业务工作流表关联,所以设计工作流定义表。流程名、流程id、流程key都是和工作流引擎中的数据对应。

页面上工作流设计器设计好工作流后,点击保存,先调用jbpm api将数据保存到工作流引擎,然后保存到jbpm4_my_flow表中。删除工作流时,采用逻辑删除,修改删除标志。编辑工作流时,和保存基本同理,修改jbpm 引擎数据表后,再修改业务表。

2、流程与功能对应表(jbpm4_my_function)

jbpm4.3工作流集成(2)业务表的设计与介绍

当客户设计好工作流后,需要将工作流挂在功能节点下,这样,该功能就可以按照关联好的自定义工作流进行流程审批。jbpm4_my_function 表作为功能与工作流关联表,当该功能的业务新建成功后,会用功能id找到工作流id,从而生成工作流实例,生成实例代码如下:

ProcessInstance pi = processEngine.getExecutionService()
				.startProcessInstanceByKey(definition_Key);

生成流程实例后,流程实例也会保存到业务表中,流程实例和业务主键关联,这样工作流引擎就和业务挂钩了。流程实例和业务主键

3、流程实例与业务对应表(jbpm4_my_process)

jbpm4.3工作流集成(2)业务表的设计与介绍

其中“下一步流程”和“当前流程状态”是多余字段,因为当前流程状态会保存到业务表中,下一步流程会在需要的时候由引擎API提供。jbpm4_my_process 表是使用频率最高的表。

4、审批历史表(jbpm4_my_histroy)

jbpm4.3工作流集成(2)业务表的设计与介绍

审批历史表不多解释,审批通过和退回都要往审批历史表中保存数据。jbpm 引擎库中有历史记录表,但是由于业务中增加了回退功能,以及审批人。审批意见等信息,引擎库历史记录不能满足需求,所以设计审批历史表。

5、操作记录表(jbpm4_my_operation)

jbpm4.3工作流集成(2)业务表的设计与介绍

第一眼看操作记录表和审批历史表基本一样,但是两张表的作用不同,历史表用于查看审批历史,而操作记录表用于回退操作,流程回退时,获取当前环节和上一环节,动态划线,跳转到上一环节后再讲线删除(具体操作后续再讲),跳转完成后,将操作表的最新记录删除,这样最新节点就是上一步的节点,实现同步回退。

6、任务节点表(jbpm4_my_task)

该表保存工作流设计器保存到后台的xml文件数据,可以查询每个工作流的节点对应可操作用户信息。主要用于权限控制。


以上为所有业务整合用到的数据表