
Flowable 网关终极指南排他、并行、包容网关的 10 个实战场景【免费下载链接】flowable-userguideFlowable最新中文文档,ai自动生成BPM体验地址http://flow.je4.cn/#/login项目地址: https://gitcode.com/gh_mirrors/fl/flowable-userguideFlowable 是业内最流行的开源工作流引擎之一而Flowable 网关正是控制流程走向的核心构件。很多新手面对排他网关、并行网关、包容网关、基于事件网关这四种菱形图标时一头雾水不知道什么时候该用哪一种更不知道如何用它们搭建真实的业务审批流程。本文用 10 个贴近实战的场景带你彻底搞懂 Flowable 排他网关、并行网关与包容网关的区别、用法和避坑要点看完即可上手建模。一、先认识 Flowable 网关流程的“交通指挥员”在 BPMN 2.0 标准中网关Gateway用菱形表示负责消费和生成流程执行标志Token简单说就是决定流程下一步往哪里走。Flowable 的官方文档V6.4.2/docs/userguide/src/zh_CN/bpmn/ch07b-BPMN-Constructs.adoc对网关做了系统讲解本节带你快速抓住要点。Flowable 共有四种网关识别它们只需看菱形内部的图标网关类型图标特征核心逻辑典型用途排他网关内部带 ✕无图标默认也是排他只选一条条件为真的分支审批决策、金额分流并行网关内部带 加号所有分支同时走忽略条件会签、并行任务包容网关内部带 ○圆圈条件为真的分支都走条件并行、灵活分发基于事件网关内部带事件图标靠事件信号/定时器决定走向超时等待、竞速选择上图就是 Flowable 并行网关最经典的“拆分—合并”模型流程从开始事件出发并行网关把它分成“收款”和“发货”两条路径两个任务都完成后第二个并行网关再合并执行“归档订单”。二、排他网关实战条件决策的 3 个场景排他网关Exclusive Gateway也叫异或网关用来对流程中的决策建模。执行到达网关后会按顺序计算各出口顺序流的条件只选择第一条条件为 true 的分支继续。如果多条分支都满足只会走 XML 中最先定义的那一条。场景 1按金额大小自动分流审批 最典型的场景是费用报销金额小于 1000 元由经理审批1000~5000 元由总监审批超过 5000 元需要总经理审批。只需在排他网关的三条出口顺序流上分别配置${amount 1000}、${amount 1000 amount 5000}、${amount 5000}三个条件即可Flowable 会按顺序匹配并只走一条路径。场景 2用默认顺序流做兜底避免流程异常 ⚠️排他网关有个新手容易踩的坑如果所有条件都不满足流程会直接抛出异常。正确做法是给网关指定一条默认顺序流default sequence flow当其他条件都不成立时自动走默认分支。比如审核流程中条件只有“通过”和“驳回”就可以把“退回修改”设成默认流保证任何情况流程都能继续。场景 3多条件组合判断的优先级路由 当同一个网关有多个条件同时为真时Flowable 只会选择在 XML 中先定义的那条顺序流。利用这一特性可以巧妙实现优先级路由比如“VIP 客户专线”条件放在“普通渠道”条件前面即使两个条件都满足也会优先走 VIP 分支。这就是排他网关先到先得的执行机制。三、并行网关实战并行执行的 3 个场景并行网关Parallel Gateway代表“与AND”逻辑分支时所有出口顺序流都会并行执行合并时必须等每一条入口顺序流都到达才能继续。特别要注意并行网关不计算条件顺序流上写了条件也会被忽略。场景 4订单履约的收款与发货并行 就是前面图片中的模型下单后同时执行“收款”和“发货”两个任务两个都完成后才进入“归档订单”。用并行网关建模比串行执行效率高得多且代码只需一行parallelGateway idfork /。场景 5部门会签与多人协同任务 公司重要事项需要财务、法务、人力三个部门共同确认用并行网关把流程分成三条分支三个部门各自审批全部完成后汇聚进入下一环节。注意合并网关会等待所有分支到达因此分支任务必须保证都能正常结束否则流程会卡住。场景 6利用“不平衡”并行网关做灵活合并 Flowable 的并行网关并不要求前后“平衡”。官方文档ch07b-BPMN-Constructs.adoc中的并行网关章节给出了一个合法的非平衡模型三个任务并行其中两个先汇聚触发第四个任务第三个任务完成后直接汇入终点。这种写法在 BPMN 2.0 中完全合法适合“部分分支先汇合、整体再收口”的复杂业务。四、包容网关实战条件并行的 2 个场景包容网关Inclusive Gateway可以看作排他网关 并行网关的组合体它像排他网关一样计算出口条件又像并行网关一样可以同时选择多条条件为真的分支。合并时它只会等待“实际可能到达”的分支比并行网关更智能。场景 7按客户需求同时触发多个动作 比如订单流程中paymentReceived true就执行收款确认shipOrder true就执行发货。用包容网关建模后条件同时为真时两个任务并行执行只有一个为真时只执行一个都没有则抛出异常可用默认流兜底。场景 8包容网关 vs 排他网关怎么选这是初学者最容易混淆的地方排他网关只选一条分支包容网关可选多条分支。判断标准很简单——业务上“只能二选一”用排他网关如通过/驳回“符合条件的都要做”用包容网关如同时通知多方。选错网关会让流程结果与业务预期完全相反务必先画清楚分支条件再落模型。五、进阶实战事件网关与网关组合的 2 个场景场景 9基于事件网关实现“人工确认 or 超时自动处理” ⏰基于事件网关Event-based Gateway是第四种网关执行到达时流程暂停同时订阅所有出口的事件如信号、定时器哪个事件先触发就走哪条分支另一个订阅会被取消。典型场景发起预警后等待操作员 10 分钟内确认超时自动升级处理。注意这类网关要求至少有两条出口顺序流且只能连接捕获中间事件。场景 10网关组合拳搭建真实业务全流程 ️真实项目很少只用一种网关。以销售线索评审流程为例参见V6.4.2/docs/userguide/src/zh_CN/bpmn/ch07b-BPMN-Constructs1.adoc先用并行网关拆分“客户评级”和“盈利评估”两条并行分支再用排他网关判断是否补充资料最后汇聚入库 CRM。下面的流程定义图直观展示了并行网关与排他网关✕在同一流程中的协作建模时建议遵循“先并行、再决策、后汇聚”的思路并行网关负责拆任务排他/包容网关负责做判断基于事件网关处理外部等待各司其职流程会非常清晰。六、网关使用的 4 个避坑提醒 ️排他网关必须兜底所有条件都不满足会抛异常务必配置默认顺序流。并行网关不认条件在并行网关上写条件无效条件逻辑请移到其他节点。合并网关会等分支并行/包容网关的汇聚会等待要保证每条分支都能走到合并点避免流程死锁。注意乐观锁并发多分支并发汇聚时 Flowable 靠乐观锁保证一致性高并发场景请参考官方文档中关于异步操作与并发合并的说明ch07b-BPMN-Constructs.adoc的异步操作章节。结语从会用网关到会用流程 Flowable 网关是流程建模的“灵魂”掌握了排他、并行、包容、事件四种网关的选择逻辑就等于掌握了绝大多数业务流程的搭建能力。建议动手在 Flowable 流程设计器中图片素材见V6.4.2/docs/userguide/src/zh_CN/bpmn/images/目录把本文的 10 个场景各画一遍跑通后再对照官方文档ch07b-BPMN-Constructs.adoc深挖细节你会很快从新手进阶为流程建模高手。【免费下载链接】flowable-userguideFlowable最新中文文档,ai自动生成BPM体验地址http://flow.je4.cn/#/login项目地址: https://gitcode.com/gh_mirrors/fl/flowable-userguide创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考