Activiti数据表及流转

一、概念

Activiti工作原理的本质就是提高一系列的API,对25张数据库表进行操作,流程数据就在这些表里面流转,所以弄清楚这些表的作用,
和流程在每个阶段在这些表的流转情况很重要。
所有的表都以ACT_开头,第二部分是表示表的用途的两个字母标识,用途也和服务的API对应。

1、ACT_RE_*: 'RE'表示repository,用于存储流程定义信息(根据bpmn文件生成的流程定义信息,根据zip流程部署包生成的部署信息,
  流程设计的模型数据等)。

2、ACT_RU_*: 'RU'表示runtime,用于存储运行期间的数据(流程实例,任务,变量,异步任务等),运行结束就会删除。
  比如一个任务节点的数据,在上个任务审批完成之后会在RU表里面生成(上个任务结束,就代表当前任务已经开始),
  在当前任务审批完成之后,RU表的对应数据被删除,并且生成下个任务的数据(任务开始时间有,结束时间无)。

3、ACT_HI_*: 'HI'表示history,用于存储历史信息数据(历史流程实例, 变量,任务等),流程流转过程中的历史数据会被存储到HI表中永久保存。

4、ACT_GE_*: 通用数据,存储一些通用数据,比如整个bpmn文件的属性数据,通过二进制存储的静态资源(bpmn文件和bpmn图片)。

二、Activiti表的说明

(1)、RE资源库流程规则表

	 1、 act_re_deployment 部署信息表:
	 		
	 		根据zip部署包生成,一个zip部署包里面可能有多个bpmn文件,一个bpmn文件对应一个流程定义信息,
	 		但是只要是同一次部署的,部署信息表都只会有一条数据,所以和ACT_RE_PROCDEF流程定义信息表是一对多的关系。
	 		记录了部署包的名称,部署时间等信息。

	 2、ACT_RE_PROCDEF 流程定义信息表:
	 
			根据部署包里面的bpmn文件生成数据,,一个bpmn文件对应一个流程定义信息,
			记录了流程的编号/名称/bpmn文件和图片文件的名称/部署信息表ID/是否挂起等信息。
	
	 3、ACT_RE_MODEL 流程设计模型表:
			
			根据bpmn文件的定义模型生成数据,记录了部署id,模型名称id,模型详情(通过json字符串描述)


(2)、通用数据表
			
	1、ACT_GE_BYTEARRAY 通用的流程定义和流程资源表
		
			存储bpmn文件和对应的png文件,Serializable(序列化)的变量,以二进制的形式进行存储。
		
	2、ACT_GE_PROPERTY 系统相关属性表
		
			记录流程引擎级别的数据,以KV值的形式存储
			

(3)、运行时数据库表

	1、ACT_RU_EXECUTION 运行时流程执行实例

		运行时产生,记录当前运行的节点信息,一个流程实例之后有一条数据在这个表里面,当前节点走完之后会立刻删除数据,用于查看代办任务。
		记录了流程实例id、流程定义id、任务名称和id,业务key、激活暂停状态等信息。

	2、ACT_RU_TASK 运行时任务数据表
		
		运行时临时产生,记录了当前运行到的任务节点信息,记录了流程实例id、流程定义id、任务名称和id,代办人、候选人等信息。

	3、ACT_RU_IDENTITYLINK 运行时参与人信息
	
		记录了当前运行节点的参与人信息,流程定义id,流程实例id,任务id和用户id等信息。

	4、ACT_RU_VARIABLE 运行时流程变量数据表
		
		记录当前运行的节点所属的变量信息,存储了流程定义id,流程实例id,执行实例id,任务id,变量名称和值等信息。

(4)、历史数据库表

	 1、ACT_HI_ACTINST 历史节点表
	
		流程流转过的节点信息,都会被记录在这张历史表中,和taskinst表不同的是,taskinst表之后记录任务节点的信息。
		如果一个流程节点有分支,这里会记录多条历史信息,以执行实例id:EXECUTION_ID 为区分。
		这张表的记录,是按不同的节点为一行数据。

	2、ACT_HI_PROCINST 历史流程实例信息
		
		在流程开启的时候就就会插入一条信息,在流程节点之后,这条信息会完善好,记录了流程的开始和结束节点的执行时间和类型
		
	3、ACT_HI_TASKINST 历史任务流程实例信息 
		
		记录流转过的所有任务节点信息,记录了每个任务节点的负责人,执行人,执行时间等信息。

	4、ACT_HI_DETAIL 历史详细信息

		记录流程中产生的变量详细信息,包括控制流程流转的变量,业务表单中填写的流程需要用到的变量

(5)、组织机构表
  
		1 act_id_group用户组信息表
		
		2 act_id_info用户扩展信息表
		
		3 act_id_membership用户与用户组对应信息表
		
		4 act_id_user用户信息表
		
	关于用户认证方面建议还是自己开发一套,可以用自己的业务权限表去进行角色分组,然后往Activiti的变量(候选人、负责人)传对应的列表即可。

三、Activiti流程表数据转化

1、流程部署:

 (1)、ACT_GE_BYTEARRAY二进制信息表会根据部署zip插入信息,记录zip里面的bpmn文件和png文件,zip包里面有多个bpmn文件,
      只要是一次性一起部署的,部署表的id就都是相同的。
		
 (2)、ACT_RE_DEPLOYMENT流程部署表,根据zip表的信息,生成的一条描述部署信息的数据,和部署这个操作是一一对应的,zip包里面有多个bpmn文件,
     只要是一次性一起部署的,就之后生成一条数据。
		
 (3)、ACT_RE_PROCDEF 流程定义表,和bpmn文件是一一对应的,一条流程定义信息对应一个bpmn文件,
     和ACT_RE_DEPLOYMENT流程部署表是多对一的关系。

在这里插入图片描述

2、启动流程实例:

(1)、ACT_RU_EXECUTION 运行时流程执行实例表,插入运行的当前节点(第一个任务节点),

(2)、ACT_RU_IDENTITYLINK 运行时用户关系信息表,插入当前节点负责人信息,在运行完当前节点之后会删除,然后插入新的数据。

(3)、ACT_RU_TASK 运行时任务表,插入当前要执行的任务节点信息.

(4)、ACT_HI_PROCINST 历史流程实例表,插入一条对应此流程实例的历史信息,记录开始节点和时间,结束节点和时间为空。

(5)、ACT_HI_ACTINST 历史节点表,插入一条对应此流程此节点的历史信息(此时这个流程会有两条数据,一条是记录的开始节点数据,
	 一条是记录的当前要运行的也就是第一个任务节点的数据)
	
(6)、ACT_HI_TASKINST 历史任务流程实例信息 表,和ACT_HI_ACTINST 表的区别在于,只会记录任务节点的历史信息,所以这里只会有一条信息,
     记录的当前要运行的也就是第一个任务节点的数据。

(7)、ACT_HI_IDENTITYLINK和ACT_RU_IDENTITYLINK,记录当前要执行的任务节点的负责人信息,ACT_RU_IDENTITYLINK的数据,
	 而ACT_HI_IDENTITYLINK记录会保持下来。

在这里插入图片描述

3、第一个(或者中间任务节点)任务节点完成:

(1)、ACT_RU_EXECUTION运行时流程执行实例表 、ACT_RU_IDENTITYLINK运行时用户关系信息表、ACT_RU_TASK 运行时任务表
	更新为新的任务节点数据对应的数据。

(2)、ACT_HI_PROCINST 历史流程实例表不变,等到流程结束都是时候,结束节点id和结束时间才会更新

(3)、所有RE表不变,RE表只在部署的时候有变化。

(4)、除了ACT_HI_PROCINST 历史流程实例表之外,其它所有HI表,继续插入对应的历史数据。

在这里插入图片描述
4、流程结束:

(1)、ACT_HI_PROCINST 历史流程实例表,结束节点id和结束时间更新完成。

(2)、ACT_RU_EXECUTION运行时流程执行实例表 、ACT_RU_IDENTITYLINK运行时用户关系信息表、ACT_RU_TASK 运行时任务表数据清空。

(3)、其它的HI表此时记录了完整的流程历史数据。

在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值