# 条件流转

在流程设计中,条件流转是一种常见的需求,用于根据特定条件决定流程的走向。条件流转的实现方式主要有两种:基于条件网关的条件流转和基于自动节点的条件流转。本文将详细介绍这两种方法及其适用场景。

# 一、 基于条件网关的条件流转

# 1. 条件网关的特点

  • 特点:条件网关只会执行 第一条满足条件的路径
  • 适用场景:适用于需要根据条件选择唯一路径的场景。

# 2. 实现步骤

# 2.1 添加条件网关

  1. 在流程设计器中,拖拽一个 条件网关 到画布中。
  2. 在条件网关后面添加多个平行审批节点(例如总经理、经理、部长)。
  3. 将条件网关与这些节点连接起来。

添加条件网关 ▲ 添加条件网关

# 2.2 设置条件

  1. 在每条连接线上设置条件:
    • 总经理:总金额 ≥ 10 万(Convert.ToDecimal(FormRootRow["总金额"])>=100000)。
    • 经理:总金额 ≥ 1 万且小于10万(Convert.ToDecimal(FormRootRow["总金额"])>=10000&&Convert.ToDecimal(FormRootRow["总金额"])<100000)。
    • 部长:不设条件,并设为缺省路径。

设置条件 ▲ 设置条件

  1. 保存流程。

# 2.3 验证执行逻辑:

  • 当总金额为100万时:满足≥10万条件,走总经理审批路径
  • 当总金额为5万时:不满足≥10万但满足≥1万且<10万,走经理审批路径
  • 当总金额为0.5万时:不满足前两个条件,自动走缺省的部长审批路径

# 2.4 处理有缝隙的条件

  • 如果条件存在重叠(例如总金额 ≥ 10 万和总金额 ≥ 1 万),需要设置连接线的顺序。
  • 条件设置
    • 总经理:总金额 ≥ 10 万(Convert.ToDecimal(FormRootRow["总金额"])>=100000)。
    • 经理:总金额 ≥ 1 万(Convert.ToDecimal(FormRootRow["总金额"])>=10000)。
    • 部长:不设条件。
  • 打开条件网关属性,进入 连接弧 页签,调整连接线的顺序:

处理有缝隙的条件 ▲ 处理有缝隙的条件

  • 先计算总金额 ≥ 10 万的条件。

  • 再计算总金额 ≥ 1 万的条件。

  • 验证执行逻辑

    • 如果总金额为 100 万,系统会先判断是否 ≥ 10 万,满足则走总经理路径。
    • 如果总金额为 5 万,系统会判断是否 ≥ 1 万,满足则走经理路径。
    • 如果总金额为 0.5 万,系统会走部长路径。
  • 这样,即使条件有重叠,系统也会优先执行第一条满足条件的路径。

# 二、 基于自动节点的条件流转

# 1.自动节点的特点

  • 特点:自动节点后面的连接线可以设置条件,所有满足条件的路径都会执行
  • 适用场景:适用于需要根据条件执行多条路径的场景。

# 2. 实现步骤

# 2.1 添加自动节点

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

添加自动节点 ▲ 添加自动节点

# 2.2 设置条件

  1. 在每条连接线上设置条件:
    • 技术部(风险系数 > 0.8):Convert.ToDecimal(FormRootRow["风险系数"])>=0.8
    • 品控部:(风险系数 > 0.6):Convert.ToDecimal(FormRootRow["风险系数"])>=0.6
    • 销售部:不设条件(默认执行)。

添加条件网关 ▲ 添加条件网关

  1. 保存流程。

# 2.3 验证执行逻辑

  • 如果风险系数为 0.9,系统会执行技术部、品控部和销售部。
  • 如果风险系数为 0.7,系统会执行品控部和销售部。
  • 如果风险系数为 0.5,系统只会执行销售部。

# 三、 条件流转的总结

类型 特点 适用场景
条件网关 只会执行第一条满足条件的路径 需要根据条件选择唯一路径的场景
自动节点 所有满足条件的路径都会执行 需要根据条件执行多条路径的场景

# 四、 注意事项

  1. 条件网关的顺序
    • 如果条件有重叠,需要设置连接线的顺序,确保系统优先执行更严格的条件。
  2. 自动节点的默认路径
    • 不设条件的连接线会默认执行,适用于作为缺省路径。
  3. 人工审批节点的条件流转
    • 人工审批节点的连出线上不能直接设置条件,如果需要条件流转,可以在后面添加条件网关。

# 五、 总结

  • 条件网关:适用于需要根据条件选择唯一路径的场景,特点是只执行第一条满足条件的路径。
  • 自动节点:适用于需要根据条件执行多条路径的场景,特点是所有满足条件的路径都会执行。
  • 条件设置:根据业务需求设置条件,确保流程的正确执行。

通过熟练掌握这两种条件流转方法,可以灵活设计流程,满足复杂的业务需求。