Activiti工作流流程与表结构
所属分类:Csbase | 发布于 2022-11-15 09:05:03
工作这么多年,第一次接触工作流,发现这玩意儿真是强大,Activiti工作流组件和FineReport帆软报表设计软件都让我感到又打开了一扇新的大门,太强大了。
Activiti基本概念
工作流:就是将开发中由代码控制的业务流程状态抽取出来然后进行统一控制的机制。
流程设计:创建bpmn文件(实为xml文件):使用流程定义工具,按照BPMN规范,用流程符号将流程描述出来。
流程部署:将设计好的流程模型保存到Activiti数据库。
流程实例:每一个流程单就是一个流程实例。
流程任务:流程实例中的每一个任务节点。
Activiti表结构
1、act_re_* 资源库流程规则表(包含了流程定义和流程静态资源),re:repository
- act_re_deployment 流程部署表,用于存放流程定义的部署信息,部署一个流程就会增加一条记录。
- act_re_model 流程设计模型表
- act_re_procdef 流程定义数据表,用于存放流程定义的属性信息,和act_re_deployment是一对多的关系,act_re_procdef表可以有多条记录,每条记录对应act_re_deployment表中的一条记录。
2、act_ge_* 通用数据表,ge:general
- act_ge_bytearray 资源表文件,部署流程时,会将BPMN流程定义文件保存为一条记录,如果部署的流程还包括其他资源,也会增加相应的记录,例如png图片文件。
- act_ge_property 属性数据表,存储整个流程引擎级别的数据;初始化表结构时,会默认插入三条记录。
3、act_ru_* 运行时数据表,ru:runtime
这些运行时的表,包含流程”实例、任务、变量“等运行中的数据。Activiti只在流程实例执行过程中保存这些数据,在流程结束时就会删除这些记录。
- act_ru_execution 运行时流程执行实例表,即存放实例的。
- act_ru_identitylink 运行时流程人员表,主要存储任务节点的参与者信息。
- act_ru_task 运行时任务节点表。
- act_ru_variable 运行时流程变量数据表,存放在map中的。
4、act_hi_* 历史数据表,hi:history
- act_hi_actinst 历史节点表,存在所有用过的节点(startEvent,userTask,serviceTask,endEvent)。
- act_hi_attachment 历史附件表。
- act_hi_comment 历史意见表。
- act_hi_identitylink 历史流程人员表,存放任务节点的参与者信息。
- act_hi_detail 历史详情表,提供历史变量的查询。
- act_hi_procinst 历史流程实例表。
- act_hi_taskinst 历史任务实例表。
- act_hi_varinst 历史变量表。
Acitviti使用技巧
1、ru正在处理中的节点信息,hi已完成和正在处理中的(开发中发现hi其实是都保存的,所以主要会查询hi的表)。
2、历史节点表act_hi_actinst和历史任务实例表act_hi_taskinst两表的不同之处是,act_hi_actinst表做记录startEvent,userTask,serviceTask和endEvent四种数据,而taskinst只记录userTask的内容。
3、历史任务实例表act_hi_taskinst,END_TIME__:结束时间值为空,则表示该节点正在处理中;这个相当于审批时间。DELETE_REASON_:completed(该节点被同意了)、refused(该节点被拒绝了)、空值(该节点正在处理中)。