一、表结构介绍
工作流Activity总共有23张表,总共可以分为5大类;
ACT_RE_*:RE表示repository,总共有3张表,带此前缀的表包含的是静态信息,如:流程定义,流程部署,流程设计模型。
ACT_RU_*:RU表示runtime,总共有6张表,这是运行时的表存储着流程变量,用户任务,职责,运行人物信息,运行实例等运行时的数据;
Activiti只存储实例执行期间的运行时数据,当流程实例结束时,将删除这些记录,这就保证了这些运行时的表小且快。
ACT_ID_*:ID表示identity,总共有4张表,如:用户信息,用户组,用户与用户之间的关系等。
ACT_HI_*:HI表示history,总共有8张表,保存的是一些流程历史信息,如:历史流程变量,历史处理任务,历史流程执行实例,历史任务人员处理信息,历史任务建议,历史变量变更详细信息,历史节点信息等。
ACT_GE_*:GE代表generate,中国有两张表,主要存储流程图信息,变量的生成,如:流程图的存储,变量生成。
二、工作流表结构模型
三、工作流表结构数据解析
act_ge_bytearray:流程文件存储表
字段名 |
类型 |
不能为空 |
主键 |
描述 |
ID_ |
varchar |
是 |
是 |
唯一标志 |
REV_ |
int |
否 |
否 |
版本号 |
NAME_ |
varchar |
否 |
否 |
部署文件名称 |
DEPLOYMENT_ID_ |
varchar |
否 |
否 |
部署id |
BYTES_ |
longblob |
否 |
否 |
部署对象二进制文件 |
GENERATED_ |
tinyint |
否 |
否 |
是否引擎生成0用户,1Activity |
act_ge_bytearray:系统属性生成表
字段名 |
类型 |
不能为空 |
主键 |
描述 |
NAME_ |
varchar |
是 |
是 |
属性名称 |
VALUE_ |
varchar |
否 |
否 |
属性值 |
REV_ |
int |
否 |
否 |
版本号 |
act_re_deployment:部署信息
字段名 |
类型 |
不能为空 |
主键 |
描述 |
ID_ |
varchar |
是 |
是 |
唯一标志 |
NAME_ |
varchar |
否 |
否 |
部署名称 |
CATEGORY_ |
varchar |
否 |
否 |
类别 |
TENANT_ID_ |
varchar |
否 |
否 |
租户id,面对多用户 |
DEPLOY_TIME_ |
timestamp |
是 |
否 |
部署时间 |
act_re_procdef:流程定义表
字段名 |
类型 |
不能为空 |
主键 |
描述 |
ID_ |
varchar |
是 |
是 |
唯一标志 |
REV_ |
int |
否 |
否 |
版本 |
CATEGORY_ |
varchar |
否 |
否 |
类别 |
NAME_ |
varchar |
否 |
否 |
流程名称 |
KEY_ |
varchar |
是 |
否 |
流程编号(就是id属性值) |
VERSION_ |
int |
是 |
否 |
流程版本 |
DEPLOYMENT_ID_ |
varchar |
否 |
否 |
部署id |
RESOURCE_NAME_ |
varchar |
否 |
否 |
bpmn资源文件名称 |
DGRM_RESOURCE_NAME_ |
varchar |
否 |
否 |
图片资源名称 |
DESCRIPTION_ |
varchar |
否 |
否 |
描述 |
HAS_START_FORM_KEY_ |
tinyint |
否 |
否 |
Strat节点是否存在formKey |
SUSPENSION_STATE_ |
int |
否 |
否 |
是否挂起 |
TENANT_ID_ |
varchar |
否 |
否 |
租户id,面对多用户 |
act_re_model:流程设计模型表
字段名 |
类型 |
不能为空 |
主键 |
描述 |
ID_ |
varchar |
是 |
是 |
唯一标志 |
REV_ |
int |
否 |
否 |
乐观锁 |
NAME_ |
varchar |
否 |
否 |
模型名称 |
KEY_ |
varchar |
否 |
否 |
模型关键字 |
CATEGORY_ |
varchar |
是 |
否 |
类型 |
CREATE_TIME_ |
int |
是 |
否 |
创建时间 |
LAST_UPDATE_TIME_ |
varchar |
否 |
否 |
最后修改时间 |
VERSION_ |
varchar |
否 |
否 |
版本 |
META_INFO_ |
varchar |
否 |
否 |
流程定义信息 |
DEPLOYMENT_ID_ |
varchar |
否 |
否 |
部署id |
EDITOR_SOURCE_VALUE_ID_ |
tinyint |
否 |
否 |
ACT_GE_BYTEARRAY 表中的ID_值 |
EDITOR_SOURCE_EXTRA_VALUE_ID_ |
int |
否 |
否 |
ACT_GE_BYTEARRAY 表中的ID_值 |
TENANT_ID_ |
varchar |
否 |
否 |
租户id,面对多用户 |
act_id_user:用户信息表
字段名 |
类型 |
不能为空 |
主键 |
描述 |
ID_ |
varchar |
是 |
是 |
唯一标志 |
REV_ |
int |
否 |
否 |
版本号 |
FIRST_ |
varchar |
否 |
否 |
用户名称 |
LAST_ |
varchar |
否 |
否 |
用户姓氏 |
EMAIL_ |
varchar |
否 |
否 |
邮箱 |
PWD_ |
varchar |
否 |
否 |
密码 |
PICTURE_ID_ |
varchar |
否 |
否 |
头像id |
act_id_group:用户组信息表
字段名 |
类型 |
不能为空 |
主键 |
描述 |
ID_ |
varchar |
是 |
是 |
唯一标志 |
REV_ |
int |
否 |
否 |
版本号 |
NAME_ |
varchar |
否 |
否 |
用户组名称 |
TYPE_ |
varchar |
否 |
否 |
用户组类型 |
act_id_membership:用户与用户组信息关系表
字段名 |
类型 |
不能为空 |
主键 |
描述 |
USER_ID_ |
varchar |
是 |
是 |
用户id |
GROUP_ID_ |
varchar |
是 |
是 |
用户组id |
act_id_info:用户扩展信息表
字段名 |
类型 |
不能为空 |
主键 |
描述 |
ID_ |
varchar |
是 |
是 |
唯一标志 |
REV_ |
int |
否 |
否 |
版本号 |
USER_ID_ |
varchar |
否 |
否 |
用户id |
TYPE_ |
varchar |
否 |
否 |
用户类型 |
KEY_ |
varchar |
否 |
否 |
formINPut名称 |
VALUE_ |
varchar |
否 |
否 |
值 |
PASSWORD_ |
longblob |
否 |
否 |
密码 |
PARENT_ID_ |
varchar |
否 |
否 |
父节点id |
act_ru_variable:运行时流程变量表
字段名 |
类型 |
不能为空 |
主键 |
描述 |
ID_ |
varchar |
是 |
是 |
唯一标志 |
REV_ |
int |
否 |
否 |
版本号 |
TYPE_ |
varchar |
是 |
否 |
数据类型 |
NAME_ |
varchar |
是 |
否 |
变量名称 |
EXECUTION_ID_ |
varchar |
否 |
否 |
执行实例id |
PROC_INST_ID_ |
varchar |
否 |
否 |
流程实例id |
TASK_ID_ |
varchar |
否 |
否 |
任务id |
BYTEARRAY_ID_ |
varchar |
否 |
否 |
字节表id |
DOUBLE_ |
double |
否 |
否 |
Double类型存储 |
LONG_ |
bigint |
否 |
否 |
Long类型存储 |
TEXT_ |
varchar |
否 |
否 |
String类型存储 |
TEXT2_ |
varchar |
否 |
否 |
序列化对象存储 |
act_ru_task:运行时流程任务表
字段名 |
类型 |
不能为空 |
主键 |
描述 |
ID_ |
varchar |
是 |
是 |
唯一标志 |
REV_ |
int |
否 |
否 |
版本号 |
EXECUTION_ID_ |
varchar |
否 |
否 |
执行实例id |
PROC_INST_ID_ |
varchar |
否 |
否 |
流程实例id |
PROC_DEF_ID_ |
varchar |
否 |
否 |
流程定义id |
NAME_ |
varchar |
否 |
否 |
任务名 |
PARENT_TASK_ID_ |
varchar |
否 |
否 |
父任务id |
DESCRIPTION_ |
varchar |
否 |
否 |
描述 |
TASK_DEF_KEY_ |
varchar |
否 |
否 |
任务定义key |
OWNER_ |
varchar |
否 |
否 |
所属人 |
ASSIGNEE_ |
varchar |
否 |
否 |
处理人 |
DELEGATION_ |
varchar |
否 |
否 |
委托类型 |
PRIORITY_ |
int |
否 |
否 |
优先级别 |
CREATE_TIME_ |
timestamp |
否 |
否 |
创建时间 |
DUE_DATE_ |
datetime |
否 |
否 |
耗时 |
CATEGORY_ |
varchar |
否 |
否 |
类别 |
SUSPENSION_STATE_ |
int |
否 |
否 |
挂起状态 |
TENANT_ID_ |
varchar |
否 |
否 |
租户id,面对多用户 |
act_ru_job:运行时定时任务数据表
字段名 |
类型 |
不能为空 |
主键 |
描述 |
ID_ |
varchar |
是 |
是 |
唯一标志 |
REV_ |
int |
否 |
否 |
版本号 |
TYPE_ |
varchar |
否 |
否 |
类型 |
LOCK_EXP_TIME_ |
timestamp |
否 |
否 |
锁定释放时间 |
LOCK_OWNER_ |
varchar |
否 |
否 |
挂起者 |
EXCLUSIVE_ |
tinyint |
否 |
否 |
独占 |
EXECUTION_ID_ |
varchar |
否 |
否 |
执行实例id |
PROCESS_INSTANCE_ID_ |
varchar |
否 |
否 |
流程实例id |
PROC_DEF_ID_ |
varchar |
否 |
否 |
流程定义id |
RETRIES_ |
int |
否 |
否 |
重试 |
EXCEPTION_STACK_ID_ |
varchar |
否 |
否 |
异常信息id |
EXCEPTION_MSG_ |
varchar |
否 |
否 |
异常信息 |
DUEDATE_ |
timestamp |
否 |
否 |
到期时间 |
REPEAT_ |
varchar |
否 |
否 |
重复 |
HANDLER_TYPE_ |
varchar |
否 |
否 |
处理类型 |
HANDLER_CFG_ |
varchar |
否 |
否 |
处理标志 |
TENANT_ID_ |
varchar |
否 |
否 |
租户id,面对多用户 |
act_ru_identitylink:运行时任务参与者信息表
字段名 |
类型 |
不能为空 |
主键 |
描述 |
ID_ |
varchar |
是 |
是 |
唯一标志 |
REV_ |
int |
否 |
否 |
版本号 |
GROUP_ID_ |
varchar |
是 |
否 |
用户组id |
TYPE_ |
varchar |
是 |
否 |
类型 |
USER_ID_ |
varchar |
否 |
否 |
用户id |
TASK_ID_ |
varchar |
否 |
否 |
任务id |
PROC_INST_ID_ |
varchar |
否 |
否 |
流程实例id |
PROC_DEF_ID_ |
varchar |
否 |
否 |
流程定义id |
act_ru_execution:运行时执行实例表
字段名 |
类型 |
不能为空 |
主键 |
描述 |
ID_ |
varchar |
是 |
是 |
唯一标志 |
REV_ |
int |
否 |
否 |
版本号 |
PROC_INST_ID_ |
varchar |
否 |
否 |
流程实例id |
BUSINESS_KEY_ |
varchar |
否 |
否 |
业务id |
PARENT_ID_ |
varchar |
否 |
否 |
父节点执行id |
PROC_DEF_ID_ |
varchar |
否 |
否 |
流程定义id |
SUPER_EXEC_ |
varchar |
否 |
否 |
引用的执行模板 |
ACT_ID_ |
varchar |
否 |
否 |
节点id |
IS_ACTIVE_ |
tinyint |
否 |
否 |
是否激活 |
IS_CONCURRENT_ |
tinyint |
否 |
否 |
是否并行 |
IS_SCOPE_ |
tinyint |
否 |
否 |
|
IS_EVENT_SCOPE_ |
tinyint |
否 |
否 |
|
SUSPENSION_STATE_ |
int |
否 |
否 |
挂起状态 |
CACHED_ENT_STATE_ |
int |
否 |
否 |
缓存结束状态 |
TENANT_ID_ |
varchar |
否 |
否 |
租户id,面对多用户 |
act_ru_event_subscr:运行时事件
字段名 |
类型 |
不能为空 |
主键 |
描述 |
ID_ |
varchar |
是 |
是 |
唯一标志 |
REV_ |
int |
否 |
否 |
版本号 |
EVENT_TYPE_ |
varchar |
否 |
否 |
事件类型 |
EVENT_NAME_ |
varchar |
否 |
否 |
事件名称 |
EXECUTION_ID_ |
varchar |
否 |
否 |
执行实例id |
PROC_INST_ID_ |
varchar |
否 |
否 |
流程实例id |
ACTIVITY_ID_ |
varchar |
否 |
否 |
活动id |
CONFIGURATION_ |
varchar |
否 |
否 |
配置信息 |
CREATED_ |
timestamp |
否 |
否 |
创建时间 |
PROC_DEF_ID_ |
varchar |
否 |
否 |
流程定义id |
TENANT_ID_ |
varchar |
否 |
否 |
租户id,面对多用户 |
act_hi_varinst:历史流程变量表
字段名 |
类型 |
不能为空 |
主键 |
描述 |
ID_ |
varchar |
是 |
是 |
唯一标志 |
PROC_INST_ID_ |
varchar |
否 |
否 |
流程实例id |
EXECUTION_ID_ |
varchar |
否 |
否 |
执行实例id |
TASK_ID_ |
varchar |
否 |
否 |
任务id |
NAME_ |
varchar |
否 |
否 |
变量名 |
VAR_TYPE_ |
varchar |
否 |
否 |
变量类型 |
REV_ |
int |
否 |
否 |
版本 |
BYTEARRAY_ID_ |
varchar |
否 |
否 |
字节码id |
DOUBLE_ |
double |
否 |
否 |
Double类型存储 |
LONG_ |
bigint |
否 |
否 |
Long类型存储 |
TEXT_ |
varchar |
否 |
否 |
String类型存储 |
TEXT2_ |
varchar |
否 |
否 |
序列化对象存储 |
CREATE_TIME_ |
datetime |
否 |
否 |
创建时间 |
LAST_UPDATED_TIME_ |
datetime |
否 |
否 |
最后修改时间 |
act_hi_taskinst: 历史任务表
字段名 |
类型 |
不能为空 |
主键 |
描述 |
ID_ |
varchar |
是 |
是 |
唯一标志 |
PROC_DEF_ID_ |
varchar |
否 |
否 |
流程定义id |
TASK_DEF_KEY_ |
varchar |
否 |
否 |
任务定义key |
PROC_INST_ID_ |
varchar |
否 |
否 |
流程实例id |
EXECUTION_ID_ |
varchar |
否 |
否 |
流程执行id |
NAME_ |
varchar |
否 |
否 |
任务名 |
PARENT_TASK_ID_ |
varchar |
否 |
否 |
父节点id |
DESCRIPTION_ |
varchar |
否 |
否 |
描述 |
OWNER_ |
varchar |
否 |
否 |
归属者 |
ASSIGNEE_ |
varchar |
否 |
否 |
任务办理人 |
START_TIME_ |
datetime |
是 |
否 |
开始时间 |
CLAIM_TIME_ |
datetime |
否 |
否 |
提醒时间 |
END_TIME_ |
datetime |
否 |
否 |
结束时间 |
DURATION_ |
bigint |
否 |
否 |
耗时 |
DELETE_REASON_ |
varchar |
否 |
否 |
删除原因 |
PRIORITY_ |
int |
否 |
否 |
优先级 |
DUE_DATE_ |
datetime |
否 |
否 |
过期时间 |
FORM_KEY_ |
varchar |
否 |
否 |
Form_key |
CATEGORY_ |
varchar |
否 |
否 |
分类 |
TENANT_ID_ |
varchar |
否 |
否 |
最后修改时间 |
act_hi_procinst:历史流程实例表
字段名 |
类型 |
不能为空 |
主键 |
描述 |
ID_ |
varchar |
是 |
是 |
唯一标志 |
PROC_INST_ID_ |
varchar |
否 |
否 |
流程实例id |
BUSINESS_KEY_ |
varchar |
否 |
否 |
业务key |
PROC_DEF_ID_ |
varchar |
否 |
否 |
流程定义id |
START_TIME_ |
datetime |
否 |
否 |
开始时间 |
END_TIME_ |
datetime |
否 |
否 |
结束时间 |
DURATION_ |
bigint |
否 |
否 |
耗时 |
START_USER_ID_ |
varchar |
否 |
否 |
启动者id |
START_ACT_ID_ |
varchar |
否 |
否 |
开始节点 |
END_ACT_ID_ |
varchar |
否 |
否 |
结束节点 |
SUPER_PROCESS_INSTANCE_ID_ |
varchar |
否 |
否 |
父级流程实例id |
DELETE_REASON_ |
varchar |
否 |
否 |
删除原因 |
TENANT_ID_ |
varchar |
否 |
否 |
租户id,面对多用户 |
act_hi_identitylink:历史任务参与者信息表
字段名 |
类型 |
不能为空 |
主键 |
描述 |
ID_ |
varchar |
是 |
是 |
唯一标志 |
GROUP_ID_ |
varchar |
否 |
否 |
用户组id |
TYPE_ |
varchar |
否 |
否 |
类型 |
USER_ID_ |
varchar |
否 |
否 |
用户id |
TASK_ID_ |
varchar |
否 |
否 |
任务id |
PROC_INST_ID_ |
varchar |
否 |
否 |
流程实例id |
act_hi_detail: 历史流程变量转化详细信息表
字段名 |
类型 |
不能为空 |
主键 |
描述 |
ID_ |
varchar |
是 |
是 |
唯一标志 |
TYPE_ |
varchar |
否 |
否 |
数据操作类型 |
PROC_INST_ID_ |
varchar |
否 |
否 |
流程实例id |
EXECUTION_ID_ |
varchar |
否 |
否 |
执行实例id |
TASK_ID_ |
varchar |
否 |
否 |
任务id |
ACT_INST_ID_ |
varchar |
否 |
否 |
ACT_HI_ACTINST表的ID |
NAME_ |
varchar |
是 |
否 |
变量名 |
VAR_TYPE_ |
varchar |
否 |
否 |
变量类型 |
REV_ |
int |
否 |
否 |
版本 |
TIME_ |
datetime |
是 |
否 |
时间 |
BYTEARRAY_ID_ |
varchar |
否 |
否 |
生成id |
DOUBLE_ |
double |
否 |
否 |
Double类型存储 |
LONG_ |
bigint |
否 |
否 |
Long类型存储 |
TEXT_ |
varchar |
否 |
否 |
String类型存储 |
TEXT2_ |
varchar |
否 |
否 |
序列化对象存储 |
act_hi_comment:历史任务建议表
字段名 |
类型 |
不能为空 |
主键 |
描述 |
ID_ |
varchar |
是 |
是 |
唯一标志 |
TYPE_ |
varchar |
否 |
否 |
建议类型 |
TIME_ |
datetime |
否 |
否 |
时间 |
USER_ID_ |
varchar |
否 |
否 |
用户id |
TASK_ID_ |
varchar |
否 |
否 |
任务id |
PROC_INST_ID_ |
varchar |
否 |
否 |
流程实例id |
ACTION_ |
varchar |
否 |
否 |
行为 |
MESSAGE_ |
varchar |
否 |
否 |
处理意见 |
FULL_MSG_ |
longblob |
否 |
否 |
全部消息 |
act_hi_attachment:历史附件信息表
字段名 |
类型 |
不能为空 |
主键 |
描述 |
ID_ |
varchar |
是 |
是 |
唯一标志 |
REV_ |
varchar |
否 |
否 |
版本 |
USER_ID_ |
varchar |
否 |
否 |
用户id |
NAME_ |
varchar |
否 |
否 |
名称 |
DESCRIPTION_ |
datetime |
否 |
否 |
描述 |
TYPE_ |
datetime |
否 |
否 |
类型 |
TASK_ID_ |
bigint |
否 |
否 |
任务id |
PROC_INST_ID_ |
varchar |
否 |
否 |
流程实例id |
URL_ |
varchar |
否 |
否 |
链接 |
CONTENT_ID_ |
varchar |
否 |
否 |
ACT_GE_BYTEARRAY的ID |
act_hi_actinst:历史节点表
字段名 |
类型 |
不能为空 |
主键 |
描述 |
ID_ |
varchar |
是 |
是 |
唯一标志 |
PROC_DEF_ID_ |
varchar |
是 |
否 |
流程定义id |
PROC_INST_ID_ |
varchar |
是 |
否 |
流程实例id |
EXECUTION_ID_ |
varchar |
是 |
否 |
执行实例id |
ACT_ID_ |
varchar |
是 |
否 |
活动id |
TASK_ID_ |
varchar |
否 |
否 |
任务id |
CALL_PROC_INST_ID_ |
varchar |
否 |
否 |
调用外部流程的流程实例id |
ACT_NAME_ |
varchar |
否 |
否 |
节点名称 |
ACT_TYPE_ |
varchar |
是 |
否 |
节点类型 |
ASSIGNEE_ |
varchar |
否 |
否 |
节点处理人 |
START_TIME_ |
datetime |
是 |
否 |
开始时间 |
END_TIME_ |
datetime |
否 |
否 |
结束时间 |
DURATION_ |
bigint |
否 |
否 |
耗时 |
TENANT_ID_ |
varchar |
否 |
否 |
租户id,面对多用户 |
四、工作流表结构总结
在实际开发中,我们使用的工作流常用的工作流的表结构信息没有那么多。
1.一般来说工作流在我们开发中只是充当一种工具,具体的业务逻辑还是得由自己系统实现,用户信息也当然是自己的系统中的,所以说有关于act_id_*类型的表结构一般会很少用。
2.流程图的构建和部署,在实际开发中我们使用的流程图构建工具基本上与开发工具配套,比如IDEA使用插件来绘画流程图,在进行流程图部署的时候act_re_model就不会有数据,并非使用引擎。
3.act_ru_*类型的表使用频率比较高,基本上全部使用到了。
4.act_hi_*类型的表使用频率比较高,因为我们在流程结束的时候还需要展示用户处理后的任务,建议,流程变量,流程实例等信息。
5.act_ge_*类型的在刚部署的时候和流程变量生成的时候会使用到,整体与业务没有什么关系。
综上所诉:act_hi_*类型,act_ru_*类型与业务密切相关,重点关注。