Flowable相关的表信息

flowable工作流相关操作都是操作存储在对应表结构中,为了能更好弄清楚Flowable的实现原理与细节,我们首先需要清楚Flowable相关表结构及其作用。

Flowable的表结构在初始化时会创建五类表结构,具体如下:

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_TASK表数据一一对应)
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_GE_BYTEARRAY

字段名称备注
ID_主键
REV_版本号
NAME_名称部署文件名称如:holiday.bpmn20.xml、holiday.bpmn20.png
DEPLOYMENT_ID_部署ID
BYTES_字节(二进制)
GENERATED_是否系统生成0:用户上传;1:系统自动生成,如系统自动根据xml生成png

部署ID表: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_FROM_KEY_拥有开始表单标识start节点是否存在formkey,0:否1:是
HAS_GRAPHICAL_NOTATION拥有图形信息
SUSPENSION_STATE_挂起状态暂停状态,1:激活;2:暂停
TENANT_ID_租户id

业务流程定义数据表与ACT_RE_DEPLOYMENT是多对一的关系,即一个部署的bar包可能包含多个流程定义文件,每个流程定义文件都会有一条记录在ACT_reprocdef表内,每个流程定义的数据,都会对于ACT_GE_BYTEARRAY表内的一个资源文件和png图片文件和ACT_GE_BYTEARRAY的关联是通过程序用ACT_GE_BYTEARRAY.NAME_与ACT_RE_PROCDEF.NAME_完成的。

流程挂起与激活

部署的流程默认状态为激活,若我们暂时不想使用该定义的流程,那么可以挂起该流程。当然该流程定义下边所有的流程实例全部暂停。

流程定义为挂起状态,该流程定义将不允许启动新的流程实例,同时该流程定义下的所有流程实例都将会全部挂起暂停执行。

具体实现其实就是更新了ACT_RU_TASK表中的SUSPENSION_STATE_字段,挂起时改为2,而且通过REV_字段来控制数据安全,也是乐观锁的体现,若需要启动一个已经挂起的流程就会报如下错误:

启动流程

当我们启动一个流程实例之后,会在ACT_RU_* 对应的表结构中操作,运行时涉及的表一共有十张:

ACT_RU_DEADLETTER_JOB   正在运行的任务表

ACT_RU_EVENT_SUBSCR      运行时事件

ACT_RU_EXECUTION              运行时流程执行实例

ACT_RU_HISTORY_JOB          历史作业表

ACT_RU_IDENTITYLINK           运行时用户关系信息

ACT_RU_JOB                            运行时作业表

ACT_RU_SUSPENDED_JOB    暂停作业表

ACT_RU_TASK                          运行时任务表

ACT_RU_TIMER_JOB               定时作业表

ACT_RU_VARIABLE                  运行时变量表

启动一个实例时涉及到的表:

ACT_RU_EXECUTION              运行时流程执行实例

ACT_RU_IDENTITYLINK           运行时用户关系信息

ACT_RU_TASK                          运行时任务表

ACT_RU_VARIABLE                  运行时变量表

字段名称备注
ID_主键
REV_版本号
PRO_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_SATE_
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_表单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候选人(组),ower拥有人,participant参与者
USER_ID_用户ID
TASK_ID_任务ID
PROC_INST_ID_流程实例ID
PROC_DEF_ID_属性ID

流程审批

正常流程处理过程中涉及到的表结构

ACT_RU_EXECUTION    运行时流程执行实例

ACT_RU_IDENTITYLINK    运行时用户关系信息

ACT_RU_TASK     运行时任务表

ACT_RU_VARIABLE  运行时变量表

详细的表字段信息上面已经描述了,这里不再赘述。

流程审批完成

一个流程审批完成后,这四张表的数据将会被清空:

ACT_RU_EXECUTION    运行时流程执行实例

ACT_RU_IDENTITYLINK    运行时用户关系信息

ACT_RU_TASK     运行时任务表

ACT_RU_VARIABLE  运行时变量表

 因为最后一个审批节点已经审批完成此时这个这个流程就不属于运行中的流程了,所以这四张表中就没有这个流程的数据了。此时会将这个流程的相关数据记录到对应的历史表中

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_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_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_INDENTITYLINK    历史流程运行过程中的用户关系

字段名称备注
ID_主键
GROUP_ID_组编号
TYPE_类型
USER_ID_用户编号
TASK_ID_任务编号
CREATE_TIME_创建时间
PROC_INST_ID_流程实例编号
SCOPE_ID_
SCOPE_TYPE_
SCOPE_DEFINITION_ID_

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_
CATEGORY_优先级
TENANT_ID_租户编号

  • 16
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值