来源:http://blog.csdn.net/hj7jay/article/details/51302829
Activiti数据表结构
1 Activiti数据库表结构
1.1 数据库表名说明
Activiti工作流总共包含23张数据表,所有的表名默认以“ACT_”开头。
并且表名的第二部分用两个字母表明表的用例,而这个用例也基本上跟Service API匹配。
u ACT_GE_* : “GE”代表“General”(通用),用在各种情况下;
u ACT_HI_* : “HI”代表“History”(历史),这些表中保存的都是历史数据,比如执行过的流程实例、变量、任务,等等。Activit默认提供了4种历史级别:
Ø none: 不保存任何历史记录,可以提高系统性能;
Ø activity:保存所有的流程实例、任务、活动信息;
Ø audit:也是Activiti的默认级别,保存所有的流程实例、任务、活动、表单属性;
Ø full:最完整的历史记录,除了包含audit级别的信息之外还能保存详细,例如:流程变量。
对于几种级别根据对功能的要求选择,如果需要日后跟踪详细可以开启full。
u ACT_ID_* : “ID”代表“Identity”(身份),这些表中保存的都是身份信息,如用户和组以及两者之间的关系。如果Activiti被集成在某一系统当中的话,这些表可以不用,可以直接使用现有系统中的用户或组信息;
u ACT_RE_* : “RE”代表“Repository”(仓库),这些表中保存一些‘静态’信息,如流程定义和流程资源(如图片、规则等);
u ACT_RU_* : “RU”代表“Runtime”(运行时),这些表中保存一些流程实例、用户任务、变量等的运行时数据。Activiti只保存流程实例在执行过程中的运行时数据,并且当流程结束后会立即移除这些数据,这是为了保证运行时表尽量的小并运行的足够快;
1.2 数据库表结构
1.2.1 Activiti数据表清单:
表分类 |
表名 |
解释 |
一般数据 |
通用的流程定义和流程资源 |
|
系统相关属性 |
||
|
历史的流程实例 |
|
历史的流程附件 |
||
历史的说明性信息 |
||
历史的流程运行中的细节信息 |
||
历史的流程运行过程中用户关系 |
||
历史的流程实例 |
||
历史的任务实例 |
||
历史的流程运行中的变量信息 |
||
身份信息-组信息 |
||
身份信息-组信息 |
||
身份信息-用户和组关系的中间表 |
||
身份信息-用户信息 |
||
部署单元信息 |
||
模型信息 |
||
已部署的流程定义 |
||
运行时事件 |
||
运行时流程执行实例 |
||
运行时用户关系信息 |
||
运行时作业 |
||
运行时任务 |
||
运行时变量表 |
1.2.2表名:ACT_GE_BYTEARRAY(通用的流程定义和流程资源)
用来保存部署文件的大文本数据。
保存流程定义图片和xml、Serializable(序列化)的变量,即保存所有二进制数据,特别注意类路径部署时候,不要把svn等隐藏文件或者其他与流程无关的文件也一起部署到该表中,会造成一些错误(可能导致流程定义无法删除)。
ACT_GE_BYTEARRAY(act_ge_bytearray) |
|||||||
是否主键 |
字段名 |
字段描述 |
数据类型 |
可空 |
约束 |
缺省值 |
取值说明 |
是 |
ID_ |
主键ID,资源文件编号,自增长 |
VARCHAR(64) |
|
|||
REV_ |
版本号 |
INT(11) |
是 |
Version |
|||
NAME_ |
部署的文件名称, |
VARCHAR(255) |
是 |
mail.bpmn、mail.png 、mail.bpmn20.xml |
|||
DEPLOYMENT_ID_ |
来自于父表ACT_RE_DEPLOYMENT的主键 |
VARCHAR(64) |
是 |
部署的ID |
|||
BYTES_ |
大文本类型,存储文本字节流 |
LONGBLOB |
是 |
||||
GENERATED_ |
是否是引擎生成。 |
TINYINT(4) |
是 |
0为用户生成 1为Activiti生成 |
1.2.3 表名:ACT_GE_PROPERTY(系统相关属性)
属性数据表。存储这个流程引擎级别的数据。
ACT_GE_PROPERTY(act_ge_property) |
||||||||
是否主键 |
字段名 |
字段描述 |
数据类型 |
长度 |
可空 |
约束 |
缺省值 |
取值说明 |
是 |
NAME_ |
VARCHAR(64) |
64 |
schema.version schema.history next.dbid |
||||
VALUE_ |
属性值 |
VARCHAR(300) |
300 |
是 |
5.* create(5.*) |
|||
REV_INT |
版本号 |
INT(11) |
11 |
是 |
1.2.4表名:ACT_HI_ACTINST(历史节点表)
历史活动信息。这里记录流程流转过的所有节点,与HI_TASKINST不同的是,taskinst只记录usertask内容。
ACT_HI_ACTINST(act_hi_actinst) |
||||||
是否主键 |
字段名 |
字段描述 |
数据类型 |
可空 |
约束 |
取值说明 |
是 |
ID_ |
ID_ |
VARCHAR(64) |
|
||
PROC_DEF_ID_ |
流程定义ID |
VARCHAR(64) |
|
|||
PROC_INST_ID_ |
VARCHAR(64) |
|
||||
EXECUTION_ID_ |
流程执行ID |
VARCHAR(64) |
|
|||
ACT_ID_ |
活动ID |
VARCHAR(255) |
|
节点定义ID |
||
TASK_ID_ |
任务ID |
VARCHAR(64) |
是 |
任务实例ID 其他节点类型实例ID在这里为空 |
||
CALL_PROC_INST_ID_ |
请求流程实例ID |
VARCHAR(64) |
是 |
调用外部流程的流程实例ID' |
||
ACT_NAME_ |
活动名称 |
VARCHAR(255) |
是 |
节点定义名称 |
||
ACT_TYPE_ |
活动类型 |
VARCHAR(255) |
|
如startEvent、userTask |
||
ASSIGNEE_ |
代理人员 |
VARCHAR(64) |
是 |
节点签收人 |
||
START_TIME_ |
开始时间 |
DATETIME |
|
2013-09-15 11:30:00 |
||
END_TIME_ |
结束时间 |
DATETIME |
是 |
2013-09-15 11:30:00 |
||
DURATION_ |
时长,耗时 |
BIGINT(20) |
是 |
毫秒值 |
1.2.5 表名:ACT_HI_ATTACHMENT(附件信息)
ACT_HI_ATTACHMENT(act_hi_attachment) |
||||||||
是否主键 |
字段名 |
字段描述 |
数据类型 |
长度 |
可空 |
约束 |
缺省值 |
取值说明 |
是 |
ID_ |
ID_ |
VARCHAR(64) |
64 |
主键ID |
|||
REV_ |
REV_ |
INT(11) |
11 |
是 |
Version |
|||
USER_ID_ |
用户id |
VARCHAR(255) |
255 |
是 |
用户ID |
|||
NAME_ |
名称 |
VARCHAR(255) |
255 |
是 |
附件名称 |
|||
DESCRIPTION_ |
描述 |
VARCHAR(4000) |
4000 |
是 |
描述 |
|||
TYPE_ |
类型 |
VARCHAR(255) |
255 |
是 |
附件类型 |
|||
TASK_ID_ |
VARCHAR(64) |
64 |
是 |
|||||
PROC_INST_ID_ |
流程实例ID |
VARCHAR(64) |
64 |
是 |
流程实例ID |
|||
URL_ |
连接 |
VARCHAR(4000) |
4000 |
是 |
附件地址 |
|||
CONTENT_ID_ |
内容Id 字节表的ID |
VARCHAR(64) |
64 |
是 |
ACT_GE_BYTEARRAY的ID |
1.2.6 表名:ACT_HI_COMMENT(历史审批意见表)
ACT_HI_COMMENT(act_hi_comment) |
||||||||
是否主键 |
字段名 |
字段描述 |
数据类型 |
长度 |
可空 |
约束 |
缺省值 |
取值说明 |
是 |
ID_ |
ID_ |
VARCHAR(64) |
64 |
主键ID |
|||
TYPE_ |
意见记录类型,为comment时,为处理意见 |
VARCHAR(255) |
255 |
是 |
类型:event(事件) comment(意见) |
|||
TIME_ |
记录时间 |
DATETIME |
填写时间 |
|||||
USER_ID_ |
用户Id |
VARCHAR(255) |
255 |
是 |
填写人 |
|||
TASK_ID_ |
任务Id |
VARCHAR(64) |
64 |
是 |
节点实例ID |
|||
PROC_INST_ID_ |
流程实例Id |
VARCHAR(64) |
64 |
是 |
流程实例ID |
|||
ACTION_ |
行为类型。 |
VARCHAR(255) |
255 |
是 |
值为下列内容中的一种: AddUserLink、DeleteUserLink、AddGroupLink、DeleteGroupLink、AddComment、AddAttachment、DeleteAttachment |
|||
MESSAGE_ |
处理意见 |
VARCHAR(4000) |
4000 |
是 |
用于存放流程产生的信息,比如审批意见 |
|||
FULL_MSG_ |
全部消息 |
LONGBLOB |
是 |
1.2.7表名:ACT_HI_DETAIL(历史详细信息)
历史详情表:流程中产生的变量详细,包括控制流程流转的变量,业务表单中填写的流程需要用到的变量等。
ACT_HI_DETAIL(act_hi_detail) |
||||||||
是否主键 |
字段名 |
字段描述 |
数据类型 |
长度 |
可空 |
约束 |
缺省值 |
取值说明 |
是 |
ID_ |
ID_ |
VARCHAR(64) |
64 |
主键 |
|||
TYPE_ |
数据类型 |
VARCHAR(255) |
255 |
FormProperty, //表单 VariableUpdate //参数 |
||||
PROC_INST_ID_ |
流程实例ID |
VARCHAR(64) |
64 |
是 |
流程实例ID |
|||
EXECUTION_ID_ |
执行实例Id |
VARCHAR(64) |
64 |
是 |
执行实例ID |
|||
TASK_ID_ |
任务Id |
VARCHAR(64) |
64 |
是 |
任务实例ID |
|||
ACT_INST_ID_ |
活动实例Id |
VARCHAR(64) |
64 |
是 |
ACT_HI_ACTINST表的ID |
|||
NAME_ |
名称 |
VARCHAR(255) |
255 |
名称 |
||||
VAR_TYPE_ |
变量类型 |
VARCHAR(255) |
255 |
是 |
参见VAR_TYPE_类型说明 |
|||
REV_ |
REV_ |
INT(11) |
11 |
是 |
Version |
|||
TIME_ |
创建时间 |
DATETIME |
创建时间 |
|||||
BYTEARRAY_ID_ |
字节数组Id |
VARCHAR(64) |
64 |
是 |
ACT_GE_BYTEARRAY表的ID |
|||
DOUBLE_ |
DOUBLE_ |
DOUBLE |
是 |
存储变量类型为Double |
||||
LONG_ |
LONG_ |
BIGINT(20) |
20 |
是 |
存储变量类型为long |
|||
TEXT_ |
值 |
VARCHAR(4000) |
4000 |
是 |
||||
TEXT2_ |
值2 |
VARCHAR(4000) |
4000 |
是 |
此处存储的是JPA持久化对象时,才会有值。此值为对象ID |
备注:VAR_TYPE_类型说明: jpa-entity、boolean、bytes、serializable(可序列化)、自定义type(根据你自身配置)、 CustomVariableType、date、double、integer、long、null、short、string
1.2.8 表名:ACT_HI_IDENTITYLINK (历史流程人员表)
任务参与者数据表。主要存储历史节点参与者的信息。
ACT_HI_IDENTITYLINK(act_hi_identitylink) |
||||||||
是否主键 |
字段名 |
字段描述 |
数据类型 |
长度 |
可空 |
约束 |
缺省值 |
取值说明 |
是 |
ID_ |
ID_ |
VARCHAR(64) |
64 |
ID_ |
|||
GROUP_ID_ |
用户组ID |
VARCHAR(255) |
255 |
是 |
组ID |
|||
TYPE_ |
用户组类型 |
VARCHAR(255) |
255 |
是 |
类型,主要分为以下几种: assignee、 candidate、 owner、starter 、participant |
|||
USER_ID_ |
用户ID |
VARCHAR(255) |
255 |
是 |
用户ID |
|||
TASK_ID_ |
任务Id |
VARCHAR(64) |
64 |
是 |
节点实例ID |
|||
PROC_INST_ID_ |
VARCHAR(64) |
64 |
是 |
流程实例ID |
1.2.9 表名:ACT_HI_PROCINST(历史流程实例信息)核心表
ACT_HI_PROCINST(act_hi_procinst) |
||||||||
是否主键 |
字段名 |
字段描述 |
数据类型 |
长度 |
可空 |
约束 |
缺省值 |
备注 |
是 |
ID_ |
ID_ |
VARCHAR(64) |
64 |
||||
PROC_INST_ID_ |
流程实例ID |
VARCHAR(64) |
64 |
|||||
BUSINESS_KEY_ |
业务Key |
VARCHAR(255) |
255 |
是 |
||||
PROC_DEF_ID_ |
流程定义Id |
VARCHAR(64) |
64 |
|||||
START_TIME_ |
开始时间 |
DATETIME |
||||||
END_TIME_ |
结束时间 |
DATETIME |
是 |
|||||
DURATION_ |
时长 |
BIGINT(20) |
20 |
是 |
||||
START_USER_ID_ |
发起人员Id |
VARCHAR(255) |
255 |
是 |
||||
START_ACT_ID_ |
开始节点 |
VARCHAR(255) |
255 |
是 |
||||
END_ACT_ID_ |
结束节点 |
VARCHAR(255) |
255 |
是 |
||||
SUPER_PROCESS_INSTANCE_ID_ |
超级流程实例Id |
VARCHAR(64) |
64 |
是 |
||||
DELETE_REASON_ |
删除理由 |
VARCHAR(4000) |
4000 |
是 |
1.2.10 表名:ACT_HI_TASKINST(历史任务流程实例信息)核心表
ACT_HI_TASKINST(act_hi_taskinst) |
||||||||
是否主键 |
字段名 |
字段描述 |
数据类型 |
长度 |
可空 |
约束 |
缺省值 |
备注 |
是 |
ID_ |
ID_ |
VARCHAR(64) |
64 |
主键ID |
|||
PROC_DEF_ID_ |
VARCHAR(64) |
64 |
是 |
流程定义ID |
||||
TASK_DEF_KEY_ |
任务定义Key |
VARCHAR(255) |
255 |
是 |
节点定义ID |
|||
PROC_INST_ID_ |
流程实例ID |
VARCHAR(64) |
64 |
是 |
流程实例ID |
|||
EXECUTION_ID_ |
执行ID |
VARCHAR(64) |
64 |
是 |
执行实例ID |
|||
NAME_ |
名称 |
VARCHAR(255) |
255 |
是 |
名称 |
|||
PARENT_TASK_ID_ |
父任务iD |
VARCHAR(64) |
64 |
是 |
父节点实例ID |
|||
DESCRIPTION_ |
描述 |
VARCHAR(4000) |
4000 |
是 |
描述 |
|||
OWNER_ |
实际签收人 任务的拥有者 |
VARCHAR(255) |
255 |
是 |
签收人(默认为空,只有在委托时才有值) |
|||
ASSIGNEE_ |
代理人 |
VARCHAR(255) |
255 |
是 |
签收人或被委托 |
|||
START_TIME_ |
开始时间 |
DATETIME |
开始时间 |
|||||
CLAIM_TIME_ |
提醒时间 |
DATETIME |
是 |
提醒时间 |
||||
END_TIME_ |
结束时间 |
DATETIME |
是 |
结束时间 |
||||
DURATION_ |
时长 |
BIGINT(20) |
20 |
是 |
耗时 |
|||
DELETE_REASON_ |
删除理由 |
VARCHAR(4000) |
4000 |
是 |
删除原因(completed,deleted) |
|||
PRIORITY_ |
优先级 |
INT(11) |
11 |
是 |
优先级别 |
|||
DUE_DATE_ |
应完成时间 |
DATETIME |
是 |
过期时间,表明任务应在多长时间内完成 |
||||
FORM_KEY_ |
表单key |
VARCHAR(255) |
255 |
是 |
desinger节点定义的 form_key属性 |
1.2.11 表名:ACT_HI_VARINST(历史变量信息)
ACT_HI_VARINST(act_hi_varinst) |
||||||||
是否主键 |
字段名 |
字段描述 |
数据类型 |
长度 |
可空 |
约束 |
缺省值 |
备注 |
是 |
ID_ |
ID_ |
VARCHAR(64) |
64 |
ID_ |
|||
PROC_INST_ID_ |
流程实例ID |
VARCHAR(64) |
64 |
是 |
流程实例ID |
|||
EXECUTION_ID_ |
执行ID |
VARCHAR(64) |
64 |
是 |
执行实例ID |
|||
TASK_ID_ |
任务Id |
VARCHAR(64) |
64 |
是 |
任务实例ID |
|||
NAME_ |
名称 |
VARCHAR(255) |
255 |
参数名称(英文) |
||||
VAR_TYPE_ |
变量类型 |
VARCHAR(100) |
100 |
是 |
参见VAR_TYPE_类型说明 |
|||
REV_ |
REV_ |
INT(11) |
11 |
是 |
Version |
|||
BYTEARRAY_ID_ |
字节数组ID |
VARCHAR(64) |
64 |
是 |
ACT_GE_BYTEARRAY表的主键 |
|||
DOUBLE_ |
DOUBLE_ |
DOUBLE |
是 |
存储DoubleType类型的数据 |
||||
LONG_ |
LONG_ |
BIGINT(20) |
20 |
是 |
存储LongType类型的数据 |
|||
TEXT_ |
TEXT_ |
VARCHAR(4000) |
4000 |
是 |
存储变量值类型为String,如此处存储持久化对象时,值jpa对象的class |
|||
TEXT2_ |
TEXT2_ |
VARCHAR(4000) |
4000 |
是 |
1.2.12 表名:ACT_ID_GROUP(用户组表)
用来存储用户组信息。
ACT_ID_GROUP(act_id_group) |
||||||||
是否主键 |
字段名 |
字段描述 |
数据类型 |
长度 |
可空 |
约束 |
缺省值 |
备注 |
是 |
ID_ |
用户组ID |
VARCHAR(64) |
64 |
||||
REV_ |
版本号 |
INT(11) |
11 |
是 |
||||
NAME_ |
用户组描述信息 |
VARCHAR(255) |
255 |
是 |
||||
TYPE_ |
VARCHAR(255) |
255 |
是 |
1.2.13 表名:ACT_ID_INFO(用户扩展信息表)
用户扩展信息表。目前该表未用到。
ACT_ID_INFO(act_id_info) |
||||||||
是否主键 |
字段名 |
字段描述 |
数据类型 |
长度 |
可空 |
约束 |
缺省值 |
备注 |
是 |
ID_ |
VARCHAR(64) |
64 |
|||||
REV_ |
版本号 |
INT(11) |
11 |
是 |
||||
USER_ID_ |
用户ID |
VARCHAR(64) |
64 |
是 |
||||
TYPE_ |
类型 |
VARCHAR(64) |
64 |
是 |
||||
KEY_ |
formINPut名称 |
VARCHAR(255) |
255 |
是 |
||||
VALUE_ |
值 |
VARCHAR(255) |
255 |
是 |
||||
PASSWORD_ |
密码 |
LONGBLOB |
是 |
|||||
PARENT_ID_ |
父节点 |
VARCHAR(255) |
255 |
是 |
1.2.14 表名:ACT_ID_MEMBERSHIP(用户用户组关联表)
用来保存用户的分组信息
ACT_ID_MEMBERSHIP(act_id_membership) |
||||||||
是否主键 |
字段名 |
字段描述 |
数据类型 |
长度 |
可空 |
约束 |
缺省值 |
备注 |
是 |
USER_ID_ |
用户Id |
VARCHAR(64) |
64 |
||||
是 |
GROUP_ID_ |
用户组Id |
VARCHAR(64) |
64 |
1.2.15 表名:ACT_ID_USER(用户信息表)
ACT_ID_USER(act_id_user) |
||||||||
是否主键 |
字段名 |
字段描述 |
数据类型 |
长度 |
可空 |
约束 |
缺省值 |
备注 |
是 |
ID_ |
ID_ |
VARCHAR(64) |
64 |
||||
REV_ |
版本号 |
INT(11) |
11 |
是 |
||||
FIRST_ |
用户名称 |
VARCHAR(255) |
255 |
是 |
||||
LAST_ |
用户姓氏 |
VARCHAR(255) |
255 |
是 |
||||
EMAIL_ |
邮箱 |
VARCHAR(255) |
255 |
是 |
||||
PWD_ |
密码 |
VARCHAR(255) |
255 |
是 |
||||
PICTURE_ID_ |
VARCHAR(64) |
64 |
是 |
1.2.16 表名:ACT_RE_DEPLOYMENT(部署信息表)
用来存储部署时需要持久化保存下来的信息
1.2.17 表名:ACT_RE_MODEL(流程设计模型表)
创建流程的设计模型时,保存在该数据表中。
ACT_RE_MODEL(act_re_model) |
||||||||
是否主键 |
字段名 |
字段描述 |
数据类型 |
长度 |
可空 |
约束 |
缺省值 |
备注 |
是 |
ID_ |
ID_ |
VARCHAR(64) |
64 |
ID_ |
|||
REV_ |
INT(11) |
11 |
是 |
乐观锁 |
||||
NAME_ |
模型的名称: 比如:收文管理 |
VARCHAR(255) |
255 |
是 |
名称 |
|||
KEY_ |
模型的关键字,流程引擎用到。 比如:FTOA_SWGL |
VARCHAR(255) |
255 |
是 |
||||
CATEGORY_ |
类型,用户自己对流程模型的分类。 |
VARCHAR(255) |
255 |
是 |
分类 |
|||
CREATE_TIME_ |
创建时间 |
TIMESTAMP |
是 |
创建时间 |
||||
LAST_UPDATE_TIME_ |
最后修改时间 |
TIMESTAMP |
是 |
最新修改时间 |
||||
VERSION_ |
版本,从1开始。 |
INT(11) |
11 |
是 |
版本 |
|||
META_INFO_ |
数据源信息,比如: {"name":"FTOA_SWGL","revision":1,"description":"丰台财政局OA,收文管理流程"} |
VARCHAR(4000) |
4000 |
是 |
以json格式保存流程定义的信息 |
|||
DEPLOYMENT_ID_ |
部署ID |
VARCHAR(64) |
64 |
是 |
部署ID |
|||
EDITOR_SOURCE_VALUE_ID_ |
VARCHAR(64) |
64 |
是 |
|||||
EDITOR_SOURCE_EXTRA_VALUE_ID_ |
VARCHAR(64) |
64 |
是 |
是 ACT_GE_BYTEARRAY 表中的ID_值。 |
||||
|
TENANT_ID_ |
租户 |
VARCHAR(255) |
255 |
是 |
|
|
|
1.2.18 表名:ACT_RE_PROCDEF(流程定义:解析表)
流程解析表,解析成功了,在该表保存一条记录。业务流程定义数据表
ACT_RE_PROCDEF(act_re_procdef) |
||||||||
是否主键 |
字段名 |
字段描述 |
数据类型 |
长度 |
可空 |
约束 |
缺省 |
备注 |
是 |
ID_ |
流程ID,由“流程编号:流程版本号:自增长ID”组成 |
VARCHAR(64) |
64 |
ID_ |
|||
REV_ |
版本号 |
INT(11) |
11 |
是 |
乐观锁 |
|||
CATEGORY_ |
流程命名空间(该编号就是流程文件targetNamespace的属性值) |
VARCHAR(255) |
255 |
是 |
流程定义的Namespace就是类别 |
|||
NAME_ |
流程名称(该编号就是流程文件process元素的name属性值) |
VARCHAR(255) |
255 |
是 |
名称 |
|||
KEY_ |
流程编号(该编号就是流程文件process元素的id属性值) |
VARCHAR(255) |
255 |
流程定义ID |
||||
VERSION_ |
流程版本号(由程序控制,新增即为1,修改后依次加1来完成的) |
INT(11) |
11 |
版本 |
||||
DEPLOYMENT_ID_ |
部署编号 |
VARCHAR(64) |
64 |
是 |
部署表ID |
|||
RESOURCE_NAME_ |
资源文件名称 |
VARCHAR(4000) |
4000 |
是 |
流程bpmn文件名称 |
|||
DGRM_RESOURCE_NAME_ |
图片资源文件名称 |
VARCHAR(4000) |
4000 |
是 |
png流程图片名称 |
|||
DESCRIPTION_ |
描述信息 |
VARCHAR(4000) |
4000 |
是 |
描述 |
|||
HAS_START_FORM_KEY_ |
是否从key启动 |
TINYINT(4) |
4 |
是 |
start节点是否存在formKey 0否 1是 |
|||
SUSPENSION_STATE_ |
是否挂起 |
INT(11) |
11 |
是 |
注:此表和ACT_RE_DEPLOYMENT是多对一的关系,即,一个部署的bar包里可能包含多个流程定义文件,每个流程定义文件都会有一条记录在ACT_RE_PROCDEF表内,每个流程定义的数据,都会对于ACT_GE_BYTEARRAY表内的一个资源文件和PNG图片文件。和ACT_GE_BYTEARRAY的关联是通过程序用ACT_GE_BYTEARRAY.NAME与ACT_RE_PROCDEF.NAME_完成的,在数据库表结构中没有体现。
1.2.19 表名:ACT_RU_EVENT_SUBSCR(运行时事件)
ACT_RU_EVENT_SUBSCR(act_ru_event_subscr) |
||||||||
是否主键 |
字段名 |
字段描述 |
数据类型 |
长度 |
可空 |
约束 |
缺省值 |
备注 |
是 |
ID_ |
ID |
VARCHAR(64) |
64 |
||||
REV_ |
版本号 |
INT(11) |
11 |
是 |
||||
EVENT_TYPE_ |
事件类型 |
VARCHAR(255) |
255 |
|||||
EVENT_NAME_ |
事件名称 |
VARCHAR(255) |
255 |
是 |
||||
EXECUTION_ID_ |
流程执行ID |
VARCHAR(64) |
64 |
是 |
||||
PROC_INST_ID_ |
流程实例ID |
VARCHAR(64) |
64 |
是 |
||||
ACTIVITY_ID_ |
活动ID |
VARCHAR(64) |
64 |
是 |
||||
CONFIGURATION_ |
配置信息 |
VARCHAR(255) |
255 |
是 |
||||
CREATED_ |
创建时间 |
TIMESTAMP |
CURRENT_TIMESTAMP |
1.2.20 表名:ACT_RU_EXECUTION(运行时流程执行实例)
核心,我的代办任务查询表
ACT_RU_EXECUTION(act_ru_execution) |
||||||||
是否主键 |
字段名 |
字段描述 |
数据类型 |
长度 |
可空 |
约束 |
缺省值 |
备注 |
是 |
ID_ |
ID_ |
VARCHAR(64) |
64 |
ID_ |
|||
REV_ |
版本号 |
INT(11) |
11 |
是 |
乐观锁 |
|||
PROC_INST_ID_ |
流程实例编号 |
VARCHAR(64) |
64 |
是 |
流程实例ID |
|||
BUSINESS_KEY_ |
业务编号 |
VARCHAR(255) |
255 |
是 |
业务主键ID |
|||
PARENT_ID_ |
父执行流程 |
VARCHAR(64) |
64 |
是 |
父节点实例ID |
|||
PROC_DEF_ID_ |
流程定义Id |
VARCHAR(64) |
64 |
是 |
流程定义ID |
|||
SUPER_EXEC_ |
VARCHAR(64) |
64 |
是 |
|||||
ACT_ID_ |
实例id |
VARCHAR(255) |
255 |
是 |
ACT_HI_ACTINST中ID |
|||
IS_ACTIVE_ |
激活状态 |
TINYINT(4) |
4 |
是 |
是否存活,0挂起,1正在执行 |
|||
IS_CONCURRENT_ |
并发状态 |
TINYINT(4) |
4 |
是 |
是否为并行(true/false) |
|||
IS_SCOPE_ |
|
TINYINT(4) |
4 |
是 |
|
|||
IS_EVENT_SCOPE_ |
|
TINYINT(4) |
4 |
是 |
|
|||
SUSPENSION_STATE_ |
暂停状态_ |
INT(11) |
11 |
是 |
挂起状态 1激活 2挂起 |
|||
CACHED_ENT_STATE_ |
缓存结束状态_ |
INT(11) |
11 |
是 |
1.2.21 表名:ACT_RU_IDENTITYLINK(身份联系)
主要存储当前节点参与者的信息,任务参与者数据表。
ACT_RU_IDENTITYLINK(act_ru_identitylink) |
||||||||
是否主键 |
字段名 |
字段描述 |
数据类型 |
长度 |
可空 |
约束 |
缺省值 |
取值说明 |
是 |
ID_ |
ID_ |
VARCHAR(64) |
64 |
|
|||
REV_ |
版本号 |
INT(11) |
11 |
是 |
|
|||
GROUP_ID_ |
用户组ID |
VARCHAR(255) |
255 |
是 |
|
|||
TYPE_ |
用户组类型 |
VARCHAR(255) |
255 |
是 |
owner、starter、participant。即:受让人,候选人,所有者、起动器、参与者 |
|||
USER_ID_ |
用户ID |
VARCHAR(255) |
255 |
是 |
|
|||
TASK_ID_ |
任务Id |
VARCHAR(64) |
64 |
是 |
|
|||
PROC_INST_ID_ |
流程实例ID |
VARCHAR(64) |
64 |
是 |
|
|||
PROC_DEF_ID_ |
流程定义Id |
VARCHAR(64) |
64 |
是 |
|
1.2.22 表名:ACT_RU_JOB(运行中的任务)
运行时定时任务数据表
ACT_RU_JOB(act_ru_job) |
||||||||
是否主键 |
字段名 |
字段描述 |
数据类型 |
长度 |
可空 |
约束 |
缺省值 |
取值说明 |
是 |
ID_ |
ID_ |
VARCHAR(64) |
64 |
标识 |
|||
REV_ |
版本号 |
INT(11) |
11 |
是 |
版本 |
|||
TYPE_ |
TYPE_ |
VARCHAR(255) |
255 |
类型 |
||||
LOCK_EXP_TIME_ |
LOCK_EXP_TIME_ |
TIMESTAMP |
是 |
锁定释放时间 |
||||
LOCK_OWNER_ |
LOCK_OWNER_ |
VARCHAR(255) |
255 |
是 |
挂起者 |
|||
EXCLUSIVE_ |
EXCLUSIVE_ |
TINYINT(1) |
1 |
是 |
|
|||
EXECUTION_ID_ |
EXECUTION_ID_ |
VARCHAR(64) |
64 |
是 |
执行实例ID |
|||
PROCESS_INSTANCE_ID_ |
PROCESS_INSTANCE_ID_ |
VARCHAR(64) |
64 |
是 |
流程实例ID |
|||
PROC_DEF_ID_ |
PROC_DEF_ID_ |
VARCHAR(64) |
64 |
是 |
流程定义ID |
|||
RETRIES_ |
RETRIES_ |
INT(11) |
11 |
是 |
|
|||
EXCEPTION_STACK_ID_ |
EXCEPTION_STACK_ID_ |
VARCHAR(64) |
64 |
是 |
异常信息ID |
|||
EXCEPTION_MSG_ |
EXCEPTION_MSG_ |
VARCHAR(4000) |
4000 |
是 |
异常信息 |
|||
DUEDATE_ |
DUEDATE_ |
TIMESTAMP |
是 |
到期时间 |
||||
REPEAT_ |
REPEAT_ |
VARCHAR(255) |
255 |
是 |
重复 |
|||
HANDLER_TYPE_ |
HANDLER_TYPE_ |
VARCHAR(255) |
255 |
是 |
处理类型 |
|||
HANDLER_CFG_ |
HANDLER_CFG_ |
VARCHAR(4000) |
4000 |
是 |
标识 |
1.2.23 表名:ACT_RU_TASK(运行时任务数据表)
(执行中实时任务)代办任务查询表
ACT_RU_TASK(act_ru_task) |
||||||||
是否主键 |
字段名 |
字段描述 |
数据类型 |
长度 |
可空 |
约束 |
缺省值 |
取值说明 |
是 |
ID_ |
ID_ |
VARCHAR(64) |
64 |
ID_ |
|||
REV_ |
版本号 |
INT(11) |
11 |
是 |
乐观锁 |
|||
EXECUTION_ID_ |
VARCHAR(64) |
64 |
是 |
执行实例ID |
||||
PROC_INST_ID_ |
流程实例ID(外键PROC_INST_ID_) |
VARCHAR(64) |
64 |
是 |
流程实例ID |
|||
PROC_DEF_ID_ |
流程定义ID |
VARCHAR(64) |
64 |
是 |
流程定义ID |
|||
NAME_ |
任务名称 |
VARCHAR(255) |
255 |
是 |
节点定义名称 |
|||
PARENT_TASK_ID_ |
父节任务ID |
VARCHAR(64) |
64 |
是 |
父节点实例ID |
|||
DESCRIPTION_ |
任务描述 |
VARCHAR(4000) |
4000 |
是 |
节点定义描述 |
|||
TASK_DEF_KEY_ |
任务定义key |
VARCHAR(255) |
255 |
是 |
任务定义的ID |
|||
OWNER_ |
所属人(老板) |
VARCHAR(255) |
255 |
是 |
拥有者(一般情况下为空,只有在委托时才有值) |
|||
ASSIGNEE_ |
代理人员 (受让人) |
VARCHAR(255) |
255 |
是 |
签收人或委托人 |
|||
DELEGATION_ |
代理团 |
VARCHAR(64) |
64 |
是 |
委托类型,DelegationState分为两种:PENDING,RESOLVED。如无委托则为空 |
|||
PRIORITY_ |
优先权 |
INT(11) |
11 |
是 |
优先级别,默认为:50 |
|||
CREATE_TIME_ |
创建时间 |
TIMESTAMP |
创建时间,CURRENT_TIMESTAMP |
|||||
DUE_DATE_ |
执行时间 |
DATETIME |
是 |
耗时 |
||||
SUSPENSION_STATE_ |
暂停状态 |
INT(11) |
11 |
是 |
1代表激活 2代表挂起 |
1.2.24 表名:ACT_RU_VARIABLE(运行时流程变量数据表)
ACT_RU_VARIABLE(act_ru_variable) |
||||||||
是否主键 |
字段名 |
字段描述 |
数据类型 |
长度 |
可空 |
约束 |
缺省值 |
备注 |
是 |
ID_ |
ID_ |
VARCHAR(64) |
64 |
主键标识 |
|||
REV_ |
版本号 |
INT(11) |
11 |
是 |
乐观锁 |
|||
TYPE |
编码类型 |
VARCHAR(255) |
255 |
|||||
NAME_ |
变量名称 |
VARCHAR(255) |
255 |
变量名称 |
||||
EXECUTION_ID_ |
执行实例ID |
VARCHAR(64) |
64 |
是 |
执行的ID |
|||
PROC_INST_ID_ |
流程实例Id |
VARCHAR(64) |
64 |
是 |
流程实例ID |
|||
TASK_ID_ |
任务id |
VARCHAR(64) |
64 |
是 |
节点实例ID(Local) |
|||
BYTEARRAY_ID_ |
字节组ID |
VARCHAR(64) |
64 |
是 |
字节表的ID (ACT_GE_BYTEARRAY) |
|||
DOUBLE_ |
DOUBLE_ |
DOUBLE |
是 |
存储变量类型为Double |
||||
LONG_ |
LONG_ |
BIGINT(20) |
20 |
是 |
存储变量类型为long |
|||
TEXT_ |
TEXT_ |
VARCHAR(4000) |
4000 |
是 |
存储变量值类型为String 如此处存储持久化对象时,值jpa对象的class |
|||
TEXT2_ |
TEXT2_ |
VARCHAR(4000) |
4000 |
是 |
此处存储的是JPA持久化对象时,才会有值。此值为对象ID |
2 Activiti中主要对象的关系
本节主要介绍在工作流中出现的几个对象及其之间的关系,以及在Activiti中各个对象是如何关联的。
在开始之前先看看下图,对整个对象结构有个了解,再结合实例详细介绍理解。
图1.Activiti中几个对象之间的关系
我们模拟一个请假的流程进行分析介绍,该流程主要包含以下几个步骤:
u 员工申请请假
u 部门领导审批
u 人事审批
u 员工销假
ProcessInstance对象
员工开始申请请假流程,通过runtimeService.startProcessInstance()方法启动,引擎会创建一个流程实例(ProcessInstance)。
简单来说流程实例就是根据一次(一条)业务数据用流程驱动的入口,两者之间是一对一的关系。流程引擎会创建一条数据到ACT_RU_EXECUTION表,同时也会根据history的级别决定是否查询相同的历史数据到ACT_HI_PROCINST表。
启动完流程之后业务和流程已经建立了关联关系,第一步结束。
启动流程和业务关联区别:
u 对于自定义表单来说启动的时候会传入businessKey作为业务和流程的关联属性
u 对于动态表单来说不需要使用businessKey关联,因为所有的数据都保存在引擎的表中
u 对于外部表单来说businessKey是可选的,但是一般不会为空,和自定义表单类似
Execution对象
对于初学者来说,最难理解的地方就是ProcessInstance与Execution之间的关系,要分两种情况说明。Execution的含义就是一个流程实例(ProcessInstance)具体要执行的过程对象。
不过在说明之前先声明两者的对象映射关系:
ProcessInstance(1)→ Execution(N),(其中N>=1)。
1) 值相等的情况:
除了在流程中启动的子流程之外,流程启动之后在表ACT_RU_EXECUTION中的字段ID_和PROC_INST_ID_字段值是相同的。
图2.ID_和PROC_INST_ID_相等
2) 值不相等的情况:
不相等的情况目前只会出现在子流程中(包含:嵌套、引入),例如一个购物流程中除了下单、出库节点之外可能还有一个付款子流程,在实际企业应用中付款流程通常是作为公用的,所以使用子流程作为主流程(购物流程)的一部分。
当任务到达子流程时引擎会自动创建一个付款流程,但是这个流程有一个特殊的地方,在数据库可以直观体现,如下图。
图3.ID_和PROC_INST_ID_不相等
上图中有两条数据,第二条数据(嵌入的子流程)的PARENT_ID_等于第一条数据的ID_和PROC_INST_ID_,并且两条数据的PROC_INST_ID_相同。
上图中还有一点特殊的地方,字段IS_ACTIVE_的值分别是0和1,说明正在执行子流程主流程挂起。
关于excution和processInstance之间的关系,Google搜索了一番,下面的这样一段话,让我觉得比较合理
A processinstance is what is logically executed. The execution what is actually executed. An execution without a parent is a root execution and 'equal' to the processinstance (even in id). Each time e.g. A parallel gateway (fork) is encountered, an execution gets child executions which are e.g. 'joined' again at a next gateway.
Task对象
前面说了ProcessInstance和业务是一对一关联的,和业务数据最亲密;而Task则和用户最亲密的(UserTask),用户每天的待办事项就是一个个的Task对象。
从图1中看得出Execution和Task是一对一关系,Task可以是任何类型的Task实现,可以是用户任务(UserTask)、Java服务(JavaServiceTask)等,在实际流程运行中只不过面向对象不同,用户任务(UserTask)需要有人为参与完成(complete),Java服务需要由系统自动执行(execution)。
图4. 表ACT_RU_TASK
Task是在流程定义中看到的最大单位,每当一个Task完成的时候引擎会把当前的任务移动到历史中,然后插入下一个任务插入到表ACT_RU_TASK中。结合请假流程来说就是让用户点击“完成”按钮提交当前任务是的动作,引擎自动根据任务的顺序流或者排他分支判断走向。
HistoryActivity(历史活动)
图5. 表ACT_HI_ACTINST
Activity包含了流程中所有的活动数据,例如开始事件(图5表中的第1条数据)、各种分支(排他分支、并行分支等,图5表中的第2条数据)、以及刚刚提到的Task执行记录(如图5表中的第3、4条数据)。
有些人认为Activity和Task是多对一关系,其实不是,从上图中可以看出来根本没有Task相关的字段。
结合请假流程来说,如Task中提到的当完成流程的时候所有下一步要执行的任务(包括各种分支)都会创建一个Activity记录到数据库中。例如领导审核节点点击“同意”按钮就会流转到人事审批节点,如果“驳回”那就流转到调整请假内容节点,每一次操作的Task背后实际记录更详细的活动(Activity)。
相关推荐
Activiti数据库表结构介绍 Activiti是一个流程引擎,用于管理和执行业务流程。为了存储和管理流程相关数据,Activiti使用了多个数据库表来实现。这篇文章将简要概括Activiti数据库表结构,对于初入Activiti的同学来...
本文将详细介绍Activiti数据库表结构的组成部分、各个表的作用、字段解释等。 Activiti数据库表结构概述 Activiti数据库表结构共有23张表,所有表名默认以“ACT_”开头。表名的第二部分用两个字母表明表的用例,...
### Activiti工作流数据库表结构说明 #### 一、数据库表名说明 Activiti工作流引擎作为一款开源的业务流程管理(Business Process Management, BPM)框架,为开发人员提供了强大的流程设计、部署、运行和监控等功能...
"Activiti数据库表结构详解" Activiti 工作流的数据库表结构是一个复杂的系统,总共包含 23 张数据表,所有的表名默认以“ACT_”开头。这些表名的第二部分用两个字母表明表的用例,而这个用例也基本上跟 Service ...
Activiti-5.21数据库表结构详解(共25张表) 工作流的应用越来越广泛,而activiti是公认的现阶段最好的工作流框架之一,详细了解activiti的库表结构有助于您更好的掌握学习工作流框架,共享本资源以供广大编程从业人员...
Activiti 5.22.0数据库表结构添加中文注释MySQL脚本,内含3个脚本,分别是: 1、21张表全部表和字段中文注释和取值说明建表脚本(单SQL文件) 2、21张表全部表和字段中文注释和取值说明添加注释脚本(单SQL文件) 3...
activiti5.8数据库表结构图activiti5.8数据库表结构图
activiti5数据库表结构,activiti5数据库表结构activiti5数据库表结构
以下是主要的Activiti数据库表及其功能的详细说明: 1. **ACT_GE_BYTEARRAY**:这个表存储流程定义和流程资源,如流程图、XML流程定义文件等。每个流程定义或资源都有一个唯一的ID,用于在运行时引用。 2. **ACT_...
“activiti表结构.doc”文档很可能详细列出了Activiti数据库中的核心表结构。这些表是Activiti引擎运行的基础,它们存储了流程实例、任务、变量、事件等各种信息。主要的表包括: 1. `ACT_GE_PROPERTY`:存储...
2. **主要数据库表结构**: - `ACT_GE_PROPERTY`:存储流程引擎级别的属性数据,包括名称、值和版本号。 - `ACT_GE_BYTEARRAY`:用于存储部署文件的大文本数据,如流程定义XML和流程图PNG。 - `ACT_RE_DEPLOYMENT...
以下是对Activiti数据库表结构的详细说明: 1. **命名规则**: Activiti数据库中的所有表名均以`ACT_`开头,便于识别和管理。表名的第二部分是两个字符的标识符,对应不同的数据类型: - `RE_`:Repository,表示...
总的来说,了解Activiti的数据库表结构有助于更好地管理和调试工作流引擎,以及设计和优化业务流程。通过这些表,可以跟踪流程的执行状态、历史记录,以及用户和权限信息,从而实现流程的自动化和优化。
Activiti工作流数据库表结构详解 Activiti是一款基于Java的开源工作流引擎,可以实现业务流程自动化和工作流管理。为了更好地理解Activiti的工作机制,我们需要了解Activiti工作流数据库表结构。 Activiti工作流...
下面将结合文件内容介绍Activiti数据库中关键表的作用和它们之间的关系。 1. ACT_GE_*系列表 - ACT_GE_PROPERTY:用于存储Activiti引擎的通用配置信息,如版本号、数据库表前缀等。 - ACT_GE_BYTEARRAY:用于存储...
#### 二、数据库表结构详解 ##### 1. act_ge_bytearray 二进制数据表 **简要描述**:此表用于保存流程定义相关的图像文件、XML文件以及序列化的变量等所有类型的二进制数据。特别需要注意的是,在部署类路径时,应...
数据库表结构是Activiti在运行时管理和存储流程实例、变量、任务等信息的基础。在Activiti的数据库设计中,表名通常以特定的前缀开头,便于理解和分类。 1. **表名前缀**: - **ACT_RE_**: 这些表与repository相关...
对Activiti数据库表结构的深入理解有助于开发者和系统管理员更好地维护和优化工作流系统。通过对这些表进行查询、更新、插入和删除操作,可以实现对工作流的高级管理,包括流程监控、任务分配、流程优化等。同时,对...