Skip to main content

Activiti 数据库表结构

——文档适用于 Activiti 5-6


Activiti 数据库表结构设计说明

Activiti 工作流总共包含 23 张数据表(现在是25张,新增了 ACT_EVT_LOGACT_PROCDEF_INFO

Activiti 7 的数据库表结构设计

# Activiti 7 的数据库表结构设计
ACT_EVT_LOG, ACT_GE_BYTEARRAY, ACT_GE_PROPERTY, ACT_HI_ACTINST, ACT_HI_ATTACHMENT, ACT_HI_COMMENT, ACT_HI_DETAIL, ACT_HI_IDENTITYLINK, ACT_HI_PROCINST, ACT_HI_TASKINST, ACT_HI_VARINST, ACT_PROCDEF_INFO, ACT_RE_DEPLOYMENT, ACT_RE_MODEL, ACT_RE_PROCDEF, ACT_RU_DEADLETTER_JOB, ACT_RU_EVENT_SUBSCR, ACT_RU_EXECUTION, ACT_RU_IDENTITYLINK, ACT_RU_INTEGRATION, ACT_RU_JOB, ACT_RU_SUSPENDED_JOB, ACT_RU_TASK, ACT_RU_TIMER_JOB, ACT_RU_VARIABLE

Activiti 各大版本表对比

以下只是对表名做了简单的对比,并没有涉及到数据库表字段及数据类型

编号 表名 Activiti 5.23.0 Acticiti 6.0.0 Activiti 7.1.0.M6
1 ACT_EVT_LOG
2 ACT_GE_BYTEARRAY
3 ACT_GE_PROPERTY
4 ACT_HI_ACTINST
5 ACT_HI_ATTACHMENT
6 ACT_HI_COMMENT
7 ACT_HI_DETAIL
8 ACT_HI_IDENTITYLINK
9 ACT_HI_PROCINST
10 ACT_HI_TASKINST
11 ACT_HI_VARINST
12 ACT_ID_GROUP
13 ACT_ID_INFO
14 ACT_ID_MEMBERSHIP
15 ACT_ID_USER
16 ACT_PROCDEF_INFO
17 ACT_RE_DEPLOYMENT
18 ACT_RE_MODEL
19 ACT_RE_PROCDEF
20 ACT_RU_DEADLETTER_JOB
21 ACT_RU_EVENT_SUBSCR
22 ACT_RU_EXECUTION
23 ACT_RU_IDENTITYLINK
24 ACT_RU_INTEGRATION
25 ACT_RU_JOB
26 ACT_RU_SUSPENDED_JOB
27 ACT_RU_TASK
28 ACT_RU_TIMER_JOB
29 ACT_RU_VARIABLE

表名规则

Activiti 使用到的表都是 ACT_ 开头的。表名的第二部分用两个字母表明表的用途。

  • ACT_GE_GE) 表示 general 全局通用数据及设置,各种情况都使用的数据。
  • ACT_HI_HI) 表示 history 历史数据表,包含着程执行的历史相关数据,如结束的流程实例,变量,任务,等等
  • ACT_ID_ID) 表示 identity 组织机构,用户记录,流程中使用到的用户和组。这些表包含标识的信息,如用户,用户组,等等。
  • ACT_RE_RE) 表示 repository 存储,包含的是静态信息,如,流程定义,流程的资源(图片,规则等)。
  • ACT_RU_RU) 表示 runtime 运行时,运行时的流程变量,用户任务,变量,职责(job)等运行时的数据。Activiti 只存储实例执行期间的运行时数据,当流程实例结束时,将删除这些记录。这就保证了这些运行时的表小且快。

25 张表详情

一般数据 (ACT_GE_)


通用数据表

表名 解释
ACT_GE_BYTEARRAY 二进制数据表,存储通用的流程定义和流程资源。
ACT_GE_PROPERTY 系统相关属性,属性数据表存储整个流程引擎级别的数据,初始化表结构时,会默认插入三条记录。

流程历史记录 (ACT_HI_)

表名 解释
ACT_HI_ACTINST 历史节点表
ACT_HI_ATTACHMENT 历史附件表
ACT_HI_COMMENT 历史意见表
ACT_HI_DETAIL 历史详情表,提供历史变量的查询
ACT_HI_IDENTITYLINK 历史流程人员表
ACT_HI_PROCINST 历史流程实例表
ACT_HI_TASKINST 历史任务实例表
ACT_HI_VARINST 历史变量表

用户用户组表 (ACT_ID_)


身份数据表

表名 解释
ACT_ID_GROUP 用户组信息表
ACT_ID_INFO 用户扩展信息表
ACT_ID_MEMBERSHIP 用户与用户组对应信息表
ACT_ID_USER 用户信息表

流程定义表 (ACT_RE_)


流程存储数据表

表名 解释
ACT_RE_DEPLOYMENT 部署信息表
ACT_RE_MODEL 流程设计模型部署表
ACT_RE_PROCDEF 流程定义数据表

运行实例表 (ACT_RU_)

表名 解释
ACT_RU_EVENT_SUBSCR 运行时事件 throwEvent、catchEvent 时间监听信息表
ACT_RU_EXECUTION 运行时流程执行实例
ACT_RU_IDENTITYLINK 运行时流程人员表,主要存储任务节点与参与者的相关信息
ACT_RU_JOB 运行时定时任务数据表
ACT_RU_TASK 运行时任务节点表
ACT_RU_VARIABLE 运行时流程变量数据表

其它

表名 解释
ACT_EVT_LOG 事件日志
ACT_PROCDEF_INFO 流程定义的动态变更信息

一般数据 (ACT_GE_)

ACT_GE_BYTEARRAY 二进制数据表

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

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

用于保存与流程引擎相关的资源,只要调用了 Activiti 存储服务的 API ,涉及的资源均会被转换为 byte 数组保存到这个表中。在资源表中设计了一个 BYTES宇段,用来保存资源的内容,因此理论上其可以用于保存任何类型的资源(文件或者其他来源的输入流)。一般情况下, Activiti 使用这个表来保存字符串、流程文件的内容、流程图片内容

字段名称 字段描述 数据类型 主键 为空 取值说明
ID_ ID_ nvarchar(64) Y 主键ID
REV_ 乐观锁 int Y Version(版本)
NAME_ 名称 nvarchar(255) Y 部署的文件名称,如:leave.bpmn.png,leave.bpmn20.xml
DEPLOYMENT_ID_ 部署ID nvarchar(64) Y 部署表ID
BYTES_ 字节 varbinary(max) Y 部署文件
GENERATED_ 是否是引擎生成 tinyint Y 0为用户生成,1为activiti生成
字段 类型 NULL 备注
ID_ varchar(64) NO
REV_ int(11) YES 数据版本, Activiti为一些有可能会被频繁修改的数据表,加入该字段,用来表示该数据被操作的次数
NAME_ varchar(255) YES 资源名称
DEPLOYMENT_ID_ varchar(64) YES 一次部署可以添加多个资源,该字段与部署表ACT_RE_DEPLOYMENT的主键相关联
BYTES_ longblob YES 资源内容,最大可存储4G数据
GENERATED_ tinyint(4) YES 是否由Activiti自动产生的资源,0

ACT_GE_PROPERTY 属性数据表

属性数据表(act_ge_property)

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

Activiti 将全部的属性抽象为 key-value 对,每个属性都有名称和值, 使用

ACT GE PROPERTY 来保存这些属性

字段名称 字段描述 数据类型 主键 为空 取值说明
NAME_ 名称 nvarchar(64) schema.versionschema.historynext.dbid
VALUE_ nvarchar(300) 5.create(5.)
REV_ 乐观锁 int version
字段 类型 NULL 备注
NAME_ varchar(64) NO 名称
VALUE_ varchar(300) YES
REV_ int(11) YES 数据的版本号

流程历史记录 (ACT_HI_)

历史数据表就好像流程引擎的日志表,操作过的流程元素将会被记录到历史表中。

ACT_HI_ACTINST 历史节点表

历史节点表(act_hi_actinst)

历史活动信息。这里记录流程流转过的所有节点,与HI_TASKINST不同的是,taskinst只记录usertask内容

字段名称 字段描述 数据类型 主键 为空 取值说明
ID_ ID_ nvarchar(64)
PROC_DEF_ID_ 流程定义ID nvarchar(64)
PROC_INST_ID_ 流程实例ID nvarchar(64)
EXECUTION_ID_ 执行实例ID nvarchar(64)
ACT_ID_ 节点ID nvarchar(225) 节点定义ID
TASK_ID_ 任务实例ID nvarchar(64) 任务实例ID 其他节点类型实例ID在这里为空
CALL_PROC_INST_ID_ 调用外部的流程实例ID nvarchar(64) 调用外部流程的流程实例ID’
ACT_NAME_ 节点名称 nvarchar(225) 节点定义名称
ACT_TYPE_ 节点类型 nvarchar(225) 如startEvent、userTask
ASSIGNEE_ 签收人 nvarchar(64) 节点签收人
START_TIME_ 开始时间 datetime 2013-09-15 11:30:00
END_TIME_ 结束时间 datetime 2013-09-15 11:30:00
DURATION_ 耗时 numeric(19,0) 毫秒值
字段 类型 NULL 备注
ID_ varchar(64) NO
PROC_DEF_ID_ varchar(64) NO
PROC_INST_ID_ varchar(64) NO
EXECUTION_ID_ varchar(64) NO
ACT_ID_ varchar(255) NO
TASK_ID_ varchar(64) YES
CALL_PROC_INST_ID_ varchar(64) YES
ACT_NAME_ varchar(255) YES
ACT_TYPE_ varchar(255) NO
ASSIGNEE_ varchar(255) YES
START_TIME_ datetime NO
END_TIME_ datetime YES
DURATION_ bigint(20) YES
DELETE_REASON_ varchar(4000) YES
TENANT_ID_ varchar(255) YES

ACT_HI_ATTACHMENTA 历史附件表

历史附件表( act_hi_attachment )

字段名称 字段描述 数据类型 主键 为空 取值说明
ID_ ID_ nvarchar(64) 主键ID
REV_ 乐观锁 integer Version
USER_ID_ 用户ID nvarchar(255) 用户ID
NAME_ 名称 nvarchar(255) 附件名称
DESCRIPTION_ 描述 nvarchar(4000) 描述
TYPE_ 类型 nvarchar(255) 附件类型
TASK_ID_ 任务实例ID nvarchar(64) 节点实例ID
PROC_INST_ID_ 流程实例ID nvarchar(64) 流程实例ID
URL_ URL_ nvarchar(4000) 附件地址
CONTENT_ID_ 字节表的ID nvarchar(64) ACT_GE_BYTEARRAY的ID
字段 类型 NULL 备注
ID_ varchar(64) NO
REV_ int(11) YES
USER_ID_ varchar(255) YES 附件对应的用户ID
NAME_ varchar(255) YES 附件名称
DESCRIPTION_ varchar(4000) YES 附件描述
TYPE_ varchar(255) YES 附件类型
TASK_ID_ varchar(64) YES 附件对应的任务ID
PROC_INST_ID_ varchar(64) YES 对应的流程实例ID
URL_ varchar(4000) YES 链接到该附件的URL
CONTENT_ID_ varchar(64) YES 附件内容ID,附件内容会保存到资源表中,该字段记录资源数据ID
TIME_ datetime YES 数据产生的时间

ACT_HI_COMMENT 历史意见表

历史意见表( act_hi_comment )

表实际不只保存评论数据,它还会保存某些事件数据

字段名称 字段描述 数据类型 主键 为空 取值说明
ID_ ID_ nvarchar(64) 主键ID
TYPE_ 类型 nvarchar(255) 类型:event(事件)comment(意见)
TIME_ 时间 datetime 填写时间’
USER_ID_ 用户ID nvarchar(64) 填写人
TASK_ID_ 节点任务ID nvarchar(64) 节点实例ID
PROC_INST_ID_ 流程实例ID nvarchar(255) 流程实例ID
ACTION_ 行为类型 nvarchar(64) 见备注1
MESSAGE_ 基本内容 nvarchar(4000) 用于存放流程产生的信息,比如审批意见
FULL_MSG_ 全部内容 varbinary(max) 附件地址
字段 类型 NULL 备注
ID_ varchar(64) NO
TYPE_ varchar(255) YES 评论的类型可以设值为event或comment表示事件记录数据或者评论数据
TIME_ datetime NO 数据产生的时间
USER_ID_ varchar(255) YES 产生评论数据的用户ID
TASK_ID_ varchar(64) YES 评论数据的任务ID
PROC_INST_ID_ varchar(64) YES 评论数据对应的流程实例ID
ACTION_ varchar(255) YES 该评论数据的操作标识
MESSAGE_ varchar(4000) YES 该评论数据的信息
FULL_MSG_ longblob YES 该字段同样记录评论数据的信息

ACT_HI_DETAIL 流程明细表

历史详情表( act_hi_detail )

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

流程明细表(ACT HI DETAlL 会记录流程执行过程中的参数或者表单数据,由于在流程执行过程中,会产生大量这类数据,因此默认情况下, Activiti 不会保存流程明细数据,除非将流程引擎的历史数据( hist。可〉配置为 full

字段名称 字段描述 数据类型 主键 为空 取值说明
ID_ ID_ nvarchar(64) 主键
TYPE_ 类型 nvarchar(255) 见备注2
PROC_INST_ID_ 流程实例ID nvarchar(64) 流程实例ID
EXECUTION_ID_ 执行实例ID nvarchar(64) 执行实例ID
TASK_ID_ 任务实例ID nvarchar(64) 任务实例ID
ACT_INST_ID_ 节点实例ID nvarchar(64) ACT_HI_ACTINST表的ID
NAME_ 名称 nvarchar(255) 名称
VAR_TYPE_ 参数类型 nvarchar(255) 见备注3
REV_ 乐观锁 int Version
TIME_ 时间戳 datetime 创建时间
BYTEARRAY_ID_ 字节表ID nvarchar ACT_GE_BYTEARRAY表的ID
DOUBLE_ DOUBLE_ double precision 存储变量类型为Double
LONG_ LONG_ numeric 存储变量类型为long
TEXT_ TEXT_ nvarchar 存储变量值类型为String
TEXT2_ TEXT2_ nvarchar 此处存储的是JPA持久化对象时,才会有值。此值为对象ID
字段 类型 NULL 备注
ID_ varchar(64) NO
TYPE_ varchar(255) NO
PROC_INST_ID_ varchar(64) YES
EXECUTION_ID_ varchar(64) YES
TASK_ID_ varchar(64) YES
ACT_INST_ID_ varchar(64) YES
NAME_ varchar(255) NO
VAR_TYPE_ varchar(255) YES
REV_ int(11) YES
TIME_ datetime NO
BYTEARRAY_ID_ varchar(64) YES
DOUBLE_ double YES
LONG_ bigint(20) YES
TEXT_ varchar(4000) YES
TEXT2_ varchar(4000) YES

历史流程人员表( act_ru_identitylink )

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

字段名称 字段描述 数据类型 主键 为空 取值说明
ID_ ID_ nvarchar(64) ID_
GROUP_ID_ 组ID nvarchar(255) 组ID
TYPE_ 类型 nvarchar(255) 备注4
USER_ID_ 用户ID nvarchar(255) 用户ID
TASK_ID_ 节点实例ID nvarchar(64) 节点实例ID
PROC_INST_ID_ 流程实例ID nvarchar(64) 流程实例ID

ACT_HI_PROCINST 流程实例表

历史流程实例表(act_hi_procinst)

只要流程被启动,就会将流程实例的数据写入 ACT HI PROC ST 表中 。除了基本的流程字段外,与运行时数据表不同的是,历史流程实例表还会记录流程的开始活动ID,结束活动ID等信息

字段名称 字段描述 数据类型 主键 为空 取值说明
ID_ ID_ nvarchar(64) 主键ID
PROC_INST_ID_ 流程实例ID nvarchar(64) 流程实例ID
BUSINESS_KEY_ 业务主键 nvarchar(255) 业务主键,业务表单的ID
PROC_DEF_ID_ 流程定义ID nvarchar(64) 流程定义ID
START_TIME_ 开始时间 datetime 开始时间
END_TIME_ 结束时间 datetime 结束时间
DURATION_ 耗时 Numeric(19) 耗时
START_USER_ID_ 起草人 nvarchar(255) 起草人
START_ACT_ID_ 开始节点ID nvarchar(255) 起草环节ID
END_ACT_ID_ 结束节点ID nvarchar(255) 结束环节ID
SUPER_PROCESS_INSTANCE_ID_ 父流程实例ID nvarchar(64) 父流程实例ID
DELETE_REASON_ 删除原因 nvarchar(4000) 删除原因
字段 类型 NULL 备注
ID_ varchar(64) NO
PROC_INST_ID_ varchar(64) NO
BUSINESS_KEY_ varchar(255) YES
PROC_DEF_ID_ varchar(64) NO
START_TIME_ datetime NO
END_TIME_ datetime YES
DURATION_ bigint(20) YES
START_USER_ID_ varchar(255) YES
START_ACT_ID_ varchar(255) YES 开始活动的 ID 一般是流程开始事件的ID,在流程文件中定义
END_ACT_ID_ varchar(255) YES 流程最后一个活动的 ID一般是流程结束事件的ID,在流程文件中定义。
SUPER_PROCESS_INSTANCE_ID_ varchar(64) YES
DELETE_REASON_ varchar(4000) YES 该流程实例被删除的原因
TENANT_ID_ varchar(255) YES
NAME_ varchar(255) YES

ACT_HI_TASKINST 历史任务表

历史任务实例表( act_hi_taskinst )

字段名称 字段描述 数据类型 主键 为空 取值说明
ID_ ID_ nvarchar(64) 主键ID
PROC_DEF_ID_ 流程定义ID nvarchar(64) 流程定义ID
TASK_DEF_KEY_ 节点定义ID nvarchar(255) 节点定义ID
PROC_INST_ID_ 流程实例ID nvarchar(64) 流程实例ID
EXECUTION_ID_ 执行实例ID nvarchar(64) 执行实例ID
NAME_ 名称 varchar(255) 名称
PARENT_TASK_ID_ 父节点实例ID nvarchar(64) 父节点实例ID
DESCRIPTION_ 描述 nvarchar(400) 描述
OWNER_ 实际签收人 任务的拥有者 nvarchar(255) 签收人(默认为空,只有在委托时才有值)
ASSIGNEE_ 签收人或被委托 nvarchar(255) 签收人或被委托
START_TIME_ 开始时间 datetime 开始时间
CLAIM_TIME_ 提醒时间 datetime 提醒时间
END_TIME_ 结束时间 datetime 结束时间
DURATION_ 耗时 numeric(19) 耗时
DELETE_REASON_ 删除原因 nvarchar(4000) 删除原因(completed,deleted)
PRIORITY_ 优先级别 int 优先级别
DUE_DATE_ 过期时间 datetime 过期时间,表明任务应在多长时间内完成
FORM_KEY_ 节点定义的formkey nvarchar(255) desinger节点定义的form_key属性
字段 类型 NULL 备注
ID_ varchar(64) NO
PROC_DEF_ID_ varchar(64) YES
TASK_DEF_KEY_ varchar(255) YES
PROC_INST_ID_ varchar(64) YES
EXECUTION_ID_ varchar(64) YES
NAME_ varchar(255) YES
PARENT_TASK_ID_ varchar(64) YES
DESCRIPTION_ varchar(4000) YES
OWNER_ varchar(255) YES
ASSIGNEE_ varchar(255) YES
START_TIME_ datetime NO
CLAIM_TIME_ datetime YES
END_TIME_ datetime YES
DURATION_ bigint(20) YES
DELETE_REASON_ varchar(4000) YES
PRIORITY_ int(11) YES
DUE_DATE_ datetime YES
FORM_KEY_ varchar(255) YES
CATEGORY_ varchar(255) YES
TENANT_ID_ varchar(255) YES

ACT_HI_VARINST 历史变量表

历史变量表( act_hi_varinst )

字段名称 字段描述 数据类型 主键 为空 取值说明
ID_ ID_ nvarchar(64) ID_
PROC_INST_ID_ 流程实例ID nvarchar(64) 流程实例ID
EXECUTION_ID_ 执行实例ID nvarchar(255) 执行实例ID
TASK_ID_ 任务实例ID nvarchar(64) 任务实例ID
NAME_ 名称 nvarchar(64) 参数名称(英文)
VAR_TYPE_ 参数类型 varchar(255) 备注5
REV_ 乐观锁 nvarchar(64) 乐观锁 Version
BYTEARRAY_ID_ 字节表ID nvarchar(400) ACT_GE_BYTEARRAY表的主键
DOUBLE_ DOUBLE_ nvarchar(255) 存储DoubleType类型的数据
LONG_ LONG_ nvarchar(255) 存储LongType类型的数据
TEXT_ TEXT_ datetime 备注6
TEXT2_ TEXT2_ datetime 此处存储的是JPA持久化对象时,才会有值。此值为对象ID

用户用户组表 (ACT_ID_)

Activiti 整个身份数据模块,可以独立于流程引擎而存在 有关身份数据的几张表没有保存与流程相关的数据及关联。身份表名称以 ACT_ID 开头,表名中的 是单词 identity的缩写。

ACT_ID_GROUP 用户组信息表

用户组信息表( act_id_group )

字段名称 字段描述 数据类型 主键 为空 取值说明
ID_ ID_ nvarchar(64) 主键ID
REV_ 乐观锁 int 乐观锁Version
NAME_ 名称 nvarchar(255) 组名称
TYPE_ 类型 nvarchar(255) 类型
字段 类型 NULL 备注
ID_ varchar(64) NO
REV_ int(11) YES
NAME_ varchar(255) YES 用户组名称
TYPE_ varchar(255) YES 用户组类型,类型不由activiti提供,但是在某些业务中, Activiti 会根据该字段的值进行查询,字段值由 Activiti 定如 Activiti webService

ACT_ID_INFO 用户扩展信息表

用户扩展信息表( act_id_info )

Activiti 将用户、用户账号和用户信息分为三种数据,其中用户表保存用户的数据,而用

户账号和用户信息,则被保存到 ACT_ID_INFO 表中

字段名称 字段描述 数据类型 主键 为空 取值说明
ID_ ID_ nvarchar(64) 主键ID
REV_ 乐观锁 int 乐观锁Version
USER_ID_ 用户ID nvarchar(64)
TYPE_ 类型 nvarchar(64)
KEY_ nvarchar(255)
VALUE_ nvarchar(255)
PASSWORD_ Image
PARENT_ID_ nvarchar(255)
字段 类型 NULL 备注
ID_ varchar(64) NO
REV_ int(11) YES
USER_ID_ varchar(64) YES 对应用户表的数据ID(没有强制做外键关联)
TYPE_ varchar(64) YES 信息类型,当前可以设置用户账号(account)、用户信息(userinfo)和NULL三种值
KEY_ varchar(255) YES 数据的键。可以根据改键来查找用户信息的值
VALUE_ varchar(255) YES 数据的值
PASSWORD_ longblob YES 用户账号的密码字段
PARENT_ID_ varchar(255) YES 该信息的父信息ID,如果一条数据设置了父信息ID,则表示该数据是用户账号(信息)的明细数据,例如一个账号有激活日期,那么激活日期就是该账号的明细数据,此处使用了自关联来实现。

ACT_ID_MEMBERSHIP 用户与分组对应信息表

用户与分组对应信息表( act_id_membership )

用来保存用户的分组信息。

一个用户组下有多个用户, 一个用户可以属于不同的用户组,那么这种多对多的关系,就

使用关系表来进行描述,关系表为 ACT ID ME IBERSHIP ,只有两个字段。需要注意的是, ACT_ID_MEMBERSHI的两个字段均做了外键约束 写入该表的数据,必须要有用户和用户组数据与之关联。

字段名称 字段描述 数据类型 主键 为空 取值说明
USER_ID 用户ID nvarchar(64)
GROUP_ID 用户组ID nvarchar(64)
字段 类型 NULL 备注
USER_ID_ varchar(64) NO
GROUP_ID_ varchar(64) NO

ACT_ID_USER 用户信息表

用户信息表( act_id_user )

字段名称 字段描述 数据类型 主键 为空 取值说明
ID_ ID_ nvarchar(64) 主键ID
REV_ 乐观锁 int 乐观锁Version
FIRST_ nvarchar(255)
LAST_ nvarchar(255)
EMAIL_ EMAIL_ nvarchar(255)
PWD_ 密码 nvarchar(255)
PICTURE_ID_ 图片ID nvarchar(64)
字段 类型 NULL 备注
ID_ varchar(64) NO
REV_ int(11) YES
FIRST_ varchar(255) YES 人名
LAST_ varchar(255) YES 姓式
EMAIL_ varchar(255) YES 用户邮箱
PWD_ varchar(255) YES 用户密码
PICTURE_ID_ varchar(64) YES 用户图片,对应资源中的数据ID

流程定义表 (ACT_RE_)

ACT_RE_DEPLOYMENT 流程部署表

部署信息表( act_re_deployment )

部署流程定义时需要被持久化保存下来的信息。

在 Activiti 中,一次部署可以添加多个资源,资源会被保存到资源表中(act_ge_bytearray),而对于部署,则部署信息会被保存到部署表中

字段名称 字段描述 数据类型 主键 为空 取值说明
ID_ ID_ nvarchar(64) 主键ID
NAME_ 部署名称 nvarchar(255) 部署文件名
CATEGORY_ 分类 nvarchar(255) 类别
DEPLOY_TIME_ 部署时间 datetime 部署时间
字段 类型 NULL 备注
ID_ varchar(64) NO
NAME_ varchar(255) YES 部署的名称
CATEGORY_ varchar(255) YES
KEY_ varchar(255) YES
TENANT_ID_ varchar(255) YES
DEPLOY_TIME_ timestamp YES 部署的时间
ENGINE_VERSION_ varchar(255) YES

ACT_RE_MODEL 流程设计模型部署表

流程设计模型部署表( act_re_model )

流程设计器设计流程后,保存数据到该表。

字段名称 字段描述 数据类型 主键 为空 取值说明
ID_ ID_ nvarchar(64) ID_
REV_ 乐观锁 int 乐观锁
NAME_ 名称 nvarchar(255) 名称
KEY_ KEY_ nvarchar(255) 分类
CATEGORY_ 分类 nvarchar(255) 分类
CREATE_TIME_ 创建时间 datetime 创建时间
LAST_UPDATE_TIME_ 最新修改时间 datetime 最新修改时间
VERSION_ 版本 int 版本
META_INFO_ META_INFO_ nvarchar(255) 以json格式保存流程定义的信息
DEPLOYMENT_ID_ 部署ID nvarchar(255) 部署ID
EDITOR_SOURCE_VALUE_ID_ datetime
EDITOR_SOURCE_EXTRA_VALUE_ID_ datetime

ACT_RE_PROCDEF 流程定义表

流程定义数据表( act_re_procdef )

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

Activiti 在部署添加资源时,如果发布部署的文件是流程文件( .bpnn 或者.BPMN 20.xml),

则除了会解析这些流程文件,将内容保存到资源表外,还会解析流程文件的内容,形成特定的流程定义数据,写入流程定义表( ACT_RE_PROCDEF )中

字段名称 字段描述 数据类型 主键 为空 取值说明
ID_ ID_ nvarchar(64) ID_
REV_ 乐观锁 int 乐观锁
CATEGORY_ 分类 nvarchar(255) 流程定义的Namespace就是类别
NAME_ 名称 nvarchar(255) 名称
KEY_ 定义的KEY nvarchar(255) 流程定义ID
VERSION_ 版本 int 版本
DEPLOYMENT_ID_ 部署表ID nvarchar(64) 部署表ID
RESOURCE_NAME_ bpmn文件名称 nvarchar(4000) 流程bpmn文件名称
DGRM_RESOURCE_NAME_ png图片名称 nvarchar(4000) 流程图片名称
DESCRIPTION_ 描述 nvarchar(4000) 描述
HAS_START_FORM_KEY_ 是否存在开始节点formKey tinyint start节点是否存在formKey 0否 1是
SUSPENSION_STATE_ 是否挂起 tinyint 1 激活 2挂起
字段 类型 NULL 备注
ID_ varchar(64) NO
REV_ int(11) YES
CATEGORY_ varchar(255) YES 流程定义的分类
NAME_ varchar(255) YES 流程定义名称
KEY_ varchar(255) NO 流程定义的key
VERSION_ int(11) NO
DEPLOYMENT_ID_ varchar(64) YES 流程定义对应的部署数据ID
RESOURCE_NAME_ varchar(4000) YES 流程定义对应的资源名称
DGRM_RESOURCE_NAME_ varchar(4000) YES 流程定义对应的流程图资源名称
DESCRIPTION_ varchar(4000) YES
HAS_START_FORM_KEY_ tinyint(4) YES
HAS_GRAPHICAL_NOTATION_ tinyint(4) YES
SUSPENSION_STATE_ int(11) YES 表示流程定义的状态是激活还是终止,1:激活,2:终止,如果流程定义状态是终止状态则不能启动该流程
TENANT_ID_ varchar(255) YES
ENGINE_VERSION_ varchar(255) YES

运行实例表 (ACT_RU_)

运行时数据表用来保存流程在运行过程中所产生的数据,例如流程实例、执行流、任务等

运行时数据表的名称以 ACT_RU 开头,“RU ”是单词 runtime 的缩写。

ACT_RU_EVENT_SUBSCR 事件描述表

事件描述表( act_ru_event_subscr )

如果流程到达某类事件节点, Activiti 会往ACT_RUN_EVENT_SUBSCR表中加入事件描述数据,这些事件描述数据将会决定流程事件的触发。

字段名称 字段描述 数据类型 主键 为空 取值说明
ID_ 事件ID nvarchar(64) 事件ID
REV_ 版本 int 乐观锁Version
EVENT_TYPE_ 事件类型 nvarchar(255) 事件类型
EVENT_NAME_ 事件名称 nvarchar(255) 事件名称
EXECUTION_ID_ 执行实例ID nvarchar(64) 执行实例ID
PROC_INST_ID_ 流程实例ID nvarchar(64) 流程实例ID
ACTIVITY_ID_ 活动实例ID nvarchar(64) 活动实例ID
CONFIGURATION_ 配置 nvarchar(255) 配置
CREATED_ 是否创建 datetime 默认值 当前系统时间戳CURRENT_TIMESTAMP
字段 类型 NULL 备注
ID_ varchar(64) NO
REV_ int(11) YES
EVENT_TYPE_ varchar(255) NO 事件类型,不同事件会产生不同类型的事件描述,并不是所有的事件都会产生时间描述
EVENT_NAME_ varchar(255) YES 事件名称,在流程文件中定义
EXECUTION_ID_ varchar(64) YES 事件所在的执行流ID
PROC_INST_ID_ varchar(64) YES 时间所在的流程实例ID
ACTIVITY_ID_ varchar(64) YES 具体事件的ID,在流程文件中定义
CONFIGURATION_ varchar(255) YES 事件的配置属性,该字段中有可能存放流程定义ID,执行流ID,或者其他数据
CREATED_ timestamp NO
PROC_DEF_ID_ varchar(64) YES
TENANT_ID_ varchar(255) YES

ACT_RU_EXECUTION 运行时流程执行实例表

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

流程启动后,会产生一个流程实例,同时会产生相应的执行流,流程实例和执行流数据均

被保存在 ACT_RU_EXECUTION 表中,如果一个流程实例只有一条执行流,那么该表中只产

生一条数据,该数据既表示执行流,也表示流程实例。

字段名称 字段描述 数据类型 主键 为空 取值说明
ID_ ID_ nvarchar(64) ID_
REV_ 乐观锁 int 乐观锁
PROC_INST_ID_ 流程实例ID nvarchar(64) 流程实例ID
BUSINESS_KEY_ 业务主键ID nvarchar(255) 业务主键ID
PARENT_ID_ 父节点实例ID nvarchar(64) 父节点实例ID
PROC_DEF_ID_ 流程定义ID nvarchar(64) 流程定义ID
SUPER_EXEC_ SUPER_EXEC_ nvarchar(64) SUPER_EXEC_
ACT_ID_ 节点实例ID nvarchar(255) 节点实例ID即ACT_HI_ACTINST中ID
IS_ACTIVE_ 是否存活 tinyint 是否存活
IS_CONCURRENT_ 是否并行 tinyint 是否为并行(true/false)
IS_SCOPE_ IS_SCOPE_ tinyint IS_SCOPE_
IS_EVENT_SCOPE_ IS_EVENT_SCOPE_ tinyint IS_EVENT_SCOPE_
SUSPENSION_STATE_ 是否挂起 tinyint 挂起状态 1激活 2挂起
CACHED_ENT_STATE_ int
字段 类型 NULL 备注
ID_ varchar(64) NO
REV_ int(11) YES
PROC_INST_ID_ varchar(64) YES 流程实例ID,一个流程实例可能产生多个执行流,该字段表示执行流所属的流程实例
BUSINESS_KEY_ varchar(255) YES 启动流程时指定的业务主键
PARENT_ID_ varchar(64) YES 父执行流的ID,一个流程实例可能会产生多个执行流,该字段表示父执行ID
PROC_DEF_ID_ varchar(64) YES 流程定义数据ID
SUPER_EXEC_ varchar(64) YES
ROOT_PROC_INST_ID_ varchar(64) YES
ACT_ID_ varchar(255) YES 当前执行流行为的ID,ID在流程文件中定义
IS_ACTIVE_ tinyint(4) YES 该执行流是否活跃的标识
IS_CONCURRENT_ tinyint(4) YES 执行流是否正在并行
IS_SCOPE_ tinyint(4) YES
IS_EVENT_SCOPE_ tinyint(4) YES
IS_MI_ROOT_ tinyint(4) YES
SUSPENSION_STATE_ int(11) YES 标识流程的中断状态
CACHED_ENT_STATE_ int(11) YES
TENANT_ID_ varchar(255) YES
NAME_ varchar(255) YES
START_TIME_ datetime YES
START_USER_ID_ varchar(255) YES
LOCK_TIME_ timestamp YES
IS_COUNT_ENABLED_ tinyint(4) YES
EVT_SUBSCR_COUNT_ int(11) YES
TASK_COUNT_ int(11) YES
JOB_COUNT_ int(11) YES
TIMER_JOB_COUNT_ int(11) YES
SUSP_JOB_COUNT_ int(11) YES
DEADLETTER_JOB_COUNT_ int(11) YES
VAR_COUNT_ int(11) YES
ID_LINK_COUNT_ int(11) YES

运行时流程人员表( act_ru_identitylink )

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

流程与身份关系,用户或者用户组与流程数据之间的关系

字段名称 字段描述 数据类型 主键 为空 取值说明
ID_ ID_ nvarchar(64) ID_
REV_ 乐观锁 int 乐观锁
GROUP_ID_ 组ID nvarchar(64) 组ID
TYPE_ 类型 nvarchar(255) 备注7
USER_ID_ 用户ID nvarchar(64) 用户ID
TASK_ID_ 节点实例ID nvarchar(64) 节点实例ID
PROC_INST_ID_ 流程实例ID nvarchar(64) 流程实例ID
PROC_DEF_ID_ 流程定义ID nvarchar(255) 流程定义ID
字段 类型 NULL 备注
ID_ varchar(64) NO
REV_ int(11) YES
GROUP_ID_ varchar(255) YES 该关系数据中的用户组ID
TYPE_ varchar(255) YES 该关系数据的类型,assignee(指派人或组),candidate(候选人或组),owner(拥有人)
USER_ID_ varchar(255) YES 关系数据中的用户ID
TASK_ID_ varchar(64) YES 关系数据中的任务ID
PROC_INST_ID_ varchar(64) YES 关系数据中的流程实例ID
PROC_DEF_ID_ varchar(64) YES 关系数据中的流程定义ID

ACT_RU_JOB 运行时定时任务数据表

运行时定时任务数据表( act_ru_job )

字段名称 字段描述 数据类型 主键 为空 取值说明
ID_ 标识 nvarchar(64) 标识
REV_ 版本 int 版本
TYPE_ 类型 nvarchar(255) 类型
LOCK_EXP_TIME_ 锁定释放时间 datetime 锁定释放时间
LOCK_OWNER_ 挂起者 nvarchar(255) 挂起者
EXCLUSIVE_ bit
EXECUTION_ID_ 执行实例ID nvarchar(64) 执行实例ID
PROCESS_INSTANCE_ID_ 流程实例ID nvarchar(64) 流程实例ID
PROC_DEF_ID_ 流程定义ID nvarchar(64) 流程定义ID
RETRIES_ int
EXCEPTION_STACK_ID_ 异常信息ID nvarchar(64) 异常信息ID
EXCEPTION_MSG_ 异常信息 nvarchar(4000) 异常信息
DUEDATE_ 到期时间 datetime 到期时间
REPEAT_ 重复 nvarchar(255) 重复
HANDLER_TYPE_ 处理类型 nvarchar(255) 处理类型
HANDLER_CFG_ nvarchar(4000) 标识
字段 类型 NULL 备注
ID_ varchar(64) NO
REV_ int(11) YES
TYPE_ varchar(255) NO
LOCK_EXP_TIME_ timestamp YES
LOCK_OWNER_ varchar(255) YES
EXCLUSIVE_ tinyint(1) YES
EXECUTION_ID_ varchar(64) YES
PROCESS_INSTANCE_ID_ varchar(64) YES
PROC_DEF_ID_ varchar(64) YES
RETRIES_ int(11) YES
EXCEPTION_STACK_ID_ varchar(64) YES
EXCEPTION_MSG_ varchar(4000) YES
DUEDATE_ timestamp YES
REPEAT_ varchar(255) YES
HANDLER_TYPE_ varchar(255) YES
HANDLER_CFG_ varchar(4000) YES
TENANT_ID_ varchar(255) YES

ACT_RU_TASK 运行时任务节点表

运行时任务节点表( act_ru_task )

流程在运行过程中所产生的任务数据保存在 ACT_RU_TASK 表中

字段名称 字段描述 数据类型 主键 为空 取值说明
ID_ ID_ nvarchar(64) ID_
REV_ 乐观锁 int 乐观锁
EXECUTION_ID_ 执行实例ID nvarchar(64) 执行实例ID
PROC_INST_ID_ 流程实例ID nvarchar(64) 流程实例ID
PROC_DEF_ID_ 流程定义ID nvarchar(64) 流程定义ID
NAME_ 节点定义名称 nvarchar(255) 节点定义名称
PARENT_TASK_ID_ 父节点实例ID nvarchar(64) 父节点实例ID
DESCRIPTION_ 节点定义描述 nvarchar(4000) 节点定义描述
TASK_DEF_KEY_ 节点定义的KEY nvarchar(255) 任务定义的ID
OWNER_ 实际签收人 nvarchar(255) 拥有者(一般情况下为空,只有在委托时才有值)
ASSIGNEE_ 签收人或委托人 nvarchar(255) 签收人或委托人
DELEGATION_ 委托类型 nvarchar(64) 备注8
PRIORITY_ 优先级别 int 优先级别,默认为:50
CREATE_TIME_ 创建时间 datetime 创建时间
DUE_DATE_ 过期时间 datetime 耗时
SUSPENSION_STATE_ 是否挂起 int 1代表激活 2代表挂起
字段 类型 NULL 备注
ID_ varchar(64) NO
REV_ int(11) YES
EXECUTION_ID_ varchar(64) YES 任务所在的执行流ID
PROC_INST_ID_ varchar(64) YES 对应的流程实例ID
PROC_DEF_ID_ varchar(64) YES 对应流程定义数据ID
NAME_ varchar(255) YES 任务名称,在流程文件中定义
PARENT_TASK_ID_ varchar(64) YES
DESCRIPTION_ varchar(4000) YES 任务描述,在流程文件中配置
TASK_DEF_KEY_ varchar(255) YES 任务定义的ID值,在流程文件中定义
OWNER_ varchar(255) YES 任务拥有人,没有做外键关联
ASSIGNEE_ varchar(255) YES 被指派执行该任务的人,没有做外键关联
DELEGATION_ varchar(64) YES
PRIORITY_ int(11) YES 任务优先级数值
CREATE_TIME_ timestamp YES
DUE_DATE_ datetime YES 任务预定日期
CATEGORY_ varchar(255) YES
SUSPENSION_STATE_ int(11) YES
TENANT_ID_ varchar(255) YES
FORM_KEY_ varchar(255) YES
CLAIM_TIME_ datetime YES

ACT_RU_VARIABLE 运行时流程变量数据表

运行时流程变量数据表( act_ru_variable )

Activiti 提供了ACT_RU_VAEIABLE表来存放流程中的参数,这类参数包括流程实例参数、执行流参数和任务参数,参数有可能会有多种类型

字段名称 字段描述 数据类型 主键 为空 取值说明
ID_ ID_ nvarchar(64) 主键标识
REV_ 乐观锁 int 乐观锁
TYPE_ 类型 nvarchar(255) 备注9
NAME_ 名称 nvarchar(255) 变量名称
EXECUTION_ID_ 执行实例ID nvarchar(64) 执行的ID
PROC_INST_ID_ 流程实例ID nvarchar(64) 流程实例ID
TASK_ID_ 节点实例ID nvarchar(64) 节点实例ID(Local)
BYTEARRAY_ID_ 字节表ID nvarchar(64) 字节表的ID(ACT_GE_BYTEARRAY)
DOUBLE_ DOUBLE_ float 存储变量类型为Double
LONG_ LONG_ numeric(19) 存储变量类型为long
TEXT_ TEXT_ nvarchar(4000) ‘存储变量值类型为String 如此处存储持久化对象时,值jpa对象的class
TEXT2_ TEXT2_ nvarchar(4000) 此处存储的是JPA持久化对象时,才会有值。此值为对象ID
字段 类型 NULL 备注
ID_ varchar(64) NO
REV_ int(11) YES
TYPE_ varchar(255) NO 参数类型,该字段值可以为:boolean、bytes、serializable、date、double、integer、jpa-entity、long、null、short、string,这些字段值均为activiti提供,还可以通过扩展来自定义参数类型
NAME_ varchar(255) NO 参数名称
EXECUTION_ID_ varchar(64) YES 该参数对应的执行ID,NULL
PROC_INST_ID_ varchar(64) YES 该参数对应的流程实例ID,NULL
TASK_ID_ varchar(64) YES 如果该参数是任务参数,就需要设置任务ID
BYTEARRAY_ID_ varchar(64) YES 如果参数值是序列化对象,那么可以将该对象作为资源保存到资源表中,该字段保存资源表中的数据ID
DOUBLE_ double YES 参数类型为double的话则值会保存在该字段中
LONG_ bigint(20) YES 参数类型为long的话则值会保存在该字段中
TEXT_ varchar(4000) YES 保存文本类型的参数
TEXT2_ varchar(4000) YES

工作数据表(以下表结构暂时未整理)

ACT_RU_DEADLETTER 无法执行工作表

字段 类型 NULL 备注
ID_ varchar(64) NO
REV_ int(11) YES
TYPE_ varchar(255) NO
EXCLUSIVE_ tinyint(1) YES
EXECUTION_ID_ varchar(64) YES
PROCESS_INSTANCE_ID_ varchar(64) YES
PROC_DEF_ID_ varchar(64) YES
EXCEPTION_STACK_ID_ varchar(64) YES
EXCEPTION_MSG_ varchar(4000) YES
DUEDATE_ timestamp YES
REPEAT_ varchar(255) YES
HANDLER_TYPE_ varchar(255) YES
HANDLER_CFG_ varchar(4000) YES
TENANT_ID_ varchar(255) YES

ACT_RU_SUSPENDED 中断工作表

字段 类型 NULL 备注
ID_ varchar(64) NO
REV_ int(11) YES
TYPE_ varchar(255) NO
EXCLUSIVE_ tinyint(1) YES
EXECUTION_ID_ varchar(64) YES
PROCESS_INSTANCE_ID_ varchar(64) YES
PROC_DEF_ID_ varchar(64) YES
RETRIES_ int(11) YES
EXCEPTION_STACK_ID_ varchar(64) YES
EXCEPTION_MSG_ varchar(4000) YES
DUEDATE_ timestamp YES
REPEAT_ varchar(255) YES
HANDLER_TYPE_ varchar(255) YES
HANDLER_CFG_ varchar(4000) YES
TENANT_ID_ varchar(255) YES

ACT_RU_TIMER_JOB 定时器工作表

字段 类型 NULL 备注
ID_ varchar(64) NO
REV_ int(11) YES
TYPE_ varchar(255) NO
LOCK_EXP_TIME_ timestamp YES
LOCK_OWNER_ varchar(255) YES
EXCLUSIVE_ tinyint(1) YES
EXECUTION_ID_ varchar(64) YES
PROCESS_INSTANCE_ID_ varchar(64) YES
PROC_DEF_ID_ varchar(64) YES
RETRIES_ int(11) YES
EXCEPTION_STACK_ID_ varchar(64) YES
EXCEPTION_MSG_ varchar(4000) YES
DUEDATE_ timestamp YES
REPEAT_ varchar(255) YES
HANDLER_TYPE_ varchar(255) YES
HANDLER_CFG_ varchar(4000) YES
TENANT_ID_ varchar(255) YES

其他

ACT_EVT_LOG 事件日志表

Activiti 事件日志表( act_evt_log )

字段名称 字段描述 数据类型 为空 取值说明
LOG_NR_ 主键 bigint(20) NO 自增长
TYPE_ 类型 varchar(64) YES 类型
PROC_DEF_ID_ 流程定义ID varchar(64) YES 流程定义ID
PROC_INST_ID_ 流程实例ID varchar(64) YES 流程实例ID
EXECUTION_ID_ 执行实例ID varchar(64) YES 执行实例ID
TASK_ID_ 节点实例ID varchar(64) YES 节点实例ID
TIME_STAMP_ 时间戳 timestamp(3) NO 时间戳
USER_ID_ 用户ID varchar(255) YES 用户ID
DATA_ 一些额外参数 longblob YES 例如 IP地址 等。
LOCK_OWNER_ 挂起者 varchar(255) YES 暂时没有用到
LOCK_TIME_ 挂起时间 timestamp(3) YES 暂时没有用到
IS_PROCESSED_ 是否处理过了 tinyint(4) YES 暂时没有用到

ACT_PROCDEF_INFO 流程定义扩展表

关联ACTGE_BYTEARRAY与PROC_DEF_ID表。

字段名称 字段描述 数据类型 为空 取值说明
ID_ 主键 varchar(64) NO 主键ID
PROC_DEF_ID_ 流程定义ID varchar(64) NO 流程定义ID
REV_ 乐观锁 int(11) YES 默认值 NULL,version版本
INFO_JSON_ID_ 主键 varchar(64) YES ACT_GE_BYTEARRAY的ID

DMN规则引擎数据表

决策部署表,act_dmn_deployment

保存决策数据,类似于流程定义部署,每一次部署,可以添加多份决策文件,向部署表中写入一条部署数据。

只启动流程引擎,并不会创建规则引擎表。

字段 注释
NAME_ 部署名称
CATEGORY_ 部署的目录名称
PARENT_DEPLOYMENT_ID_ 父部署ID

决策表,act_dmn_decision_table

可以先将决策看做流程定义,决策文件中保存着决策表,部署时会解析决策文件中的决策模型并将其保存到act_dmn_decision_table中。

字段 注释
KEY_ 决策业务主键
DEPLOYMENT_ID_ 所属的部署数据ID

部署资源表,act_dmn_deployment_resource

规则引擎相关的资源,例如决策文件、图片等,被保存在act_dmn_deployment_resource表中,该表类似于流程引擎的资源表。

字段 注释
NAME_ 资源名称
DEPLOYMENT_ID_ 所属的部署数据ID
RESOURCE_BYTES_ 资源内容,longblob类型。

结语

Activiti6.0的表相较于Activiti5有所不同,但核心的内容实质上还是一样,数据库这一块没有太大差别,对于这么多表,大体过一遍有个印象即可,Activiti6.0的重点仍在核心API。