act_ru_execution和act_ru_task

1,039 阅读4分钟

引言

act_ru_task,act_ru_execution是camunda流程运行时俩张重要的表。
今天就俩表的使用和注意事项进行总结。

在线体验,请访问JeecgFlow

结构

act_ru_execution(流程运行时表)

字段名称字段类型可否为空描述
ID_varchar(64)NOT NULL主键
REV_int(11)NULL版本
ROOT_PROC_INST_ID_varchar(64)NULL流程实例根id
PROC_INST_ID_varchar(64)NULL流程实例id
BUSINESS_KEY_varchar(64)NULL业务key
PARENT_ID_varchar(64)NULL父id
PROC_DEF_ID_varchar(64)NULL流程定义id
SUPER_EXEC_varchar(64)NULL父流程实例对应的执行
SUPER_CASE_EXEC_varchar(64)NULL父案例对应的执行
CASE_INST_ID_varchar(64)NULL案例实例id
ACT_ID_varchar(64)NULL节点id
ACT_INST_ID_varchar(64)NULL节点实例id
IS_ACTIVE_tinyint(4)NULL是否激活
IS_SCOPE_tinyint(4)NULL是否多实例范围
IS_EVENT_SCOPE_tinyint(4)NULL是否事件多实例范围
SUSPENSION_STATE_int(11)NULL挂起状态
CACHED_ENT_STATE_int(11)NULL缓存状态
SEQUENCE_COUNTER_bigint(20)NULL序列计数器
TENANT_ID_varchar(64)NULL主键

ACT_RU_EXECUTION 表(很多初学者迷惑的一张表,以为是流程实例表,其实它叫执行实例表)
这个表和act_run_task表,一起控制了用户任务的产生与完成等。
这个表是工作流程的核心表,这个表会体现主干与分支流程实例的概念,所以才有了执行实例这个叫法。

一般讲一个流程实例都有一条主线。如果流程为直线流程,那么流程实例这个表中只一条记录对应。
但如果流程有会签多实例时,以及并行网关时,这时候它就有流程实例和执行实例,一对多的关系,所以一定要理解流实例和执行实例的区别,
不要把它执行实例误以为流程实例表,当在并行网关和会签多实例时,它是会产生多个执行实例,刚创建时各个执行实例的IS_ACTIVE_这个字段的值都是为1,即激活状态
当每完成一个执行实例时,它会把IS_ACTIVE设为0,非激活状态,当所有执行实例完成后,它才会转移到历史,把这个多实例自动删除。

另外当有子流程,子流程的实例是处于激活状态,而主干流程的实例处于非激活状态。

  • 各个字段的说明
ID_:EXECUTION主键,这个主键有可能和PROC_INST_ID_相同,相同的情况表示这条记录为主实例记录。

REV_:表示数据库表更新次数。

PROC_INST_ID_:一个流程实例不管有多少条分支实例,这个ID都是一致的。

BUSINESS_KEY_:这个为业务主键,主流程才会使用业务主键,另外这个业务主键字段在表中有[唯一约束]。

PARENT_ID_:这个记录表示父实例ID,如上图,同步节点会产生两条执行记录,这两条记录的父ID为主线的ID。

PROC_DEF_ID_: 流程定义ID

SUPER_EXEC : 这个如果存在表示这个实例记录为一个外部子流程记录,对应主流程的主键ID。

ACT_ID_:表示流程运行到的节点,如上图主实例运行到ANDGateway1 节点。

两个子实例运行到UserTask1,UserTask2节点。

**IS_ACTIVE_ : **是否活动流程实例,比如上图,主流程为非活动实例,下面两个为活动实例,如果UserTask2完成,那么这个值将变为0即非活动。

**IS_CONCURRENT_*是否并发。上图同步节点后为并发,如果是并发多实例也是为1。

IS_SCOPE_: 这个字段我跟踪了一下不同的流程实例,如会签,子流程,同步等情况,发现主实例的情况这个字段为1,子实例这个字段为0。

TENANT_ID_ : 这个字段表示租户ID。可以应对多租户的设计。

IS_EVENT_SCOPE: 没有使用到事件的情况下,一般都为0。

SUSPENSION_STATE_: 这个表示是否暂停。

act_ru_task(流程运行时任务表)

字段名称字段类型可否为空描述
ID_varchar(64)NOT NULL流程执行ID
REV_int(11)NULL版本
EXECUTION_ID_varchar(64)NULL流程执行ID
PROC_INST_ID_varchar(64)NULL流程实例ID
PROC_DEF_ID_varchar(64)NULL流程实例ID
CASE_EXECUTION_ID_varchar(64)NULL案例执行ID
CASE_INST_ID_varchar(64)NULL案例实例ID
CASE_DEF_ID_varchar(64)NULL流程定义ID
NAME_varchar(255)NULL名称
PARENT_TASK_ID_varchar(64)NULL父任务ID
DESCRIPTION_varchar(64)NULL描述
TASK_DEF_KEY_varchar(64)NULL任务key
OWNER_varchar(64)NULL委托人
ASSIGNEE_varchar(64)NULL办理人
DELEGATION_varchar(64)NULL委托状态
PRIORITY_int(11)NULL优先级
CREATE_TIME_datetimeNULL创建时间
LAST_UPDATED_datetimeNULL最近更新时间
DUE_DATE_datetimeNULL截止时间
FOLLOW_UP_DATE_varchar(64)NULL跟踪时间
SUSPENSION_STATE_int(11)NULL挂起状态
TENANT_ID_varchar(64)NULL租户id

参考链接

工作流-flowable 核心表ACT_RU_EXECUTION 详解