activiti7版本有25张表,而activiti6有28张表,activiti5有27张表,绝大部分的表和字段的含义都是一样的,所以本次整理的activiti7数据表和字段的解释,也同样适用于activiti6和5。
1、总览
可分为四大类:
act_re_*:re代表Repository(仓库),存储流程部署、流程模型和流程定义相关的数据。对应的操作service为RepositoryService
act_ru_*:ru代表runtime(运行时),流程从启动到结束过程中的所有运行时数据,全放在运行时表中。对应的操作service为RuntimeService和TaskService
act_hi_*:hi代表history(历史),记录所有的历史信息,其中的表名和字段名,与运行时表相对应。对应的操作service为HistoryService
act_ge_*:ge代表general(通用),记录一些通用的数据,如.bpmn文件内容。对应的操作service为ManagementService。
常用的数据表:
- act_re_model
- act_re_deployment
- act_ge_bytearray
- act_re_procdef
- act_ru_execution
- act_ru_identitylink
- act_ru_task
- act_ru_variable
- act_hi_actinst
- act_hi_comment
- act_hi_identitylink
- act_hi_procinst
- act_hi_taskinst
- act_hi_varinst
2、具体
act_re_model:流程模型表
描述:存储每个流程最新的一个流程模型。可以通过api来手动操作(Model)
Field | Type | Comment |
ID_ | varchar(64) | 流程模型ID |
REV_ | int(11) | 数据版本,乐观锁 |
NAME_ | varchar(255) | 模型名称 |
KEY_ | varchar(255) | 模型key |
CATEGORY_ | varchar(255) | 模型类别 |
CREATE_TIME_ | timestamp(3) | 创建时间 |
LAST_UPDATE_TIME_ | timestamp(3) | 模型最后一次修改时间 |
VERSION_ | int(11) | 当前版本 |
META_INFO_ | varchar(4000) | 元信息,可用json存储 |
DEPLOYMENT_ID_ | varchar(64) | 外键关联部署表ID |
EDITOR_SOURCE_VALUE_ID_ | varchar(64) | 外键关联act_ge_bytearray表的bpmn资源ID |
EDITOR_SOURCE_EXTRA_VALUE_ID_ | varchar(64) | 外键关联act_ge_bytearray表的png资源ID |
TENANT_ID_ | varchar(255) | 租户ID |
注意,这里的EDITOR_SOURCE_VALUE_ID_和EDITOR_SOURCE_EXTRA_VALUE_ID_,不是二进制资源表中和部署记录一一对应的blob的id,而是在此基础上增加内容后产生的两条新的二进制资源。
act_ge_bytearray:二进制资源表
描述:用于存储用户画的流程图的原始bpmn文件和图片文件
Field | Type | Comment |
ID_ | varchar(64) | ID |
REV_ | int(11) | 数据版本,乐观锁 |
NAME_ | varchar(255) | 资源名称,和流程定义的name一样 |
DEPLOYMENT_ID_ | varchar(64) | 对应流程部署ID,1对1关系 |
BYTES_ | longblob | 二进制资源,bpmn或图片等 |
GENERATED_ | tinyint(4) | 0为用户生成,1为Activiti生成 |
act_re_deployment :流程部署表
描述: 存储流程部署记录。同样的key不一样的内容多次部署产生多条部署记录。
Field | Type | Comment |
ID_ | varchar(64) | 部署ID |
NAME_ | varchar(255) | 部署的名字,通过api设置的 |
CATEGORY_ | varchar(255) | 分类,通过api设置的 |
KEY_ | varchar(255) | 唯一标识,通过api设置的 |
TENANT_ID_ | varchar(255) | 租户ID |
DEPLOY_TIME_ | timestamp(3) | 部署时间 |
ENGINE_VERSION_ | varchar(255) | 版本 |
值得注意的是:
当开发的流程功能,由开发环境上线到生产环境时,迁移流程图时移动上面三个表中相应流程的数据就行了。
act_re_procdef:流程定义表
Field | Type | Comment |
ID_ | varchar(64) | 流程ID,由流程key:版本:自增ID组成 |
REV_ | int(11) | 数据版本,乐观锁 |
CATEGORY_ | varchar(255) | 类别,自动生成的 |
NAME_ | varchar(255) | 画流程图时的name |
KEY_ | varchar(255) | 画流程图时的ID |
VERSION_ | int(11) | 流程的版本 |
DEPLOYMENT_ID_ | varchar(64) | 管理流程部署的ID |
RESOURCE_NAME_ | varchar(4000) | bpmn文件名称 |
DGRM_RESOURCE_NAME_ | varchar(4000) | 图片名称 |
DESCRIPTION_ | varchar(4000) | 流程描述 |
HAS_START_FORM_KEY_ | tinyint(4) | 是否从key启动,0否1是 |
HAS_GRAPHICAL_NOTATION_ | tinyint(4) | |
SUSPENSION_STATE_ | int(11) | 是否挂起,1激活 2挂起 |
TENANT_ID_ | varchar(255) | 租户ID |
ENGINE_VERSION_ | varchar(255) | 所属流程引擎版本 |
备注:
VERSION_ 字段代表流程的版本,从1开始。当部署流程图时,如果流程ID(流程定义key)一样,但是bpmn内容发生了改变,则部署时会部署成功,出现VERSION_ 字段为2的流程定义版本,启动流程时如果是 startProcessInstanceByKey 启动的,则会用最新的流程定义执行流程。所以当流程发生改变,又不想删除旧流程的流程数据时,就可以让流程ID一样,流程图不一样就行了。
act_procdef_info:流程定义信息表
Field | Type | Comment |
ID_ | varchar(64) | 唯一ID |
PROC_DEF_ID_ | varchar(64) | 流程定义的ID |
REV_ | int(11) | 数据版本,乐观锁 |
INFO_JSON_ID_ | varchar(64) | 流程定义相关json信息的ID |
act_ge_property:引擎属性表
描述:除了activiti7自带的系统属性,还能自定义添加,然后,通过managementService.getProperties();获取
Field | Type | Comment |
NAME_ | varchar(64) | key |
VALUE_ | varchar(300) | value |
REV_ | int(11) | 数据版本,乐观锁 |
act_ru_execution:运行时执行实例表
描述:
Field | Type | Comment |
ID_ | varchar(64) | ID |
REV_ | int(11) | 数据版本,乐观锁 |
PROC_INST_ID_ | varchar(64) | 流程实例ID |
BUSINESS_KEY_ | varchar(255) | 关联业务系统的业务key |
PARENT_ID_ | varchar(64) | 父ID,比如执行实例的parentId就是流程实例ID |
PROC_DEF_ID_ | varchar(64) | 所属流程定义ID |
SUPER_EXEC_ | varchar(64) | |
ROOT_PROC_INST_ID_ | varchar(64) | 根流程实例ID |
ACT_ID_ | varchar(255) | 正在活跃的节点ID,节点可认为是事件或任务,ID对应画图时的ID,节点详细信息保存在act_hi_actinst里 |
IS_ACTIVE_ | tinyint(4) | 是否激活,1激活,2挂起 |
IS_CONCURRENT_ | tinyint(4) | 是否是并行分支,1是0否 |
IS_SCOPE_ | tinyint(4) | |
IS_EVENT_SCOPE_ | tinyint(4) | |
IS_MI_ROOT_ | tinyint(4) | |
SUSPENSION_STATE_ | int(11) | 暂停状态,1是0否 |
CACHED_ENT_STATE_ | int(11) | 缓存结束状态 |
TENANT_ID_ | varchar(255) | 租户ID |
NAME_ | varchar(255) | 流程实例名称 |
START_TIME_ | datetime(3) | 流程开始时间 |
START_USER_ID_ | varchar(255) | 开始于哪个用户 |
LOCK_TIME_ | timestamp(3) | 锁住的时间,毫秒 |
IS_COUNT_ENABLED_ | tinyint(4) | 是否能够计数 |
EVT_SUBSCR_COUNT_ | int(11) | |
TASK_COUNT_ | int(11) | 任务数量 |
JOB_COUNT_ | int(11) | 作业数量 |
TIMER_JOB_COUNT_ | int(11) | 定时作业数量,activiti自带定时作业功能 |
SUSP_JOB_COUNT_ | int(11) | 挂起的作业数量 |
DEADLETTER_JOB_COUNT_ | int(11) | 死亡的作业数量 |
VAR_COUNT_ | int(11) | 变量的数量 |
ID_LINK_COUNT_ | int(11) |
act_ru_identitylink:运行时身份连接表
描述:存储运行时流程的参与者身份连接
Field | Type | Comment |
ID_ | varchar(64) | ID |
REV_ | int(11) | 数据版本,乐观锁 |
GROUP_ID_ | varchar(255) | 候选人组ID |
TYPE_ | varchar(255) | 用户类型,有assignee、candidate、owner、starter、participant。即:受让人,候选人,所有者、起动器、参与者 |
USER_ID_ | varchar(255) | 用户ID |
TASK_ID_ | varchar(64) | 任务ID |
PROC_INST_ID_ | varchar(64) | 流程实例ID |
PROC_DEF_ID_ | varchar(64) | 流程定义ID |
act_ru_task:运行时任务表
描述:
Field | Type | Comment |
ID_ | varchar(64) | ID |
REV_ | int(11) | 数据版本,乐观锁 |
EXECUTION_ID_ | varchar(64) | 执行实例ID |
PROC_INST_ID_ | varchar(64) | 流程实例ID |
PROC_DEF_ID_ | varchar(64) | 流程定义ID |
NAME_ | varchar(255) | 任务名称 |
PARENT_TASK_ID_ | varchar(64) | 父任务ID |
DESCRIPTION_ | varchar(4000) | 任务描述,对应画图时的document。 |
TASK_DEF_KEY_ | varchar(255) | 任务的key,画图时任务的id对应 |
OWNER_ | varchar(255) | 任务的拥有者 |
ASSIGNEE_ | varchar(255) | 任务的办理人 |
DELEGATION_ | varchar(64) | 任务委托状态。任务被委托时,为PENDING,委托任务被解决后为RESOLVED |
PRIORITY_ | int(11) | 优先级,默认为50 |
CREATE_TIME_ | timestamp(3) | 创建时间 |
DUE_DATE_ | datetime(3) | 执行耗时 |
CATEGORY_ | varchar(255) | 任务类别 |
SUSPENSION_STATE_ | int(11) | 挂起状态,1激活,2挂起 |
TENANT_ID_ | varchar(255) | 租户ID |
FORM_KEY_ | varchar(255) | |
CLAIM_TIME_ | datetime(3) | 任务被拾取的时间 |
act_ru_timer_job:运行时定时作业表
描述:存储通过activiti发起的定时作业的信息。
Field | Type | Comment |
ID_ | varchar(64) | |
REV_ | int(11) | 数据版本,乐观锁 |
TYPE_ | varchar(255) | |
LOCK_EXP_TIME_ | timestamp(3) | |
LOCK_OWNER_ | varchar(255) | |
EXCLUSIVE_ | tinyint(1) | |
EXECUTION_ID_ | varchar(64) | |
PROCESS_INSTANCE_ID_ | varchar(64) | |
PROC_DEF_ID_ | varchar(64) | |
RETRIES_ | int(11) | |
EXCEPTION_STACK_ID_ | varchar(64) | |
EXCEPTION_MSG_ | varchar(4000) | |
DUEDATE_ | timestamp(3) | |
REPEAT_ | varchar(255) | |
HANDLER_TYPE_ | varchar(255) | |
HANDLER_CFG_ | varchar(4000) | |
TENANT_ID_ | varchar(255) |
act_ru_variable:运行时流程变量表
描述:
Field | Type | Comment |
ID_ | varchar(64) | 变量ID |
REV_ | int(11) | 数据版本,乐观锁 |
TYPE_ | varchar(255) | 变量类型,如string,int等 |
NAME_ | varchar(255) | 变量key |
EXECUTION_ID_ | varchar(64) | 所属执行实例ID |
PROC_INST_ID_ | varchar(64) | 所属流程实例ID |
TASK_ID_ | varchar(64) | 所属任务ID |
BYTEARRAY_ID_ | varchar(64) | 二进制数据ID,如果是流程变量是二进制数据时 |
DOUBLE_ | double | double类型对应的值 |
LONG_ | bigint(20) | long类型对应的值 |
TEXT_ | varchar(4000) | 文本类型对应的值 |
TEXT2_ | varchar(4000) | 文本类型对应的值 |
act_ru_suspended_job:运行时挂起的定时作业表
Field | Type | Comment |
ID_ | varchar(64) | |
REV_ | int(11) | 数据版本,乐观锁 |
TYPE_ | varchar(255) | |
EXCLUSIVE_ | tinyint(1) | |
EXECUTION_ID_ | varchar(64) | |
PROCESS_INSTANCE_ID_ | varchar(64) | |
PROC_DEF_ID_ | varchar(64) | |
RETRIES_ | int(11) | |
EXCEPTION_STACK_ID_ | varchar(64) | |
EXCEPTION_MSG_ | varchar(4000) | |
DUEDATE_ | timestamp(3) | |
REPEAT_ | varchar(255) | |
HANDLER_TYPE_ | varchar(255) | |
HANDLER_CFG_ | varchar(4000) | |
TENANT_ID_ | varchar(255) |
act_ru_job:运行时作业表
Field | Type | Comment |
ID_ | varchar(64) | |
REV_ | int(11) | 数据版本,乐观锁 |
TYPE_ | varchar(255) | |
LOCK_EXP_TIME_ | timestamp(3) | |
LOCK_OWNER_ | varchar(255) | |
EXCLUSIVE_ | tinyint(1) | |
EXECUTION_ID_ | varchar(64) | |
PROCESS_INSTANCE_ID_ | varchar(64) | |
PROC_DEF_ID_ | varchar(64) | |
RETRIES_ | int(11) | |
EXCEPTION_STACK_ID_ | varchar(64) | |
EXCEPTION_MSG_ | varchar(4000) | |
DUEDATE_ | timestamp(3) | |
REPEAT_ | varchar(255) | |
HANDLER_TYPE_ | varchar(255) | |
HANDLER_CFG_ | varchar(4000) | |
TENANT_ID_ | varchar(255) |
act_ru_integration:运行时积分表
Field | Type | Comment |
ID_ | varchar(64) | |
EXECUTION_ID_ | varchar(64) | |
PROCESS_INSTANCE_ID_ | varchar(64) | |
PROC_DEF_ID_ | varchar(64) | |
FLOW_NODE_ID_ | varchar(64) | |
CREATED_DATE_ | timestamp(3) |
act_ru_event_subscr:运行时事件订阅表
Field | Type | Comment |
ID_ | varchar(64) | ID |
REV_ | int(11) | 数据版本,乐观锁 |
EVENT_TYPE_ | varchar(255) | 事件类型 |
EVENT_NAME_ | varchar(255) | 事件名称 |
EXECUTION_ID_ | varchar(64) | 所属执行实例ID |
PROC_INST_ID_ | varchar(64) | 所属流程实例ID |
ACTIVITY_ID_ | varchar(64) | 所属活跃节点ID |
CONFIGURATION_ | varchar(255) | 配置信息 |
CREATED_ | timestamp(3) | 创建时间 |
PROC_DEF_ID_ | varchar(64) | 所属流程定义ID |
TENANT_ID_ | varchar(255) | 租户ID |
act_ru_deadletter_job:运行时死信作业表
Field | Type | Comment |
ID_ | varchar(64) | |
REV_ | int(11) | |
TYPE_ | varchar(255) | |
EXCLUSIVE_ | tinyint(1) | |
EXECUTION_ID_ | varchar(64) | |
PROCESS_INSTANCE_ID_ | varchar(64) | |
PROC_DEF_ID_ | varchar(64) | |
EXCEPTION_STACK_ID_ | varchar(64) | |
EXCEPTION_MSG_ | varchar(4000) | |
DUEDATE_ | timestamp(3) | |
REPEAT_ | varchar(255) | |
HANDLER_TYPE_ | varchar(255) | |
HANDLER_CFG_ | varchar(4000) | |
TENANT_ID_ | varchar(255) |
act_evt_log:事件日志表
描述:事件日志表,记录activiti引擎级别的事件日志,默认关闭。
Field | Type | Comment |
LOG_NR_ | bigint(20) | |
TYPE_ | varchar(64) | |
PROC_DEF_ID_ | varchar(64) | 流程定义ID |
PROC_INST_ID_ | varchar(64) | 流程实例ID |
EXECUTION_ID_ | varchar(64) | 执行实例ID |
TASK_ID_ | varchar(64) | 任务ID |
TIME_STAMP_ | timestamp(3) | 发生时间戳 |
USER_ID_ | varchar(255) | 用户ID |
DATA_ | longblob | 事件json数据 |
LOCK_OWNER_ | varchar(255) | |
LOCK_TIME_ | timestamp(3) | |
IS_PROCESSED_ | tinyint(4) |
ps:
1)配置启用事件日志:processEngineConfiguration.setEnableDatabaseEventLogging(true);
2)运行时启用事件日志:databaseEventLogger = new EventLogger(processEngineConfiguration.getClock());
runtimeService.addEventListener(databaseEventLogger);3)基于Activiti引擎的事件机制,其思想是,来源于引擎的事件会被捕获,并创建一个包含了所有事件数据的映射,提供给org.activiti.engine.impl.event.logger.EventFlusher,由它将这些数据刷入其他地方。默认情况下,使用简单的基于数据库的事件处理/刷入,会使用Jackson将上述映射序列化为JSON,并将其作为EventLogEntryEntity接口存入数据库。如果不使用事件记录,可以删除这个表。
act_hi_actinst:历史活动信息表
描述:记录流程流转过的所有节点信息
Field | Type | Comment |
ID_ | varchar(64) | 活动ID |
PROC_DEF_ID_ | varchar(64) | 所属流程定义ID |
PROC_INST_ID_ | varchar(64) | 所属流程实例ID |
EXECUTION_ID_ | varchar(64) | 所属执行实例ID |
ACT_ID_ | varchar(255) | 活动ID |
TASK_ID_ | varchar(64) | 任务ID,其他活动类型实例ID在这里为空 |
CALL_PROC_INST_ID_ | varchar(64) | 调用外部流程的流程实例ID |
ACT_NAME_ | varchar(255) | 活动名称 |
ACT_TYPE_ | varchar(255) | 活动类型startEvent、userTask |
ASSIGNEE_ | varchar(255) | 任务办理人 |
START_TIME_ | datetime(3) | 活动开始时间 |
END_TIME_ | datetime(3) | 活动结束时间 |
DURATION_ | bigint(20) | 耗时时间(毫秒) |
DELETE_REASON_ | varchar(4000) | 删除原因 |
TENANT_ID_ | varchar(255) | 租户ID |
act_hi_attachment:历史流程附件表
Field | Type | Comment |
ID_ | varchar(64) | 附件ID |
REV_ | int(11) | 数据版本,乐观锁 |
USER_ID_ | varchar(255) | 用户ID |
NAME_ | varchar(255) | 附件名称 |
DESCRIPTION_ | varchar(4000) | 描述 |
TYPE_ | varchar(255) | 附件类型 |
TASK_ID_ | varchar(64) | 所属任务ID |
PROC_INST_ID_ | varchar(64) | 所属流程实例ID |
URL_ | varchar(4000) | 附件地址url |
CONTENT_ID_ | varchar(64) | 内容Id,内容保存在二进制资源表中 |
TIME_ | datetime(3) | 创建时间 |
act_hi_comment:历史审批意见表
描述:
Field | Type | Comment |
ID_ | varchar(64) | ID |
TYPE_ | varchar(255) | 类型有event(事件)、comment(意见),默认comment |
TIME_ | datetime(3) | 创建时间 |
USER_ID_ | varchar(255) | 用户Id |
TASK_ID_ | varchar(64) | 任务ID |
PROC_INST_ID_ | varchar(64) | 流程实例ID |
ACTION_ | varchar(255) | 行为类型,有AddUserLink、DeleteUserLink、AddGroupLink、DeleteGroupLink、AddComment、AddAttachment、DeleteAttachment |
MESSAGE_ | varchar(4000) | 用于存放流程产生的信息,比如审批意见 |
FULL_MSG_ | longblob | 全部消息 |
act_hi_detail:历史详情表
描述:提供历史变量的查询
Field | Type | Comment |
ID_ | varchar(64) | |
TYPE_ | varchar(255) | |
PROC_INST_ID_ | varchar(64) | |
EXECUTION_ID_ | varchar(64) | |
TASK_ID_ | varchar(64) | |
ACT_INST_ID_ | varchar(64) | |
NAME_ | varchar(255) | |
VAR_TYPE_ | varchar(255) | |
REV_ | int(11) | 数据版本,乐观锁 |
TIME_ | datetime(3) | |
BYTEARRAY_ID_ | varchar(64) | |
DOUBLE_ | double | |
LONG_ | bigint(20) | |
TEXT_ | varchar(4000) | |
TEXT2_ | varchar(4000) |
act_hi_identitylink:历史身份连接表
描述:相同字段含义和运行时身份连接表一样
Field | Type | Comment |
ID_ | varchar(64) | id |
GROUP_ID_ | varchar(255) | 组ID |
TYPE_ | varchar(255) | 用户类型,有assignee、candidate、owner、starter、participant。即:受让人,候选人,所有者、起动器、参与者 |
USER_ID_ | varchar(255) | 用户ID |
TASK_ID_ | varchar(64) | 任务ID |
PROC_INST_ID_ | varchar(64) | 流程实例ID |
act_hi_procinst:历史流程实例表
Field | Type | Comment |
ID_ | varchar(64) | 唯一ID |
PROC_INST_ID_ | varchar(64) | 流程实例ID |
BUSINESS_KEY_ | varchar(255) | 关联业务系统的key,一般为【流程定义key:表单ID】 的形式 |
PROC_DEF_ID_ | varchar(64) | 流程定义ID |
START_TIME_ | datetime(3) | 流程实例开始时间 |
END_TIME_ | datetime(3) | 流程实例结束时间 |
DURATION_ | bigint(20) | 总耗时(毫秒) |
START_USER_ID_ | varchar(255) | 开始用户ID |
START_ACT_ID_ | varchar(255) | 开始节点ID |
END_ACT_ID_ | varchar(255) | 结束节点ID |
SUPER_PROCESS_INSTANCE_ID_ | varchar(64) | 上级流程实例ID |
DELETE_REASON_ | varchar(4000) | 删除原因 |
TENANT_ID_ | varchar(255) | 租户ID |
NAME_ | varchar(255) | 流程实例名称 |
act_hi_taskinst:历史任务表:记录历史和正在进行的任务
描述:
Field | Type | Comment |
ID_ | varchar(64) | 唯一ID |
PROC_DEF_ID_ | varchar(64) | 流程定义ID |
TASK_DEF_KEY_ | varchar(255) | 任务的ID,画图时的ID |
PROC_INST_ID_ | varchar(64) | 所属流程实例ID |
EXECUTION_ID_ | varchar(64) | 所属执行实例ID |
NAME_ | varchar(255) | 任务名称 |
PARENT_TASK_ID_ | varchar(64) | 父任务ID |
DESCRIPTION_ | varchar(4000) | 任务描述 |
OWNER_ | varchar(255) | 任务拥有者 |
ASSIGNEE_ | varchar(255) | 任务办理人 |
START_TIME_ | datetime(3) | 任务开始时间 |
CLAIM_TIME_ | datetime(3) | 任务被拾取时间 |
END_TIME_ | datetime(3) | 任务结束时间 |
DURATION_ | bigint(20) | 总耗时(毫秒) |
DELETE_REASON_ | varchar(4000) | 删除原因 |
PRIORITY_ | int(11) | 优先级 |
DUE_DATE_ | datetime(3) | 办理时间 |
FORM_KEY_ | varchar(255) | |
CATEGORY_ | varchar(255) | 任务分类 |
TENANT_ID_ | varchar(255) | 租户ID |
act_hi_varinst:历史流程变量表
描述:
Field | Type | Comment |
ID_ | varchar(64) | 唯一ID |
PROC_INST_ID_ | varchar(64) | 所属流程实例ID |
EXECUTION_ID_ | varchar(64) | 执行实例ID |
TASK_ID_ | varchar(64) | 所属任务ID |
NAME_ | varchar(255) | 变量名 |
VAR_TYPE_ | varchar(100) | 变量类型 |
REV_ | int(11) | 数据版本,用于activiti的乐观锁操作 |
BYTEARRAY_ID_ | varchar(64) | 关联字节数组资源的ID |
DOUBLE_ | double | 小数类型的值放这 |
LONG_ | bigint(20) | 整数类型的值放这 |
TEXT_ | varchar(4000) | 文本类型的值放这 |
TEXT2_ | varchar(4000) | 文本类型的值放这 |
CREATE_TIME_ | datetime(3) | 创建时间 |
LAST_UPDATED_TIME_ | datetime(3) | 最后更改时间 |