jbpm4.3工作流集成(2)业务表的设计与介绍
jbpm工作流引擎集成到业务中,想要实现业务动态配置工作流、工作流回退、工作流节点角色审批权限等功能,需要在业务表中设计关于工作流的数据表。业务表的设计比较草率,如有问题,还望指正。
1、工作流定义表(jbpm4_my_flow)
正常来说,工作流引擎api也可以获取工作流定义表,但是在业务中维护工作流时,不太方便,而且工作流定义表会和之后的其他业务工作流表关联,所以设计工作流定义表。流程名、流程id、流程key都是和工作流引擎中的数据对应。
页面上工作流设计器设计好工作流后,点击保存,先调用jbpm api将数据保存到工作流引擎,然后保存到jbpm4_my_flow表中。删除工作流时,采用逻辑删除,修改删除标志。编辑工作流时,和保存基本同理,修改jbpm 引擎数据表后,再修改业务表。
2、流程与功能对应表(jbpm4_my_function)
当客户设计好工作流后,需要将工作流挂在功能节点下,这样,该功能就可以按照关联好的自定义工作流进行流程审批。jbpm4_my_function 表作为功能与工作流关联表,当该功能的业务新建成功后,会用功能id找到工作流id,从而生成工作流实例,生成实例代码如下:
ProcessInstance pi = processEngine.getExecutionService()
.startProcessInstanceByKey(definition_Key);
生成流程实例后,流程实例也会保存到业务表中,流程实例和业务主键关联,这样工作流引擎就和业务挂钩了。流程实例和业务主键
3、流程实例与业务对应表(jbpm4_my_process)
其中“下一步流程”和“当前流程状态”是多余字段,因为当前流程状态会保存到业务表中,下一步流程会在需要的时候由引擎API提供。jbpm4_my_process 表是使用频率最高的表。
4、审批历史表(jbpm4_my_histroy)
审批历史表不多解释,审批通过和退回都要往审批历史表中保存数据。jbpm 引擎库中有历史记录表,但是由于业务中增加了回退功能,以及审批人。审批意见等信息,引擎库历史记录不能满足需求,所以设计审批历史表。
5、操作记录表(jbpm4_my_operation)
第一眼看操作记录表和审批历史表基本一样,但是两张表的作用不同,历史表用于查看审批历史,而操作记录表用于回退操作,流程回退时,获取当前环节和上一环节,动态划线,跳转到上一环节后再讲线删除(具体操作后续再讲),跳转完成后,将操作表的最新记录删除,这样最新节点就是上一步的节点,实现同步回退。
6、任务节点表(jbpm4_my_task)
该表保存工作流设计器保存到后台的xml文件数据,可以查询每个工作流的节点对应可操作用户信息。主要用于权限控制。
以上为所有业务整合用到的数据表