完整教程:Flowable工作流引擎:核心表结构概述

❃博主首页 :「程序员1970」,同名公众号「程序员1970」
☠博主专栏 :<mysql高手><elasticsearch高手><源码解读><java核心><面试攻关>

Flowable 6.8工作流引擎的表结构设计体现了模块化、高效性和可扩展性,其核心表按功能划分为存储库表(RE)、运行时表(RU)、历史表(HI)、身份表(ID)和通用表(GE)五大类。

一、表命名规则与通用结构

Flowable 的表名遵循“前缀+特性标识+后缀”的命名规则,便于敏捷识别表的用途和所属模块:

  • ACT_:核心引擎表,涵盖流程引擎、CMMN 引擎(案例管理模型和符号)、DMN 引擎(决策模型和符号)相关表。
  • FLW_:Flowable 扩展模块表,如 Action、Audit、Form 等特定功能表。
  • FLWCTRL:Flowable 控制模块相关表。
  • GE_:通用数据表,存储引擎配置等跨模块数据。
  • RU_(Runtime):运行时数据表,仅存储未完成实例的运行时数据,执行完成后自动删除,保证表小且快。
  • HI_(History):历史数据表,持久化存储已达成实例的历史记录。
  • RE_(Repository):静态模型定义表,存储流程定义、模型等静态资源。

二、模块划分与能力

  1. 存储库表(RE_)

    • 功能:存储静态流程定义和资源档案(如BPMN XML、流程图)。
    • 核心表
      • ACT_RE_DEPLOYMENT:记录部署操作的基本信息(如部署时间、名称)。
      • ACT_RE_PROCDEF:存储流程定义元数据(如流程ID、版本、关联资源)。
      • ACT_GE_BYTEARRAY:存储二进制资源(如BPMN文件、流程图)。
  2. 运行时表(RU_)

    • 功能:存储流程实例运行时的动态数据,实例结束后自动删除,保证表小且快。
    • 核心表
      • ACT_RU_EXECUTION:记录流程实例的执行路径(如主执行流、并行网关分支)。
      • ACT_RU_TASK:跟踪当前活动的用户任务(如任务ID、办理人、所属流程实例)。
      • ACT_RU_VARIABLE:存储流程变量(支持基础类型和序列化对象)。
      • ACT_RU_JOB:管理异步任务(如定时器、延迟任务)。
  3. 历史表(HI_)

    • 功能:持久化存储已完毕实例的历史数据,协助审计和分析。
    • 核心表
      • ACT_HI_PROCINST:记录流程实例的历史(如开始时间、结束时间、持续时间)。
      • ACT_HI_TASKINST:存储任务执行历史(如办理人、办理时间)。
      • ACT_HI_VARINST:记录变量变更历史。
  4. 身份表(ID_)

    • 功能:管理用户、组及权限关系。
    • 核心表
      • ACT_ID_USER:存储用户信息(如姓名、邮箱、密码)。
      • ACT_ID_GROUP:存储用户组信息。
      • ACT_ID_MEMBERSHIP:定义用户与组的关联关系。
  5. 通用表(GE_)

    • 功能:存储跨模块的通用数据(如引擎配置)。
    • 核心表
      • ACT_GE_PROPERTY:记录系统属性(如数据库版本、引擎版本)。

三、功能模块与扩展支持

  1. 流程引擎(Process Engine)

    • 核心功能:支持BPMN 2.0标准,处理顺序流、网关、事件等流程元素。
    • 扩展支持
      • CMMN引擎:管理非结构化流程(如案例计划项、里程碑)。
      • DMN引擎:执行决策表,支持复杂业务规则。
  2. 表单与内容管理

    • 表单定义FLW_FO_FORM_DEFINITION存储表单结构。
    • 表单实例FLW_FO_FORM_INSTANCE记录用户填写的表单数据。
    • 内容存储FLW_CO_CONTENT_OBJECT存储二进制文件(如上传的附件)。
  3. 审计与策略

    • 审计日志FLW_AUDIT_INSTANCE记录业务事件(如操作时间、操作者)。
    • 访问策略FLW_POLICY_DEFINITION定义权限控制规则。
  4. 服务集成

    • 服务定义FLW_SE_DEFINITION存储REST服务配置,支持外部系统调用。

四、表关系

  • 流程定义→实例ACT_RE_PROCDEF(流程定义)通过PROC_DEF_ID_关联到ACT_RU_EXECUTION(流程实例)。
  • 实例→任务ACT_RU_EXECUTION通过PROC_INST_ID_关联到ACT_RU_TASK(任务)。
  • 任务→历史ACT_RU_TASK通过TASK_ID_关联到ACT_HI_TASKINST(任务历史)。

Flowable 在继承Activiti的基础上,通过增加CMMN、DMN支持和更丰富的扩展模块表结构,提供了更全面的BPM解决方案,尤其适合需要灵活、高效流程管理的企业级应用。


关注公众号获取更多技术干货 !

posted @ 2025-11-22 15:36  gccbuaa  阅读(3)  评论(0)    收藏  举报