Flowable02表结构--------------持续更新中

那么根据上文我们已经将flowable引入springboot项目中去了,而flowable这个框架本质上来说就是对这60张表操作的封装。那么明白这60张表是干啥的对我们理解使用这个框架非常的有帮助。如下是这60多张表的具体解释,当然不需要全部记住,最下边会有比较重要表的总结,若是追求速成可直接看最后的核心关系

Flowable 的表都以 ACT_ 开头,这是沿用了其前身 Activiti 的命名习惯。表名的第二部分由两个字母组成,用于对表进行分类。下面我将按照这个分类来为你详细解释每一类表的核心作用和关键表。

核心表分类概览

ACT_RE_*: RE 代表 Repository(资源库)。这类表存放的是流程的“静态”定义信息,比如 BPMN 文件内容、流程定义、部署信息等。这些数据在流程部署后基本是只读的。
ACT_RU_*: RU 代表 Runtime(运行时)。这类表存放的是流程实例在“运行时”的动态数据,比如正在进行的流程实例、用户任务、流程变量等。这些表的数据变化非常频繁,流程结束后相关记录会被删除。
ACT_HI_: HI 代表 History(历史)。这类表存放的是流程实例的“历史”数据,包括已完成的流程实例、活动、任务等。这些表的数据会不断增长,主要用于审计、统计和报表。
ACT_GE_
: GE 代表 General(通用)。这类表存放的是一些通用数据,比如附件、属性配置、作业等,不与特定业务流程强耦合。
ACT_ID_*: ID 代表 Identity(身份)。这类表存放的是 Flowable 内置的用户和用户组信息。在实际项目中,这部分功能通常会与企业自己的用户权限系统(如 Spring Security、LDAP)集成,所以这些表可能不会被使用。

  1. ACT_RE_ (Repository) - 静态资源库表*

核心作用:存放流程的“设计蓝图”。一旦部署,这些定义就是创建流程实例的模板。

ACT_RE_DEPLOYMENT 流程部署表 每次部署一个或多个 BPMN
文件,就会在这里插入一条记录。它是一个部署单元。关键字段:ID_ (部署ID), NAME_ (部署名称)。

ACT_RE_PROCDEF 流程定义表 这是最重要的表之一。存放解析后的流程定义信息。每次部署 BPMN 文件,引擎会解析文件中的
标签,每个标签生成一条记录。关键字段:ID_ (流程定义ID,格式为 key:version:id), KEY_
(流程定义的 key,BPMN文件中的 process 标签的 id 属性), VERSION_ (版本号,同一个 key
多次部署会自动递增), DEPLOYMENT_ID_ (外键,关联 ACT_RE_DEPLOYMENT)。

ACT_RE_MODEL 流程模型表 如果你使用 Flowable 的在线流程设计器(Flowable
Modeler),那么设计的流程模型会保存在这里。它存储的是模型的元数据和 JSON/XML 源码,需要“部署”后才会转化为
ACT_RE_PROCDEF 中的定义。

关系比喻: ACT_RE_DEPLOYMENT 就像一个文件夹,你把设计好的图纸放进去。 ACT_RE_PROCDEF
就是文件夹里具体的每一张“建筑蓝图”(比如一号楼蓝图、二号楼蓝图)。 ACT_RE_MODEL 是你用 CAD 软件画图时保存的 .dwg
源文件。

  1. ACT_RU_ (Runtime) - 运行时数据表*

核心作用:跟踪和管理所有正在运行的流程实例,是引擎的“当前工作台”。

ACT_RU_EXECUTION 运行时执行实例表 存放流程实例和执行分支。每个流程实例(Process
Instance)至少有一个执行实例(Execution)。如果流程中有并行网关、子流程等,一个流程实例会对应多个执行实例,形成树状结构。关键字段:ID_
(执行实例ID), PROC_INST_ID_ (流程实例ID,根执行实例的 ID_ 和 PROC_INST_ID_ 相同),
PARENT_ID_ (父执行实例ID), ACT_ID_ (当前活动节点的ID)。

ACT_RU_TASK 运行时任务表 存放当前所有待处理的“用户任务”(User
Task)。这是用户待办列表的数据来源。任务完成后,记录会从该表删除。关键字段:ID_ (任务ID), ASSIGNEE_ (任务办理人),PROC_INST_ID_ (所属流程实例ID), EXECUTION_ID_ (所属执行实例ID)。

ACT_RU_VARIABLE 运行时流程变量表 存放每个流程实例在运行时的变量。这些变量用于驱动流程逻辑(如网关判断)。流程结束时,记录会被删除。关键字段:EXECUTION_ID_
(关联执行实例), TASK_ID_ (关联任务,用于任务局部变量), NAME_ (变量名), TYPE_ (变量类型), TEXT_,DOUBLE_, LONG_ (存储不同类型的值)。

ACT_RU_IDENTITYLINK 运行时身份关联表 用于管理任务的参与者,比如“候选人”(Candidate
User)或“候选组”(Candidate Group)。当一个任务有多个候选人时,ACT_RU_TASK 表的 ASSIGNEE_ 为null,而具体候选信息存在此表。

ACT_RU_JOB / TIMER_JOB / DEADLETTER_JOB 作业相关表 用于处理异步任务。JOB (通用异步任务),
TIMER_JOB (定时器任务), DEADLETTER_JOB
(死信作业,执行失败且重试耗尽的作业)。例如,定时器事件、异步延续(async continuation)等都会在这里创建作业记录,由 Job Executor 线程池来执行。

关系比喻: ACT_RU_EXECUTION 是工厂里正在生产的“订单”(流程实例),以及订单下的各个“工序”(执行实例)。
ACT_RU_TASK 是需要工人操作的“待办任务清单”。 ACT_RU_VARIABLE 是贴在订单上的“生产要求和参数”。

  1. ACT_HI_ (History) - 历史数据表*

核心作用:记录流程的“生命周期全过程”,用于数据分析、审计和监控。

ACT_HI_PROCINST 历史流程实例表 存放所有已启动(包括已完成和未完成)的流程实例信息。流程一启动就会在这里创建记录。关键字段:ID_ (同流程实例ID), START_TIME_, END_TIME_, DURATION_ (持续时间), START_USER_ID_(发起人)。

ACT_HI_ACTINST 历史活动实例表 记录流程实例中流转过的所有“活动节点”(如用户任务、服务任务、网关等)。通过查询此表,可以绘制出流程的实际执行路径。

ACT_HI_TASKINST 历史任务实例表 ACT_RU_TASK
的历史版本。记录所有创建过的用户任务,无论是否完成。关键字段:ASSIGNEE_,START_TIME_, END_TIME_,DURATION_。

ACT_HI_VARINST 历史流程变量表 记录流程变量的每一次创建和更新。可以用来追溯某个变量在流程执行过程中的所有历史值。

ACT_HI_IDENTITYLINK 历史身份关联表 ACT_RU_IDENTITYLINK 的历史版本,记录任务曾经的参与者。

ACT_HI_DETAIL 历史详情表 存放更详细的历史信息,通常是流程表单提交的数据或变量的详细变更记录。
关系比喻:
ACT_HI_PROCINST 是工厂的“历史订单总账”。 ACT_HI_ACTINST
是每个订单详细的“生产流转卡”,记录了经过的每一个工位。 ACT_HI_TASKINST 是工人的“已完成工作日志”。

  1. ACT_GE_ (General) - 通用数据表*

ACT_GE_PROPERTY 属性表 存储 Flowable 引擎的全局属性,最重要的是
schema.version,用于记录当前数据库模式的版本,引擎启动时会检查此版本以决定是否需要进行数据库升级。

ACT_GE_BYTEARRAY 二进制数据表 一个非常重要的表,用于存储二进制数据。例如:BPMN 文件的 XML
内容、流程图图片、序列化的流程变量等。ACT_RE_DEPLOYMENT 和 ACT_RE_PROCDEF 等表会通过
BYTEARRAY_ID_ 字段关联到这里来获取具体内容。

  1. ACT_ID_ (Identity) - 身份认证表*

核心作用:提供一套独立的用户权限管理功能。在真实项目中不常用。

ACT_ID_USER 用户表 存储用户信息。

ACT_ID_GROUP 用户组表 存储用户组/角色信息。

ACT_ID_MEMBERSHIP 用户与组关系表 建立用户和组之间的多对多关系。

ACT_ID_INFO 用户扩展信息表 存储用户的额外信息。

总结与核心关系

一个典型的流程生命周期与这些表的关系如下:
部署阶段:
你上传一个 BPMN (BPMN 是一套国际公认的、标准化的图形化语言,专门用来画业务流程图)文件。
在 ACT_RE_DEPLOYMENT 中创建一条部署记录。
在 ACT_GE_BYTEARRAY 中存储 BPMN 的 XML 内容。
在 ACT_RE_PROCDEF 中创建一条或多条流程定义记录。
启动流程实例阶段:
你根据 ACT_RE_PROCDEF 的 KEY 来启动一个新流程。
在 ACT_RU_EXECUTION 中创建一条根执行实例(代表流程实例)。
同时,在 ACT_HI_PROCINST 中创建一条历史流程实例记录。
流程流转到第一个节点,在 ACT_HI_ACTINST 中记录这个活动。
任务处理阶段:
如果流转到用户任务节点,就在 ACT_RU_TASK 中创建一条待办任务。
同时,在 ACT_HI_TASKINST 中创建一条历史任务记录。
当用户办理任务时,可能会设置/修改流程变量,这些变化会记录在 ACT_RU_VARIABLE 和 ACT_HI_VARINST 中。
流程结束阶段:
当流程走到结束事件时,所有位于 ACT_RU_* 表中与该流程实例相关的数据(如 EXECUTION, TASK, VARIABLE 等)都会被删除。
ACT_HI_PROCINST, ACT_HI_TASKINST, ACT_HI_ACTINST 等历史表中的相应记录会被更新,填上 END_TIME_ 和 DURATION_ 等信息,并永久保留下来。

本系列持续更新中。。。。。。。。。

你可能感兴趣的:(flowable,java,前端,servlet,spring,boot,flowable)