最近因为工作中要用到Flowable,因为以前接触过一些activiti的知识,所以上手比较好上手,这里记录部分需要记录的知识,部分笔记来自于https://www.bilibili.com/video/BV1bq4y1v7BQ?p=2&spm_id_from=333.1007.top_right_bar_window_history.content.click
表结构
- ACT_RE :'RE’表示 repository。 这个前缀的表包含了流程定义和流程静态资源 (图片,规则,等等)。
- ACT_RU:'RU’表示 runtime。 这些运行时的表,包含流程实例,任务,变量,异步任务,等运行中的数据。 Flowable只在流程实例执行过程中保存这些数据, 在流程结束时就会删除这些记录。 这样运行时表可以一直很小速度很快。
- ACT_HI:'HI’表示 history。 这些表包含历史数据,比如历史流程实例, 变量,任务等等。
- ACT_GE: GE 表示 general。 通用数据, 用于不同场景下
- ACT_ID: ’ID’表示identity(组织机构)。这些表包含标识的信息,如用户,用户组,等等
表分类 | 表名 | 解释 |
---|---|---|
一般数据 | ||
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_RE_DEPLOYMENT | 部署单元信息 | |
ACT_RE_MODEL | 模型信息 | |
ACT_RE_PROCDEF | 已部署的流程定义 | |
运行实例表 | ||
ACT_RU_EVENT_SUBSCR | 运行时事件 | |
ACT_RU_EXECUTION | 运行时流程执行实例 | |
ACT_RU_IDENTITYLINK | 运行时用户关系信息,存储任务节点与参与者的相关信息 | |
ACT_RU_JOB | 运行时作业 | |
ACT_RU_TASK | 运行时任务 | |
ACT_RU_VARIABLE | 运行时变量表 | |
用户用户组表 | ||
ACT_ID_BYTEARRAY | 二进制数据表 | |
ACT_ID_GROUP | 用户组信息表 | |
ACT_ID_INFO | 用户信息详情表 | |
ACT_ID_MEMBERSHIP | 人与组关系表 | |
ACT_ID_PRIV | 权限表 | |
ACT_ID_PRIV_MAPPING | 用户或组权限关系表 | |
ACT_ID_PROPERTY | 属性表 | |
ACT_ID_TOKEN | 记录用户的token信息 | |
ACT_ID_USER | 用户表 |
部署流程
部署流程需要用到的表
- 流程部署表ACT_RE_DEPLOYMENT 一次流程部署操作就会生成一条记录
- 流程定义表ACT_RE_PROCDEF 一次部署操作种包含几个流程定义文件就会生成几ACT_GE
- 流程定义资源文件表ACT_GE_BYTEARRAY有多少资源就会生成几条记录
ACT_GE_BYTEARRAY
字段 | 名称 | 备注 |
---|---|---|
ID_ | 主键 | |
REV_ | 版本号 | |
NAME_ | 名称 | 部署的文件名称,如:holiday-request-new.bpmn20.xml、holiday-request-new.bpmn20.png |
DEPLOYMENT_ID_ | 部署ID | |
BYTES_ | 字节(二进制数据) | |
GENERATED_ | 是否系统生成 | 0为用户上传, 1为系统自动生成, 比如系统会 自动根据xml生 成png |
ACT_RE_DEPLOYMENT
字段 | 名称 |
---|---|
ID_ | 主键 |
NAME_ | 名称 |
CATEGORY_ | 分类 |
TENANT_ID_ | 租户ID |
DEPLOY_TIME_ | 部署时间 |
DERIVED_FROM_ | 来源于 |
DERIVED_FROM_ROOT_ | 来源于 |
ENGINE_VERSION_ | 流程引擎的版本 |
act_re_procdef
字段 | 名称 | 备注 |
---|---|---|
ID_ | 主键 | |
REV_ | 版本号 | |
CATEGORY_ | 分类 | 流程定义的Namespace就是类别 |
NAME_ | 名称 | |
KEY_ | 标识 | |
VERSION_ | 版本 | |
DEPLOYMENT_ID_ | 部署ID | |
RESOURCE_NAME_ | 资源名称 | 流程bpmn文件名称 |
DGRM_RESOURCE_NAME_ | 图片资源名称 | |
DESCRIPTION_ | 描述 | |
HAS_START_FORM_KEY_ | 拥有开始表单标识 | start节点是否存在formKey 0否 1是 |
HAS_GRAPHICAL_NOTATION_ | 拥有图形信息 | |
SUSPENSION_STATE_ | 挂起状态 | 暂停状态 1激活 2暂停 |
TENANT_ID_ | 租户ID |
启动一个流程实例
启动一个流程实例会对四张表进行改动
ACT_RU_EXECUTION表结构
字段 | 名称 | 备注 |
---|---|---|
ID_ | 主键 | |
REV_ | 版本号 | |
PROC_INST_ID_ | 流程实例ID | |
BUSINESS_KEY_ | 业务主键ID | |
PARENT_ID_ | 父执行流的ID | |
PROC_DEF_ID_ | 流程定义的数据ID | |
SUPER_EXEC_ | ||
ROOT_PROC_INST_ID_ | 流程实例的root流程id | |
ACT_ID_ | 节点实例ID | |
IS_ACTIVE_ | 是否存活 | |
IS_CONCURRENT_ | 执行流是否正在并行 | |
IS_SCOPE_ | ||
IS_EVENT_SCOPE_ | ||
IS_MI_ROOT_ | ||
SUSPENSION_STATE_ | 流程终端状态 | |
CACHED_ENT_STATE_ | ||
TENANT_ID_ | 租户编号 | |
NAME_ | ||
START_TIME_ | 开始时间 | |
START_USER_ID_ | 开始的用户编号 | |
LOCK_TIME_ | 锁定时间 | |
IS_COUNT_ENABLED_ | ||
EVT_SUBSCR_COUNT_ | ||
TASK_COUNT_ | ||
JOB_COUNT_ | ||
TIMER_JOB_COUNT_ | ||
SUSP_JOB_COUNT_ | ||
DEADLETTER_JOB_COUNT_ | ||
VAR_COUNT_ | ||
ID_LINK_COUNT_ |
ACT_RU_TASK 运行时任务表
字段 | 名称 | 备注 |
---|---|---|
ID_ | 主键 | |
REV_ | 版本号 | |
EXECUTION_ID_ | 任务所在的执行流ID | |
PROC_INST_ID_ | 流程实例ID | |
PROC_DEF_ID_ | 流程定义数据ID | |
NAME_ | 任务名称 | |
PARENT_TASK_ID_ | 父任务ID | |
DESCRIPTION_ | 说明 | |
TASK_DEF_KEY_ | 任务定义的ID值 | |
OWNER_ | 任务拥有人 | |
ASSIGNEE_ | 被指派执行该任务的人 | |
DELEGATION_ | 委托人 | |
PRIORITY_ | 优先级 | |
CREATE_TIME_ | 创建时间 | |
DUE_DATE_ | 耗时 | |
CATEGORY_ | 类别 | |
SUSPENSION_STATE_ | 是否挂起 | 1代表激活 2代表挂起 |
TENANT_ID_ | 租户编号 | |
FORM_KEY_ | ||
CLAIM_TIME_ | 拾取时间 | |
ACT_RU_VARIABLE 运行时变量表 |
字段 | 名称 | 备注 |
---|---|---|
ID_ | 主键 | |
REV_ | 版本号 | |
TYPE_ | 参数类型 | 可以是基本的类型,也可以用户自行扩展 |
NAME_ | 参数名称 | |
EXECUTION_ID_ | 参数执行ID | |
PROC_INST_ID_ | 流程实例ID | |
TASK_ID_ | 任务ID | |
BYTEARRAY_ID_ | 资源ID | |
DOUBLE_ | 参数为double,则保存在该字段中 | |
LONG_ | 参数为long,则保存在该字段中 | |
TEXT_ | 用户保存文本类型的参数值 | |
TEXT2_ | 用户保存文本类型的参数值 |
ACT_RU_IDENTITYLINK 运行时用户关系信息
字段 | 名称 | 备注 |
---|---|---|
ID_ | 主键 | |
REV_ | 版本号 | |
GROUP_ID_ | 用户组ID | |
TYPE_ | 关系数据类型 | assignee支配人(组)、candidate候选人(组)、owner拥有人,participant参与者 |
USER_ID_ | 用户ID | |
TASK_ID_ | 任务ID | |
PROC_INST_ID_ | 流程定义ID | |
PROC_DEF_ID_ | 属性ID |
这几张表都是Ru前缀的表,对应Service中的RuntimeService,可以使用RuntimeService来对ProcessInstance来进行操作,从而操纵这几张表
当我们使用TaskService complete一个流程实例中最后一个任务后,这里几张表中的数据就会消失,转而进入HI前缀的表
完成一个流程实例后
ACT_HI_ACTINST 历史的流程实例
字段 | 名称 | 备注 |
---|---|---|
ID_ | 主键 | |
PROC_DEF_ID_ | 流程定义ID | |
PROC_INST_ID_ | 流程实例ID | |
EXECUTION_ID_ | 执行ID | |
ACT_ID_ | 节点实例ID | |
TASK_ID_ | 任务ID | |
CALL_PROC_INST_ID_ | 调用外部的流程实例ID | |
ACT_NAME_ | 节点名称 | |
ACT_TYPE_ | 节点类型 | |
ASSIGNEE_ | 处理人 | |
START_TIME_ | 开始时间 | |
END_TIME_ | 结束时间 | |
DURATION_ | 耗时 | |
DELETE_REASON_ | 删除原因 | |
TENANT_ID_ | 租户编号 |
ACT_HI_IDENTITYLINK 历史的流程运行过程中用户关系
字段 | 名称 | 备注 |
---|---|---|
ID_ | 主键 | |
GROUP_ID_ | 组编号 | |
TYPE_ | 类型 | |
USER_ID_ | 用户编号 | |
TASK_ID_ | 任务编号 | |
CREATE_TIME_ | 创建时间 | |
PROC_INST_ID_ | 流程实例编号 | |
SCOPE_ID_ | ||
SCOPE_TYPE_ | ||
SCOPE_DEFINITION_ID_ | ||
ACT_HI_PROCINST 历史的流程实例
字段 | 名称 | 备注 |
---|---|---|
ID_ | 主键 | |
PROC_INST_ID_ | 流程实例ID | |
BUSINESS_KEY_ | 业务主键 | |
PROC_DEF_ID_ | 属性ID | |
START_TIME_ | 开始时间 | |
END_TIME_ | 结束时间 | |
DURATION_ | 耗时 | |
START_USER_ID_ | 起始人 | |
START_ACT_ID_ | 起始节点 | |
END_ACT_ID_ | 结束节点 | |
SUPER_PROCESS_INSTANCE_ID_ | 父流程实例ID | |
DELETE_REASON_ | 删除原因 | |
TENANT_ID_ | 租户编号 | |
NAME_ | 名称 |
ACT_HI_TASKINST 历史的任务实例
字段 | 名称 | 备注 |
---|---|---|
ID_ | 主键 | |
PROC_DEF_ID_ | 流程定义ID | |
TASK_DEF_KEY_ | 任务定义的ID值 | |
PROC_INST_ID_ | 流程实例ID | |
EXECUTION_ID_ | 执行ID | |
PARENT_TASK_ID_ | 父任务ID | |
NAME_ | 名称 | |
DESCRIPTION_ | 说明 | |
OWNER_ | 实际签收人 任务的拥有者 | 签收人(默认为空,只有在委托时才有值) |
ASSIGNEE_ | 被指派执行该任务的人 | |
START_TIME_ | 开始时间 | |
CLAIM_TIME_ | 任务拾取时间 | |
END_TIME_ | 结束时间 | |
DURATION_ | 耗时 | |
DELETE_REASON_ | 删除原因 | |
PRIORITY_ | 优先级别 | |
DUE_DATE_ | 过期时间 | |
FORM_KEY_ | 节点定义的formkey | |
CATEGORY_ | 类别 | |
TENANT_ID_ | 租户 |
ACT_HI_VARINST 历史的流程运行中的变量信息:流程变量虽然在任务完成后在流程实例表中会删除,但是在历史表中还是会记录的
字段 | 名称 | 备注 |
---|---|---|
ID_ | 主键 | |
PROC_INST_ID_ | 流程实例ID | |
EXECUTION_ID_ | 指定ID | |
TASK_ID_ | 任务ID | |
NAME_ | 名称 | |
VAR_TYPE_ | 参数类型 | |
REV_ | 数据版本 | |
BYTEARRAY_ID_ | 字节表ID | |
DOUBLE_ | 存储double类型数据 | |
LONG_ | 存储long类型数据 |
Q.E.D.