最近因为工作中要用到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 用户表

部署流程

部署流程需要用到的表

  1. 流程部署表ACT_RE_DEPLOYMENT 一次流程部署操作就会生成一条记录
  2. 流程定义表ACT_RE_PROCDEF 一次部署操作种包含几个流程定义文件就会生成几ACT_GE
  3. 流程定义资源文件表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.