工作流用于覆盖请假、用印、用车、入职、转正、调动、离职、合同、付款等企业审批场景。流程引擎负责建模、流转、任务和审批操作标准BPMN 2.0业务流程请假、报销、审批流 → OMG 制定已成为ISO 19510 国际标准Object Management Group对象管理组织全球最权威的「企业建模 / 流程 / 规则」标准制定非营利组织。DMN 1.3决策规则金额分级、风控、职级判定 → OMG 标准替代一堆 if-elseCMMN 1.1案例管理投诉、理赔、纠纷 → OMG 标准处理无固定顺序的复杂案件UML统一建模语言类图、时序图CORBA分布式对象通信标准老一代微服务MDA模型驱动架构从模型自动生成代码DDS实时数据分发工业物联网、航天BPMBusiness Process Management流程引擎是业务流程管理的核心中枢负责建模→执行→监控→优化全生命周期管理把复杂业务流程从代码中解耦实现可视化、可配置、可追溯、可集成。基于BPMN 2.0标准的流程执行内核解释并执行流程模型驱动任务路由、分配、状态流转与历史归档。核心能力BPMN 2.0 为核心1流程建模设计态可视化拖拽设计器画流程图开始 / 结束、任务、网关、事件。BPMN 元素任务人工审批、系统自动、脚本、子流程网关排他XOR、并行AND、包含OR、事件网关事件消息、定时、错误、补偿、信号扩展DMN决策表做审批规则CMMN案例管理处理非结构化场景。2流程执行运行态实例管理启动、暂停、终止、挂起、恢复、版本迁移。路由控制串行、并行、分支、汇聚、回退、跳转。任务分配角色 / 部门 / 人员 / 岗位 / 动态候选人、会签 / 或签。数据上下文流程变量、表单数据、参数传递、表达式路由。事务与补偿事务边界、重试、幂等、异常处理、回滚补偿。3流程监控与治理实时看板实例数、待办、逾期、耗时、通过率、瓶颈节点。历史追溯全链路日志、操作人、时间、数据快照、审计存档。权限与 SLA节点权限、超时提醒、催办、自动处理、绩效指标。版本管理流程迭代、灰度发布、新旧实例隔离。4集成与扩展API / 回调RESTful、WebHook、消息队列、事件驱动。表单引擎拖拽表单、字段校验、权限控制、数据绑定。低代码配置化开发、减少编码、快速上线。技术选型Flowable2016 从Activiti 6分叉社区驱动、开源彻底、轻量化、全标准支持Camunda由原 Activiti 核心团队基于Activiti 5重写企业导向、强稳定、强监控、商业生态成熟共同点都完全支持 BPMN 2.0、DMN 1.3都完美集成Spring BootFlowable6.x 稳定、7.x 开发活跃Apache 2.0完全开源无限制Camunda 72025-10EOL停止社区维护仅企业版付费支持Camunda 8Zeebe新架构、云原生、事件驱动、无关系库商业授权为主开源版功能弱FlowableFlowable是一款轻量级开源工作流引擎基于BPMN 2.0标准实现业务流程自动化。通过流程图直观定义引擎自动处理状态变更和事件通知。核心模块流程建模工具支持BPMN 2.0标准的XML格式流程定义流程引擎核心负责流程实例的生命周期管理任务管理模块处理人工任务分配与完成持久化层基于MyBatis的数据库操作封装事件监听机制支持流程执行过程中的事件回调REST API服务提供远程调用接口传统企业业务流程管理面临三大痛点硬编码实现业务规则变更需重新编译部署流程碎片化跨系统流程难以统一监控执行不透明缺乏流程执行轨迹的完整记录Flowable的诞生解决了这些核心问题动态流程配置通过修改BPMN文件即可调整流程逻辑统一执行环境所有流程节点在引擎内统一调度完整审计追踪自动记录每个流程节点的执行信息Maven项目properties spring.boot.version3.5.15/spring.boot.version flowable.version7.2.0/flowable.version /properties !-- SpringBoot Actuator 基础包actuator starter依赖它 -- dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-actuator/artifactId /dependency !-- BPM核心流程引擎 核心流程引擎流程定义、实例、任务、变量、异步执行器、BPMN 解析等基础能力 -- dependency groupIdorg.flowable/groupId artifactIdflowable-spring-boot-starter-process/artifactId version${flowable.version}/version /dependency !--对接 Spring Boot Actuator提供自定义监控端点 /actuator/flowable 总入口 流程引擎状态、任务统计、作业执行器指标、缓存信息 -- dependency groupIdorg.flowable/groupId artifactIdflowable-spring-boot-starter-actuator/artifactId version${flowable.version}/version /dependency !-- 如果需要REST接口 -- dependency groupIdorg.flowable/groupId artifactIdflowable-spring-boot-starter-process-rest/artifactId version${flowable.version}/version /dependencyyamlmanagement: endpoints: web: exposure: include: health,info,flowable endpoint: health: show-details: always # flowable actuator 相关暂无额外大量配置开箱即用 flowable: async-executor-activate: true database-schema-update: false # 生产建议关闭使用脚本初始化核心模块源码解析核心引擎层提供了BPMN工作流、CMMN案例管理和DMN决策的核心能力当调用ProcessEngineConfiguration.buildProcessEngine()时引擎初始化经历以下关键步骤初始化过程中会创建7个核心服务Repository/Runtime/Task/History等每个服务持有对其他服务的引用形成服务网格架构。flowable-engine: BPMN 2.0 流程引擎核心模块。flowable-cmmn-engine: CMMN 1.1 案例管理引擎。flowable-dmn-engine: DMN 1.1 决策引擎。flowable-idm-engine: 身份管理引擎处理用户、组和权限扩展引擎与服务层在核心引擎之上提供了模型、转换、REST API以及应用层面的支持。model/converter/validation 模块: 提供BPMN、CMMN等标准的模型定义、XML/JSON转换及校验功能REST API 模块: 为每个引擎提供独立的REST API例如flowable-rest(BPMN)、flowable-cmmn-rest、flowable-idm-rest等这些API模块最终可以被聚合到一个应用中。应用与集成模块: 包含flowable-app-engine(应用部署) 和flowable-spring-boot-starter等方便与Spring Boot集成。流程定义解析机制当部署BPMN文件时引擎会执行以下解析流程XML验证检查是否符合BPMN 2.0 Schema模型转换将XML节点转换为内部流程模型依赖检查验证网关、事件等节点的配置完整性持久化存储将流程定义存入ACT_RE_PROCDEF表任务调度算法Flowable采用异步任务队列定时器结合的调度机制异步任务处理通过AsyncJobExecutor线程池执行定时任务调度使用QuartzScheduler管理延迟任务死锁检测通过版本号机制防止并发修改冲突数据库表Flowable 数据库表命名规则ACT_RE_* : ’RE’表示 repository存储。RepositoryService 接口操作的表。带此前缀的表包含的是静态信息如流程定义流程的资源图片规则等。ACT_RU_* : ’RU’表示 runtime。RuntimeService, TaskService运行时的表存储着流程变量用户任务变量职责job等运行时的数据。flowable 只存储实例执行期间的运行时数据当流程实例结束时将删除这些记录。这就保证了这些运行时的表小且快。ACT_ID_* : ’ID’表示 identity (组织机构)。IdentityService包含标识的信息如用户用户组等等。ACT_HI_* : ’HI’表示 history。HistoryService包含着历史的相关数据如结束的流程实例变量任务等等。ACT_GE_* : 存储通用的数据如ACT_GE_BYTEARRAY(存储BPMN文件、图片等二进制资源)、ACT_GE_PROPERTY(系统属性)FLW_*Flowable扩展引擎Flowable在核心引擎之外提供了多种扩展功能其表结构通常以FLW_为前缀-FLW_ACTION_: 动作引擎存储可触发的动作定义与实例。-FLW_AUDIT_: 审计引擎存储业务事件审计流。-FLW_CO_: 内容引擎用于存储文档、图片等内容。-FLW_DO_: 数据对象引擎用于存储和查询对象常与主数据管理结合使用。-FLW_ENGAGE_: 协同引擎支持会话和消息功能。数据库表结构 (34 张表不同版本数量可能会有出入)一般数据 (2)ACT_GE_BYTEARRAY 通用的流程定义和流程资源ACT_GE_PROPERTY 系统相关属性流程定义表 (3)ACT_RE_DEPLOYMENT 部署单元信息ACT_RE_MODEL 模型信息ACT_RE_PROCDEF 已部署的流程定义运行实例表 (10)ACT_RU_EXECUTION 运行时流程执行实例ACT_RU_DEADLETTER_JOB 正在运行的任务表ACT_RU_EVENT_SUBSCR 运行时事件ACT_RU_HISTORY_JOB 历史作业表ACT_RU_IDENTITYLINK 运行时用户关系信息ACT_RU_JOB 运行时作业表ACT_RU_SUSPENDED_JOB 暂停作业表ACT_RU_TASK 运行时任务表ACT_RU_TIMER_JOB 定时作业表ACT_RU_VARIABLE 运行时变量表流程历史记录 (8)ACT_HI_ACTINST 历史的流程实例ACT_HI_ATTACHMENT 历史的流程附件ACT_HI_COMMENT 历史的说明性信息ACT_HI_DETAIL 历史的流程运行中的细节信息ACT_HI_IDENTITYLINK 历史的流程运行过程中用户关系ACT_HI_PROCINST 历史的流程实例ACT_HI_TASKINST 历史的任务实例ACT_HI_VARINST 历史的流程运行中的变量信息用户用户组表 (9)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 系统登录日志表ACT_ID_USER 用户表其他表 (2)ACT_EVT_LOG 事件日志表ACT_PROCDEF_INFO 流程定义信息参考文档流程设计器BPMN | RuoYi Office 文档Flowable数据字典详解数据库表结构与命名规则-开发者社区-阿里云Overview (Flowable Open Source 7.2.0.10)Flowable工作流引擎深度解析从源码到架构设计-百度开发者中心