Activiti的后台是有数据库的支持,所有的表都以ACT_开头。 第二部分是表示表的用途的两个字母标识。 用途也和服务的API对应。
ACT_RE_*: 'RE'表示repository。 这个前缀的表包含了流程定义和流程静态资源 (图片,规则,等等)。
ACT_RU_*: 'RU'表示runtime。 这些运行时的表,包含流程实例,任务,变量,异步任务,等运行中的数据。 Activiti只在流程实例执行过程中保存这些数据, 在流程结束时就会删除这些记录。 这样运行时表可以一直很小速度很快。
ACT_ID_*: 'ID'表示identity。 这些表包含身份信息,比如用户,组等等。
ACT_HI_*: 'HI'表示history。 这些表包含历史数据,比如历史流程实例, 变量,任务等等。
ACT_GE_*: 通用数据, 用于不同场景下,如存放资源文件。
--运行时流程执行实例
select * from act_ru_execution;
ID_:EXECUTION主键,这个主键有可能和PROC_INST_ID_相同,相同的情况表示这条记录为主实例记录。
例如:d4e12a5f-32be-11e6-8fa9-a41f726277a8
REV_:表示数据库表更新次数。
PROC_INST_ID_:一个流程实例不管有多少条分支实例,这个ID都是一致的。
PARENT_ID_:这个记录表示父实例ID,如上图,同步节点会产生两条执行记录,这两条记录的父ID为主线的ID。IS_ACTIVE_ : 是否活动流程实例,比如上图,主流程为非活动实例,下面两个为活动实例,如果UserTask2完成,那么这个值将变为0即非活动。
IS_CONCURRENT_:是否并发。上图同步节点后为并发,如果是并发多实例也是为1。
IS_SCOPE_: 这个字段我跟踪了一下不同的流程实例,如会签,子流程,同步等情况,发现主实例的情况这个字段为1,子实例这个字段为0。
--运行时任务
select * from act_ru_task;
--运行时变量
select * from act_ru_variable;
--运行时作业
select * from act_ru_job;
--运行时事件
select * from act_ru_event_subscr;