# 第4章 多节点串联与分支条件:条件分支、并行分支、节点顺序与依赖 ## 适用场景 条件分支与并行分支是B端审批流程中实现复杂业务逻辑的核心机制。条件分支用于根据审批内容的不同属性(金额、部门、类型等)动态选择后续审批路径;并行分支用于需要多个角色同时审批的场景(如会签、联合审批)。节点顺序与依赖确保流程在分支合并后仍能保持正确的执行时序,防止出现“先审批后补材料”等逻辑错误。 | 场景类型 | 典型业务举例 | 分支模式 | |---------|------------|---------| | 费用报销 | 金额≤5000元走快速通道,>5000元走逐级审批 | 条件分支 | | 合同会签 | 法务、财务、业务部门同时签署意见 | 并行分支+合并 | | 采购申请 | 普通物资走标准流程,危险品需增加安环审批节点 | 条件分支+串行追加 | | 人事任免 | 部门内晋升与跨部门调动的审批路径不同 | 条件分支+嵌套并行 | ## 前置条件 - 已完成至少2个单节点的配置与回退测试 - 流程引擎支持并行网关(AND-Split)和排他网关(XOR-Split) - 配置人员拥有“流程模板编辑”与“分支条件规则”权限 - 已明确所有分支路径的终态节点(统一合并或各自结束) ## 操作步骤 ### 阶段一:梳理节点依赖关系 1. 列出所有审批节点,标注每个节点的前置节点ID(单一依赖或多依赖) 2. 识别“条件分支点”——根据表单字段值产生路径分叉的节点 3. 识别“并行分支点”——需要同时分发给多个审批角色的节点 4. 确认合并策略:全部完成才继续(AND-Join)或任一完成即继续(OR-Join) > **注意**:条件分支的条件表达式应使用枚举值或数值区间,避免使用自由文本匹配。 ### 阶段二:配置分支网关 1. 在流程设计器中添加“排他网关”(XOR),连接上游节点 2. 为每条分支配置“条件表达式”,例如:`${amount <= 5000}` 3. 添加“并行网关”(AND),设置并行审批节点列表 4. 分支路径结束后添加“合并网关”,配置合并策略为“全部到达”或“任意到达” ### 阶段三:设置回退规则 1. 分支内的回退:回退到本分支内的前一节点(不跨分支) 2. 合并后的回退:回退至合并网关重新分发 3. 条件分支回退:重新计算条件表达式,可能改变原始路径 ## 输入输出物 | 方向 | 内容 | 格式/载体 | |------|------|-----------| | **输入** | 待办事项列表(包含所有分支节点) | JSON 结构化数据 | | **输入** | 并行分支配置任务(角色与人员映射表) | Excel 配置表 | | **输出** | 配置完成的流程图(含分支条件与依赖) | BPMN 模型文件 | | **输出** | 分支路径测试报告(含全覆盖矩阵) | PDF 文档 | | **输出** | 回退策略文件(含分支优先级规则) | 流程配置附件 | ## 责任边界 - **产品经理**:定义分支条件的具体业务规则(如金额阈值、部门属性映射) - **开发工程师**:配置分支网关和合并网关,编写条件表达式 - **测试工程师**:编写分支全覆盖测试用例,验证每个条件分支的走向和回退还回位置 - **运维人员**:监控并行分支的超时情况,手动重置异常分支状态 ## 记录材料 - **分支条件规则表**:每条分支的业务含义、触发条件、优先级 - **并行审批角色映射表**:会签角色名单、签署顺序(如有)、超时策略 - **节点依赖矩阵**:所有节点间的前驱后继关系,包括分支前后的依赖变更 ## 异常处理 | 异常场景 | 表现 | 处理方式 | |----------|------|----------| | 条件分支无匹配路径 | 流程卡死在分支网关 | 增加“默认分支”路径作为兜底 | | 并行节点超时 | 部分审批人未处理,整体流程停滞 | 设置并行分支超时阈值,超时后自动跳过或转人工 | | 合并网关条件冲突 | AND-Join 与 OR-Join 混用导致死锁 | 统一合并策略,避免同一合并点混合策略 | | 回退至分支前路径不一致 | 用户期望回退到原始分支,实际回到合并网关 | 配置“回退到原始分支节点”而非合并网关 | ## 验收标准 | 验收项目 | 预期结果 | 验证方法 | |----------|----------|----------| | 条件分支路径测试 | 每个条件值都能走到正确分支 | 输入不同金额,检查审批路径 | | 并行分支并发测试 | 所有并行节点同时生成待办 | 观察所有并行审批角色的待办列表 | | 合并后时序正确 | 合并后节点在所有分支完成后才激活 | 只完成部分并行节点,确认合并后节点未激活 | | 回退不跨分支 | 分支内回退不会跳转到其他分支 | 在分支中间节点发起回退,确认回到本分支前一节点 | | 条件重新计算 | 回退后再次提交,条件值变化可改变路径 | 修改表单字段值,确认分支流向变化 |
分支设计黄金原则:每个分支网关必须有一个“默认分支”作为未匹配条件的兜底路径;并行分支节点数不宜超过5个,否则超时管理成本急剧升高;条件表达式中的字段必须在流程变量中存在且已赋值。
实战提效技巧:使用“分支矩阵表”提前规划所有条件值组合,避免遗漏;并行审批时设置“签署顺序”可减少合并后的排序问题;为每个分支节点配置独立的超时自动促进策略。
常见设计陷阱:条件分支的条件表达式使用了文本模糊匹配,导致多个分支同时命中;并行分支的合并网关误用OR-Join,导致部分审批人未签署即通过;回退策略未考虑分支上下文,导致重新路由后角色权限不足。