Activiti5:act_ru_execution 流程执行实例分析

ACTIVITI ACT_RU_EXECUTION 表

 这个表是工作流程的核心表,流程的驱动都和合格表有密切的关系。

一般来讲一个流程实例都有一条主线。如果流程为直线流程,那么流程实例在这个表中只有一条记录对应。

 **ID_**:EXECUTION主键,这个主键有可能和PROC_INST_ID_相同,相同的情况表示这条记录为主实例记录。

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

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

比如以下流程:

 ![image](http://upload-images.jianshu.io/upload_images/9637717-e8b77292495de096.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
Activiti5:act_ru_execution 流程执行实例分析


这个对应的EXECUTION数据为:

![image](http://upload-images.jianshu.io/upload_images/9637717-22b64306b72e65c4.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
Activiti5:act_ru_execution 流程执行实例分析


 **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_**: 这个表示是否暂停。