# 分流合流

在流程设计中,平行签核是一种常见的需求,允许多个审批节点并行执行。平行签核的实现方式包括会签、或签和条件流转。本文将详细介绍这些方法及其实现步骤。

# 一、 平行签核的基本概念

# 1.1 会签

  • 特点:所有并行路径的审批节点都需要完成审批后,流程才会继续。
  • 适用场景:需要多个部门或角色同时审批的场景。

# 1.2 或签

  • 特点:只要有一条并行路径的审批节点完成审批,流程就会继续。
  • 适用场景:只需要一个部门或角色审批即可继续流程的场景。

# 1.3 条件流转

  • 特点:根据条件决定是否执行某条并行路径。
  • 适用场景:某些情况下需要特定部门或角色审批的场景。

# 二、 实现平行签核的步骤

# 2.1 添加分流网关和合流网关

  1. 在流程设计器中,拖拽一个 分流网关 和一个 合流网关 到画布中。
  2. 在分流网关和合流网关之间添加多个并行节点(例如技术、品控、采购)。
  3. 将分流网关与这些节点连接起来,再将节点与合流网关连接起来。

添加分流网关和合流网关 ▲ 添加分流网关和合流网关

# 2.2 设置会签

  • 默认行为:所有并行路径的审批节点都需要完成审批后,流程才会继续。
  • 无需额外设置

# 2.3 设置或签

  1. 打开 合流网关 的属性,进入 规则 页签。
  2. 在合流规则中输入代码: return true;

设置或签 ▲ 设置或签

  1. 保存流程。
  • 执行逻辑:只要有一条并行路径的审批节点完成审批,流程就会继续。

# 2.4 设置条件流转

  1. 打开分流网关到某个节点的连接线属性。
  2. 条件 页签中设置条件,例如:
    • 技术:无条件(默认执行)。
    • 品控:折扣 > 0.8(Convert.ToDecimal(FormRootRow["折扣"])>0.8)。
    • 采购:无条件(默认执行)。

设置条件流转 ▲ 设置条件流转

  1. 保存流程。
  • 执行逻辑
    • 如果折扣 ≤ 0.8,系统只会执行技术和采购。
    • 如果折扣 > 0.8,系统会执行技术、品控和采购。

# 三、 复杂场景的实现

# 3.1 部分签核

  • 需求:例如,80% 的审批节点完成审批后,流程继续。
  • 实现方法
    1. 在合流规则中编写逻辑,统计已完成审批的节点数量。
    2. 如果已完成审批的节点数量达到 80%,返回 true

# 3.2 特定角色优先签核

  • 需求:例如,总经理审批后直接继续流程,否则需要 80% 的审批节点完成审批。
  • 实现方法
    1. 在合流规则中编写逻辑,检查总经理是否已完成审批。
    2. 如果总经理已完成审批,返回 true
    3. 否则,统计已完成审批的节点数量,如果达到 80%,返回 true

# 四、 平行签核的总结

类型 特点 适用场景
会签 所有并行路径的审批节点都需要完成审批 需要多个部门或角色同时审批的场景
或签 只要有一条并行路径的审批节点完成审批 只需要一个部门或角色审批即可继续流程的场景
条件流转 根据条件决定是否执行某条并行路径 某些情况下需要特定部门或角色审批的场景

# 五、 注意事项

  1. 合流规则的执行时机
    • 每次有一条路径完成审批时,合流规则都会执行一次。
  2. 条件设置的准确性
    • 确保条件设置正确,避免流程逻辑错误。
  3. 复杂逻辑的实现
    • 对于复杂的合流规则,建议由资深开发人员编写代码。

# 六、 总结

  • 会签:所有并行路径的审批节点都需要完成审批。
  • 或签:只要有一条并行路径的审批节点完成审批,流程就会继续。
  • 条件流转:根据条件决定是否执行某条并行路径。

通过熟练掌握平行签核的实现方法,可以灵活设计流程,满足复杂的业务需求。