(一)大体分类


参考:
https://www.devdoc.cn/activiti-table-summary.html

流程实例通过Activiti引擎进行流程的过程数据都会持久化到数据库中,这里支持多种常见的关系型数据库,比如MySQL Oracle 等等

数据表分类 描述
ACTRE* ‘RE’表示 repository。 这个前缀的表包含了流程定义和流程静态资源 (图片,规则,等等)。
ACTRU* ‘RU’表示 runtime。 这些运行时的表,包含流程实例,任务,变量,异步任务,等运行中的数据。 Activiti只在流程实例执行过程中保存这些数据, 在流程结束时就会删除这些记录。 这样运行时表可以一直很小速度很快。
ACTHI* ‘HI’表示 history。 这些表包含历史数据(在 ACTRU*的一堆数据最终跑完结束之后都会把流程信息记录下来),比如历史流程实例, 变量,任务等等。
ACTGE* GE表示 general。通用数据, 用于不同场景下。
ACTID* ID表示identity,这个身份信息表
act_evt_log 记录日志的
act_procdef_info 这个表是流程定义信息的具体内容的表.

 act_evt_log日志记录表



act_evt_log 这个表是日志记录的表.



 ACTGE*


ACTGE* : “GE”代表“General”(通用),用在各种情况下;


(一)act_ge_bytearray通用的流程定义和流程资源


二进制数据表,存储通用的流程定义和流程资源

用来保存部署文件的大文本数据。
保存流程定义图片和xml、Serializable(序列化)的变量,即保存所有二进制数据,特别注意类路径部署时候,不要把svn等隐藏文件或者其他与流程无关的文件也一起部署到该表中,会造成一些错误(可能导致流程定义无法删除)。

字段名 字段描述 数据类型
ID_ 主键ID,资源文件编号,自增长 VARCHAR(64)
REV_ 版本号 INT(11)
NAME_ 部署的文件名称, VARCHAR(255)
DEPLOYMENTID 来自于父表ACT_RE_DEPLOYMENT的主键 VARCHAR(64)
BYTES_ 大文本类型,存储文本字节流 LONGBLOB
GENERATED_ 是否是引擎生成。
0为用户生成
1为Activiti生成(有待确认是否真实)
TINYINT(4)

(二)act_ge_property系统相关属性


属性数据表。存储这个流程引擎级别的数据。

字段名 字段描述 数据类型
NAME_ 属性名称 VARCHAR(64)
VALUE_ 属性值 VARCHAR(300)
REV_INT 版本号 INT(11)



 ACTHI*


ACTHI* : “HI”代表“History”(历史),这些表中保存的都是历史数据,比如执行过的流程实例、变量、任务,等等。Activit默认提供了4种历史级别:
Ø none: 不保存任何历史记录,可以提高系统性能;
Ø activity:保存所有的流程实例、任务、活动信息;
Ø audit:也是Activiti的默认级别,保存所有的流程实例、任务、活动、表单属性;
Ø full:最完整的历史记录,除了包含audit级别的信息之外还能保存详细,例如:流程变量。
对于几种级别根据对功能的要求选择,如果需要日后跟踪详细可以开启full。



(一)act_hi_actinst历史的流程实例


历史活动信息。这里记录流程流转过的所有节点,与HITASKINST不同的是,taskinst只记录usertask内容,如果有一行数据的end_time字段没有值,说明这行记录对应的流程还没有结束.

1. 每次进行流程节点审批的时候,会往这个表里面插入一条数据,此时END_TIME
字段为null
2. 进行节点流程审批会修改当前相同流程实例id的上一个节点的那行的修改时间等等字段

字段名 字段描述 数据类型
ID_ 主键 VARCHAR(64)
PROCDEF_ID 流程定义ID VARCHAR(64)
PROCINST_ID 流程实例ID VARCHAR(64)
EXECUTIONID 流程执行ID VARCHAR(64)
ACTID 活动ID(节点定义ID) VARCHAR(255)
TASKID 任务ID(任务实例ID 其他节点类型实例ID在这里为空) VARCHAR(64)
CALLPROC_INST_ID 请求流程实例ID(调用外部流程的流程实例ID’) VARCHAR(64)
ACTNAME 活动名称(节点定义名称) VARCHAR(255)
ACTTYPE 活动类型如startEvent、userTask VARCHAR(255)
ASSIGNEE_ 代理人员(节点签收人) VARCHAR(64)
STARTTIME 开始时间
2013-09-15 11:30:00
DATETIME
ENDTIME 结束时间
格式是:2013-09-15 11:30:00
如果这个字段没有值,说明这行记录对应的流程还没有结束
DATETIME
DURATION_ 时长,耗时(毫秒值) BIGINT(20)
TENANTID
默认是”” (空字符串儿) varchar(255)



(二)act_hi_attachment历史的流程附件

字段名 字段描述 数据类型 备注
ID_ 主键 VARCHAR(64) 主键ID
REV_ REV_ INT(11) Version
USERID 用户id VARCHAR(255) 用户ID
NAME_ 名称 VARCHAR(255) 附件名称
DESCRIPTION_ 描述 VARCHAR(4000) 描述
TYPE_ 类型 VARCHAR(255) 附件类型
TASKID 任务Id VARCHAR(64) 节点实例ID
PROCINST_ID 流程实例ID VARCHAR(64) 流程实例ID
URL_ 连接 VARCHAR(4000) 附件地址
CONTENTID 内容Id
字节表的ID
VARCHAR(64) ACT_GE_BYTEARRAY的ID
TIME_
datetime(3)





(三)act_hi_comment历史的说明性信息


历史审批意见表

字段名 字段描述 数据类型 备注
ID_ 主键 VARCHAR(64) 主键ID
TYPE_ 意见记录类型,为comment时,为处理意见 VARCHAR(255) 类型:event(事件)
comment(意见)
TIME_ 记录时间 DATETIME 填写时间
USERID 用户Id VARCHAR(255) 填写人
TASKID 任务Id VARCHAR(64) 节点实例ID
PROCINST_ID 流程实例Id VARCHAR(64) 流程实例ID
ACTION_ 行为类型。
为addcomment时,为处理意见
VARCHAR(255) 值为下列内容中的一种:    AddUserLink、DeleteUserLink、AddGroupLink、DeleteGroupLink、AddComment、AddAttachment、DeleteAttachment
MESSAGE_ 处理意见 VARCHAR(4000) 用于存放流程产生的信息,比如审批意见
FULLMSG 全部消息 LONGBLOB





(四)act_hi_detail历史的流程运行中的细节信息


历史详情表:流程中产生的变量详细,包括控制流程流转的变量,业务表单中填写的流程需要用到的变量等。

字段名 字段描述 数据类型 备注
ID_ 主键 VARCHAR(64) 主键ID
TYPE_ 数据类型 VARCHAR(255) 类型:
FormProperty, //表单
VariableUpdate //参数
PROCINST_ID 流程实例ID VARCHAR(64) 流程实例ID
EXECUTIONID 执行实例Id VARCHAR(64) 执行实例ID
TASKID 任务Id VARCHAR(64) 任务实例ID
ACTINST_ID 活动实例Id VARCHAR(64) ACT_HI_ACTINST表的ID
NAME_ 名称 VARCHAR(255) 名称
VARTYPE 变量类型 VARCHAR(255) 参见VARTYPE类型说明
REV_ REV_ INT(11) Version
TIME_ 创建时间 DATETIME 创建时间
BYTEARRAYID 字节数组Id VARCHAR(64) ACT_GE_BYTEARRAY表的ID
DOUBLE_ DOUBLE_ DOUBLE 存储变量类型为Double
LONG_ LONG_ BIGINT(20) 存储变量类型为long
TEXT_ VARCHAR(4000) 存储变量值类型为String
TEXT2_ 值2 VARCHAR(4000) 此处存储的是JPA持久化对象时,才会有值。此值为对象ID


备注:VARTYPE类型说明: jpa-entity、boolean、bytes、serializable(可序列化)、自定义type(根据你自身配置)、 CustomVariableType、date、double、integer、long、null、short、string


(五)act_hi_identitylink 历史流程人员表


任务参与者数据表。主要存储历史节点参与者的信息

进行流程节点审批的时候,这个表里面会插入一条数据.

字段名 字段描述 数据类型 备注
ID_ 主键 VARCHAR(64) 主键ID
GROUPID 用户组ID VARCHAR(255) 组ID
TYPE_ 用户组类型 VARCHAR(255) 类型,主要分为以下几种:
assignee、
candidate、
owner、starter 、participant
USERID 用户ID VARCHAR(255) 用户ID
TASKID 任务Id VARCHAR(64) 节点实例ID
PROCINST_ID 流程实例Id VARCHAR(64) 流程实例ID





(六)act_hi_procinst历史的流程实例信息(核心表)




历史的流程实例,可以通过流程实例id从这个表里面找数据

在新启动一条流程实例的时候,这个表里面会插入一条数据,但是如果这个流程实例没有结束的话,ENDTIME这个字段为null,如果这个流程实例已经结束了,ENDTIME就会有结束时间

最后一次流程节点审批会修改这个表的数据,修改时间啥的

字段名 字段描述 数据类型
ID_ 主键 VARCHAR(64)
PROCINST_ID 流程实例ID VARCHAR(64)
BUSINESSKEY 业务主键,业务表单的ID VARCHAR(255)
PROCDEF_ID 流程定义Id VARCHAR(64)
STARTTIME 开始时间 DATETIME
ENDTIME 结束时间(如果这个字段为null,说明这条记录对应的流程实例还没有结束,还在正常执行中) DATETIME
DURATION_ 耗时 BIGINT(20)
STARTUSER_ID 发起人员Id VARCHAR(255)
STARTACT_ID 起草环节ID VARCHAR(255)
ENDACT_ID 结束环节ID VARCHAR(255)
SUPERPROCESS_INSTANCE_ID 父流程实例ID VARCHAR(64)
DELETEREASON 删除理由 VARCHAR(4000)
TENANTID 默认是空字符串 varchar(255)
NAME_ varchar(255)



(七)act_hi_taskinst 历史的任务实例信息(核心表)


启动一个新的流程实例的时候,这个表会多出一条数据出来,可以根据STARTTIME字段来查看哪条数据是最新添加的,此时ENDTIME为null

每次进行流程节点审批的时候这个表也会插入一条数据,同时修改相同流程实例id的上一个流程节点那条数据.


任务实例

字段名 字段描述 数据类型
ID_ 主键ID VARCHAR(64)
PROCDEF_ID 流程定义Id VARCHAR(64)
TASKDEF_KEY 任务定义Key VARCHAR(255)
PROCINST_ID 流程实例ID VARCHAR(64)
EXECUTIONID 执行实例ID VARCHAR(64)
NAME_ 名称 VARCHAR(255)
PARENTTASK_ID 父节点实例ID VARCHAR(64)
DESCRIPTION_ 描述 VARCHAR(4000)
OWNER_ 签收人(默认为空,只有在委托时才有值) VARCHAR(255)
ASSIGNEE_ 签收人或被委托 VARCHAR(255)
STARTTIME 开始时间 DATETIME
CLAIMTIME 提醒时间 DATETIME
ENDTIME 结束时间 DATETIME
DURATION_ 耗时 BIGINT(20)
DELETEREASON 删除原因(completed,deleted) VARCHAR(4000)
PRIORITY_ 优先级 INT(11)
DUEDATE 应完成时间 DATETIME
FORMKEY desinger节点定义的
form_key属性
VARCHAR(255)
CATEGORY_
varchar(255)
TENANTID
默认是空字符串 varchar(255)



(八)act_hi_varinst历史的流程运行中的变量信息


启动的一个新的流程实例之后这个表会多 数据,

字段名 字段描述 数据类型
ID_ 主键 VARCHAR(64)
PROCINST_ID 流程实例ID VARCHAR(64)
EXECUTIONID 执行实例ID VARCHAR(64)
TASKID 任务实例Id VARCHAR(64)
NAME_ 名称 VARCHAR(255)
VARTYPE 变量类型,参见VARTYPE类型说明 VARCHAR(100)
REV_ REV_ 版本号 INT(11)
BYTEARRAYID 字节数组ID,ACT_GE_BYTEARRAY表的主键 VARCHAR(64)
DOUBLE_ DOUBLE_ DOUBLE
LONG_ 存储LongType类型的数据 BIGINT(20)
TEXT_ 存储变量值类型为String,如此处存储持久化对象时,值jpa对象的class VARCHAR(4000)
TEXT2_ 此处存储的是JPA持久化对象时,才会有值。此值为对象ID VARCHAR(4000)
CREATETIME
创建时间 datetime(3)
LASTUPDATED_TIME
最后修改时间 datetime(3)




 ACTID*


ACTID* : “ID”代表“Identity”(身份),这些表中保存的都是身份信息,如用户和组以及两者之间的关系。如果Activiti被集成在某一系统当中的话,这些表可以不用,可以直接使用现有系统中的用户或组信息;

(一)act_id_group用户组表


用来存储用户组信息。

字段名 字段描述 数据类型 备注
ID_ 主键 VARCHAR(64) 主键ID
REV_ 版本号 INT(11)
NAME_ 用户组描述信息 VARCHAR(255)
TYPE_ 用户组类型 VARCHAR(255)


(二)act_id_info用户扩展信息表


用户扩展信息表。

字段名 字段描述 数据类型 备注
ID_ 主键 VARCHAR(64) 主键ID
REV_ 版本号 INT(11)
USERID 用户ID VARCHAR(64)
TYPE_ 类型 VARCHAR(64)
KEY_ formINPut名称 VARCHAR(255)
VALUE_ VARCHAR(255)
PASSWORD_ 密码 LONGBLOB
PARENTID 父节点 VARCHAR(255)


(三)act_id_membership保存用户分组信息表


用来保存用户的分组信息

字段名 字段描述 数据类型 备注
USERID 用户Id VARCHAR(64)
GROUPID 用户组Id VARCHAR(64)


(四)act_id_user 用户信息表



字段名 字段描述 数据类型 备注
ID_ 主键 VARCHAR(64) 主键ID
REV_ 版本号 INT(11)
FIRST_ 用户名称 VARCHAR(255)
LAST_ 用户姓氏 VARCHAR(255)
EMAIL_ 邮箱 VARCHAR(255)
PWD_ 密码 VARCHAR(255)
PICTUREID 头像Id VARCHAR(64)


 act_procdef_info



act_procdef_info 这个表是流程定义信息的具体内容的表.

字段名 字段描述 数据类型 备注
ID_ 主键 VARCHAR(64) 主键ID
PROCDEF_ID varchar(64)
REV_ int(11)
INFOJSON_ID varchar(64)




 ACTRE*


ACTRE* : “RE”代表“Repository”(仓库),这些表中保存一些‘静态’信息,如流程定义和流程资源(如图片、规则等);

(一)act_re_deployment部署单元信息


流程部署完了相关部署信息都会保存在这个表里面

用来存储部署时需要持久化保存下来的信息

字段名 字段描述 数据类型
ID_ VARCHAR(64)
NAME_ 这个流程的名字,通过createDeployment()方法的.name来设置
VARCHAR(255)
CATEGORY_ 流程定义的类别,通过createDeployment().category
方法来设置
VARCHAR(255)
TENANTID 一个流程图我可以部署多次,为了区分这多个流程定义可以设置tenantId,通过createDeployment().tenantId方法来设置,可以重复
VARCHAR(255)
DEPLOYTIME 部署时间 TIMESTAMP




(二)act_re_model模型信息


创建流程的设计模型时,保存在该数据表中。

字段名 字段描述 数据类型 备注
ID_ 主键 VARCHAR(64) 主键ID
REV_ INT(11) 11
NAME_ 模型的名称:
比如:收文管理
VARCHAR(255)
KEY_ 模型的关键字,流程引擎用到。
比如:FTOA_SWGL
VARCHAR(255) 分类,例如:
http://www.mossle.com/docs/activiti/
CATEGORY_ 类型,用户自己对流程模型的分类。 VARCHAR(255)
CREATETIME 创建时间 TIMESTAMP
LASTUPDATE_TIME 最后修改时间 TIMESTAMP
VERSION_ 版本,从1开始。 INT(11) 版本
METAINFO 数据源信息,比如:
{“name”:”FTOA_SWGL”,”revision”:1,”description”:”丰台财政局OA,收文管理流程”}
VARCHAR(4000) 以json格式保存流程定义的信息
DEPLOYMENTID 部署ID VARCHAR(64) 部署ID
EDITORSOURCE_VALUE_ID 编辑源值ID VARCHAR(64) 是 ACTGE_BYTEARRAY 表中的ID值。
EDITORSOURCE_EXTRA_VALUE_ID 编辑源额外值ID(外键ACT_GE_BYTEARRAY ) VARCHAR(64) 是 ACTGE_BYTEARRAY 表中的ID值。
TENANTID 租户 VARCHAR(255)



(三)act_re_procdef已部署的流程定义



业务流程定义数据表。此表和 ACT_RE_DEPLOYMENT 是多对一的关系,即,一个部署的bar包里可能包含多个流程定义文件, 每个流程定义文件都会有一条记录在 ACT_REPROCDEF 表内,每个流程定义的数据,都会对于 ACT_GE_BYTEARRAY 表内的一个资源文件和 PNG 图片文件。和 ACT_GE_BYTEARRAY 的关联是通过程序用ACT_GE_BYTEARRAY.NAME 与 ACT_RE_PROCDEF.NAME 完成的,在数据库表结构中没有体现。

字段名 字段描述 数据类型 备注
ID_ 主键 VARCHAR(64) 主键ID
REV_ 版本号 INT(11) 乐观锁
CATEGORY_ 流程命名空间(该编号就是流程文件targetNamespace的属性值) VARCHAR(255) 流程定义的Namespace就是类别
NAME_ 流程名称(该编号就是流程文件process元素的name属性值) VARCHAR(255) 名称
KEY_ 流程编号(该编号就是流程文件process元素的id属性值) VARCHAR(255)
VERSION_ 流程版本号(由程序控制,新增即为1,修改后依次加1来完成的) INT(11)
DEPLOYMENTID 部署编号 VARCHAR(64) 部署表ID
RESOURCENAME 资源文件名称 VARCHAR(4000) 流程bpmn文件名称
DGRMRESOURCE_NAME 图片资源文件名称 VARCHAR(4000) png流程图片名称
DESCRIPTION_ 描述信息 VARCHAR(4000) 描述
HASSTART_FORM_KEY 是否从key启动 TINYINT(4) start节点是否存在formKey
0否 1是
SUSPENSIONSTATE 是否挂起 INT(11) 1激活 2挂起
TENANTID
varchar(255)
不同系统用一个流程定义来启动流程实例,tenantId用以区分同一个流程定义下分属不同系统的流程实例


 ACTRU*


ACTRU* : “RU”代表“Runtime”(运行时),这些表中保存一些流程实例、用户任务、变量等的运行时数据。Activiti只保存流程实例在执行过程中的运行时数据,并且当流程结束后会立即移除这些数据,这是为了保证运行时表尽量的小并运行的足够快;

(一)act_ru_event_subscr运行时事件

字段名 字段描述 数据类型 备注
ID_ 主键 VARCHAR(64) 主键ID
REV_ 版本号 INT(11)
EVENTTYPE 事件类型 VARCHAR(255)
EVENTNAME 事件名称 VARCHAR(255)
EXECUTIONID 流程执行ID VARCHAR(64)
PROCINST_ID 流程实例ID VARCHAR(64)
ACTIVITYID 活动ID VARCHAR(64)
CONFIGURATION_ 配置信息 VARCHAR(255)
CREATED_ 创建时间 TIMESTAMP
PROCDEF_ID varchar(64)
TENANTID varchar(255)




(二)act_ru_execution运行时流程执行实例


核心,我的代办任务查询表,是流程实例的执行表,记录当前流程实例的执行情况 , 如果有实例正在跑的话,会在这个表里面有记录,这个表有个businesskey. 如果流程实例跑完了,在这个表里面对应这个流程实例的那条记录将会被删除掉.


当你执行runtimeService.startProcessInstanceByKey方法启动一个流程实例的时候,这个表会多若干条记录,

每次进行流程审批的时候会更新这个表的相关信息.

Businesskey:业务标识,通常为业务表的主键,业务标识和流程实例一一对应。业务标识来源于业务系统。存储业务标识就是根据业务标识来关联查询业务系统的数据。
比如:请假流程启动一个流程实例,就可以将请假单的 id 作为业务标识存储到 activiti中,将来查询activiti的流程实例信息就可以获取请假单的 id 从而关联查询业务系统数据库得到请假单信息。


字段名 字段描述 数据类型
ID_ 主键,这个主键有可能和PROCINST_ID相同,相同的情况表示这条记录为主实例记录。 VARCHAR(64)
REV_ 表示数据库表更新次数。 INT(11)
PROCINST_ID 流程实例ID(一个流程实例不管有多少条分支实例,这个ID都是一致的。) VARCHAR(64)
BUSINESSKEY 这个为业务主键,主流程才会使用业务主键,另外这个业务主键字段在表中有唯一约束。 VARCHAR(255)
PARENTID 父执行流程(父节点实例ID),这个记录表示父实例ID,如上图,同步节点会产生两条执行记录,这两条记录的父ID为主线的ID。 VARCHAR(64)
PROCDEF_ID 流程定义Id VARCHAR(64)
SUPEREXEC 这个如果存在表示这个实例记录为一个外部子流程记录,对应主流程的主键ID。 VARCHAR(64)
ACTID 实例id(节点实例ID即
ACT_HI_ACTINST中ID)
VARCHAR(255)
ISACTIVE 激活状态(是否存活) 是否活动流程实例,比如上图,主流程为非活动实例,下面两个为活动实例,如果UserTask2完成,那么这个值将变为0即非活动 TINYINT(4)
ISCONCURRENT 并发状态,是否为并行(true/false) TINYINT(4)
ISSCOPE 这个字段我跟踪了一下不同的流程实例,如会签,子流程,同步等情况,发现主实例的情况这个字段为1,子实例这个字段为0。 TINYINT(4)
ISEVENT_SCOPE 没有使用到事件的情况下,一般都为0。 TINYINT(4)
SUSPENSIONSTATE 挂起状态 1激活 2挂起 INT(11)
CACHEDENT_STATE 缓存结束状态_ INT(11)
TENANTID
这个字段表示租户ID。可以应对多租户的设计。 varchar(255)
NAME_
varchar(255)
LOCKTIME
timestamp(3)



1.并行流程的表关系分析



当你的流程图为单向的时候则EXECUTIONID和PROC_INST_ID是一样的
Activiti25张表[笔记] - 图1


Activiti25张表[笔记] - 图2
这个对应的EXECUTION数据为:
Activiti25张表[笔记] - 图3
这个图就描述的很清楚了。
10000001020315 记录为主流程,实例ID都为10000001020315,分支流程实例的父ID为10000001020315。

PROC_INST_ID
:一个流程实例不管有多少条分支实例,这个ID都是一致的。
BUSINESSKEY:这个为业务主键,主流程才会使用业务主键,另外这个业务主键字段在表中有唯一约束。
PARENTID:这个记录表示父实例ID,如上图,同步节点会产生两条执行记录,这两条记录的父ID为主线的ID。
ACTID:表示流程运行到的节点,如上图主实例运行到ANDGateway1 节点。两个子实例运行到UserTask1,UserTask2节点。
ISACTIVE : 是否活动流程实例,比如上图,主流程为非活动实例,下面两个为活动实例,如果UserTask2完成,那么这个值将变为0即非活动。
ISCONCURRENT:是否并发。上图同步节点后为并发,如果是并发多实例也是为1。




(三)act_ru_identitylink运行时用户关系信息


启动一个新的流程实例之后,会往这个表里面多插入一条数据,
进行任务审批的时候会往这个表里面插入一条数据.

主要存储当前节点参与者的信息,任务参与者数据表。

字段名 字段描述 数据类型 备注
ID_ 主键 VARCHAR(64) 主键ID
REV_ 版本号 INT(11)
GROUPID 用户组ID VARCHAR(255)
TYPE_ 用户组类型 VARCHAR(255) 主要分为以下几种:assignee、candidate、
owner、starter、participant。即:受让人,候选人,所有者、起动器、参与者
USERID 用户ID VARCHAR(255)
TASKID 任务Id VARCHAR(64)
PROCINST_ID 流程实例ID VARCHAR(64)
PROCDEF_ID 流程定义Id VARCHAR(64)



(四)act_ru_job运行中的任务


运行时定时任务数据表
定时任务都存储在act_ru_job表中,时间到了就会执行,如果我想修改定时任务的属性或者删除的话可以使用managementService中的方法

字段名 字段描述 数据类型
ID_ 主键ID VARCHAR(64)
REV_ 版本 INT(11)
TYPE_ 类型 VARCHAR(255)
LOCKEXP_TIME 锁定释放时间 TIMESTAMP
LOCKOWNER 挂起者 VARCHAR(255)
EXCLUSIVE_ TINYINT(1)
EXECUTIONID 执行实例ID VARCHAR(64)
PROCESSINSTANCE_ID 流程实例ID VARCHAR(64)
PROCDEF_ID 流程定义ID VARCHAR(64)
RETRIES_ INT(11)
EXCEPTIONSTACK_ID 异常信息ID VARCHAR(64)
EXCEPTIONMSG 异常信息 VARCHAR(4000)
DUEDATE_ 到期时间 TIMESTAMP
REPEAT_ 重复 VARCHAR(255)
HANDLERTYPE 处理类型 VARCHAR(255)
HANDLERCFG 标识 VARCHAR(4000)
TENANTID varchar(255)

(五)act_ru_task 运行时任务


运行时任务节点表(只有一条记录,查询速度是最快的.)

进行任务节点审批的时候,这个表会新增一条数据,同时可能会删除当前流程id相同的同时REV_版本号为上一个的那条数据

字段名 字段描述 数据类型
ID_ 主键 VARCHAR(64)
REV_ 版本号(乐观锁) INT(11)
EXECUTIONID 执行实例id
(外键EXECUTIONID)和act_ru_execution表有对应关系
VARCHAR(64)
PROCINST_ID 流程实例ID(外键PROCINST_ID VARCHAR(64)
PROCDEF_ID 流程定义ID VARCHAR(64)
NAME_ 节点定义的名称 VARCHAR(255)
PARENTTASK_ID 父亲节点实例id VARCHAR(64)
DESCRIPTION_ 节点定义描述 VARCHAR(4000)
TASKDEF_KEY 任务定义的id VARCHAR(255)
OWNER_ 拥有者(一般情况下为空,只有在委托时才有值) VARCHAR(255)
ASSIGNEE_ 签收人或委托人 VARCHAR(255)
DELEGATION_ 委托类型,DelegationState分为两种:PENDING,RESOLVED。如无委托则为空 VARCHAR(64)
PRIORITY_ 优先级别,默认为:50 INT(11)
CREATETIME 创建时间 TIMESTAMP
DUEDATE 执行时间 DATETIME
SUSPENSIONSTATE 暂停状态(1.代表激活 2.代表挂起) INT(11)
TENANTID
varchar(255)
FORMKEY
varchar(255)


(六)act_ru_variable运行时变量表


启动一个新的流程实例之后,会往这个表里面插入若干条数据,应该是取决于这个新的流程实例的数量来决定的.

运行时流程变量数据表, 设置流程变量的时候这里会有数据,可以从这里查询出来这个流程的是谁发起的,现在该谁审批了

字段名 字段描述 数据类型
ID_ 主键 VARCHAR(64)
REV_ 版本号,每修改一次就好变更一次 INT(11)
TYPE 编码类型,参数变量类型,设置流程实例变量如果是Integer类型的,这行数据的这个字段值就是Integer VARCHAR(255)
NAME_ 流程变量的名称 VARCHAR(255)
EXECUTIONID 执行实例Id VARCHAR(64)
PROCINST_ID 流程实例Id VARCHAR(64)
TASKID 节点实例ID VARCHAR(64)
BYTEARRAYID 字节表的ID
(ACT_GE_BYTEARRAY)
VARCHAR(64)
DOUBLE_ 存储变量类型为Double DOUBLE
LONG_ 存储变量类型为long BIGINT(20)
TEXT_ 存储变量值类型为String
如此处存储持久化对象时,值jpa对象的class
VARCHAR(4000)
TEXT2_ 此处存储的是JPA持久化对象时,才会有值。此值为对象ID VARCHAR(4000)




 启动流程实例操作的数据表

SELECT FROM act_ru_execution #流程实例执行表,记录当前流程实例的执行情况
Activiti25张表[笔记] - 图4
说明:
流程实例执行,如果当前只有一个分支时,一个流程实例只有一条记录且执行表的主键 id 和流程实
例 id 相同,如果当前有多个分支正在运行则该执行表中有多条记录,存在执行表的主键和流程实例
id 不相同的记录。 不论 当前有几个分支总会有一条记录的执行表的主键和流程 实例 id 相同
一个流程实例运行完成,此表中与流程实例相关的记录删除。

SELECT
FROM act_ru_task #任务执行表,记录当前执行的任务
Activiti25张表[笔记] - 图5
说明:启动流程实例,流程当前执行到第一个任务结点,此表会插入一条记录表示当前任务的执行
情况,如果任务完成则记录删除。

SELECT FROM act_ru_identitylink #任务参与者,记录当前参与任务的用户或组

Activiti25张表[笔记] - 图6

SELECT
FROM act_hi_procinst #流程实例历史表
Activiti25张表[笔记] - 图7
流程实例启动,会在此表插入一条记录,流程实例运行完成记录也不会删除。

SELECT FROM act_hi_taskinst #任务历史表,记录所有任务
Activiti25张表[笔记] - 图8
开始一个任务,不仅在 act_ru_task 表插入记录,也会在历史任务表插入一条记录,任务历史表的主
键就是任务 id,任务完成此表记录不删除。
SELECT
FROM act_hi_actinst #活动历史表,记录所有活动

Activiti25张表[笔记] - 图9
活动包括任务,所以此表中不仅记录了任务,还记录了流程执行过程的其它活动,比如开始事件、
结束事件。





 Activiti支持的数据库

Activiti25张表[笔记] - 图10