如何在并行流程活动图中添加依赖条件并解决现有缺陷?
活动图修正方案:搞定并行依赖与令牌悬挂问题
先明确需求
- 两个流程并行启动
- 流程1:步骤1完成后必走步骤2
- 流程2:步骤1之后,仅当满足特定条件时才执行步骤2
- 额外约束:流程2的步骤2,必须等流程1的步骤1完成后才能启动
原有方案的两个硬伤
- Fork与Join不匹配:分叉出的并行流数量和合并的数量对应不上,直接导致流程逻辑混乱
- 条件不满足时令牌“卡壳”:流程2不走步骤2的分支时,对应的令牌没有合理流向,卡在Join前导致流程无法推进
正确实现步骤
- 启动节点后接Fork,分出2条并行流:
- 并行流A(对应流程1):步骤1 → 步骤2 → 直接流向后续Join
- 并行流B(对应流程2):步骤1 → 条件网关(判断是否执行步骤2)
- 给并行流B的条件网关设置两个分支:
- 条件满足分支:添加同步节点(等待流程1的步骤1完成的令牌)→ 执行步骤2 → 流向Join
- 条件不满足分支:添加空活动(或直接连接到Join),让该分支的令牌直接汇入Join,避免悬挂
- 最后用Join合并这2条并行流的令牌(Fork分2条,Join合2条,数量完全匹配),确保流程正常推进
关键细节说明
- 同步节点专门用来承接流程1步骤1的完成信号,确保流程2的步骤2严格遵循依赖关系启动
- 空活动的作用是给不执行步骤2的分支提供合理的令牌流向,彻底解决令牌悬挂问题
- 严格保证Fork和Join的分支数量一致,从根源避免流程逻辑异常
内容的提问来源于stack exchange,提问作者user6580165
相关产品推荐
相关产品推荐

