# 分流合流
在流程设计中,平行签核是一种常见的需求,允许多个审批节点并行执行。平行签核的实现方式包括会签、或签和条件流转。本文将详细介绍这些方法及其实现步骤。
# 一、 平行签核的基本概念
# 1.1 会签
- 特点:所有并行路径的审批节点都需要完成审批后,流程才会继续。
 - 适用场景:需要多个部门或角色同时审批的场景。
 
# 1.2 或签
- 特点:只要有一条并行路径的审批节点完成审批,流程就会继续。
 - 适用场景:只需要一个部门或角色审批即可继续流程的场景。
 
# 1.3 条件流转
- 特点:根据条件决定是否执行某条并行路径。
 - 适用场景:某些情况下需要特定部门或角色审批的场景。
 
# 二、 实现平行签核的步骤
# 2.1 添加分流网关和合流网关
- 在流程设计器中,拖拽一个 分流网关 和一个 合流网关 到画布中。
 - 在分流网关和合流网关之间添加多个并行节点(例如技术、品控、采购)。
 - 将分流网关与这些节点连接起来,再将节点与合流网关连接起来。
 
 ▲ 添加分流网关和合流网关
# 2.2 设置会签
- 默认行为:所有并行路径的审批节点都需要完成审批后,流程才会继续。
 - 无需额外设置。
 
# 2.3 设置或签
- 打开 合流网关 的属性,进入 规则 页签。
 - 在合流规则中输入代码:   
return true; 
 ▲ 设置或签
- 保存流程。
 
- 执行逻辑:只要有一条并行路径的审批节点完成审批,流程就会继续。
 
# 2.4 设置条件流转
- 打开分流网关到某个节点的连接线属性。
 - 在 条件 页签中设置条件,例如:
- 技术:无条件(默认执行)。
 - 品控:折扣 > 0.8(
Convert.ToDecimal(FormRootRow["折扣"])>0.8)。 - 采购:无条件(默认执行)。
 
 
 ▲ 设置条件流转
- 保存流程。
 
- 执行逻辑:
- 如果折扣 ≤ 0.8,系统只会执行技术和采购。
 - 如果折扣 > 0.8,系统会执行技术、品控和采购。
 
 
# 三、 复杂场景的实现
# 3.1 部分签核
- 需求:例如,80% 的审批节点完成审批后,流程继续。
 - 实现方法:
- 在合流规则中编写逻辑,统计已完成审批的节点数量。
 - 如果已完成审批的节点数量达到 80%,返回 
true。 
 
# 3.2 特定角色优先签核
- 需求:例如,总经理审批后直接继续流程,否则需要 80% 的审批节点完成审批。
 - 实现方法:
- 在合流规则中编写逻辑,检查总经理是否已完成审批。
 - 如果总经理已完成审批,返回 
true。 - 否则,统计已完成审批的节点数量,如果达到 80%,返回 
true。 
 
# 四、 平行签核的总结
| 类型 | 特点 | 适用场景 | 
|---|---|---|
| 会签 | 所有并行路径的审批节点都需要完成审批 | 需要多个部门或角色同时审批的场景 | 
| 或签 | 只要有一条并行路径的审批节点完成审批 | 只需要一个部门或角色审批即可继续流程的场景 | 
| 条件流转 | 根据条件决定是否执行某条并行路径 | 某些情况下需要特定部门或角色审批的场景 | 
# 五、 注意事项
- 合流规则的执行时机:
- 每次有一条路径完成审批时,合流规则都会执行一次。
 
 - 条件设置的准确性:
- 确保条件设置正确,避免流程逻辑错误。
 
 - 复杂逻辑的实现:
- 对于复杂的合流规则,建议由资深开发人员编写代码。
 
 
# 六、 总结
- 会签:所有并行路径的审批节点都需要完成审批。
 - 或签:只要有一条并行路径的审批节点完成审批,流程就会继续。
 - 条件流转:根据条件决定是否执行某条并行路径。
 
通过熟练掌握平行签核的实现方法,可以灵活设计流程,满足复杂的业务需求。