# 条件流转
在流程设计中,条件流转是一种常见的需求,用于根据特定条件决定流程的走向。条件流转的实现方式主要有两种:基于条件网关的条件流转和基于自动节点的条件流转。本文将详细介绍这两种方法及其适用场景。
# 一、 基于条件网关的条件流转
# 1. 条件网关的特点
- 特点:条件网关只会执行 第一条满足条件的路径。
 - 适用场景:适用于需要根据条件选择唯一路径的场景。
 
# 2. 实现步骤
# 2.1 添加条件网关
- 在流程设计器中,拖拽一个 条件网关 到画布中。
 - 在条件网关后面添加多个平行审批节点(例如总经理、经理、部长)。
 - 将条件网关与这些节点连接起来。
 
 ▲ 添加条件网关
# 2.2 设置条件
- 在每条连接线上设置条件:
- 总经理:总金额 ≥ 10 万(
Convert.ToDecimal(FormRootRow["总金额"])>=100000)。 - 经理:总金额 ≥ 1 万且小于10万(
Convert.ToDecimal(FormRootRow["总金额"])>=10000&&Convert.ToDecimal(FormRootRow["总金额"])<100000)。 - 部长:不设条件,并设为缺省路径。
 
 - 总经理:总金额 ≥ 10 万(
 
 ▲ 设置条件
- 保存流程。
 
# 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 万(
 - 打开条件网关属性,进入 连接弧 页签,调整连接线的顺序:
 
 ▲ 处理有缝隙的条件
先计算总金额 ≥ 10 万的条件。
再计算总金额 ≥ 1 万的条件。
验证执行逻辑:
- 如果总金额为 100 万,系统会先判断是否 ≥ 10 万,满足则走总经理路径。
 - 如果总金额为 5 万,系统会判断是否 ≥ 1 万,满足则走经理路径。
 - 如果总金额为 0.5 万,系统会走部长路径。
 
这样,即使条件有重叠,系统也会优先执行第一条满足条件的路径。
# 二、 基于自动节点的条件流转
# 1.自动节点的特点
- 特点:自动节点后面的连接线可以设置条件,所有满足条件的路径都会执行。
 - 适用场景:适用于需要根据条件执行多条路径的场景。
 
# 2. 实现步骤
# 2.1 添加自动节点
- 在流程设计器中,拖拽一个 分流网关 和一个 合流网关 到画布中。
 - 在分流网关和合流网关之间添加多个并行节点(例如技术部、品控部、销售部)。
 - 将分流网关与这些节点连接起来。
 
 ▲ 添加自动节点
# 2.2 设置条件
- 在每条连接线上设置条件:
- 技术部(风险系数 > 0.8):
Convert.ToDecimal(FormRootRow["风险系数"])>=0.8。 - 品控部:(风险系数 > 0.6):
Convert.ToDecimal(FormRootRow["风险系数"])>=0.6。 - 销售部:不设条件(默认执行)。
 
 - 技术部(风险系数 > 0.8):
 
 ▲ 添加条件网关
- 保存流程。
 
# 2.3 验证执行逻辑
- 如果风险系数为 0.9,系统会执行技术部、品控部和销售部。
 - 如果风险系数为 0.7,系统会执行品控部和销售部。
 - 如果风险系数为 0.5,系统只会执行销售部。
 
# 三、 条件流转的总结
| 类型 | 特点 | 适用场景 | 
|---|---|---|
| 条件网关 | 只会执行第一条满足条件的路径 | 需要根据条件选择唯一路径的场景 | 
| 自动节点 | 所有满足条件的路径都会执行 | 需要根据条件执行多条路径的场景 | 
# 四、 注意事项
- 条件网关的顺序:
- 如果条件有重叠,需要设置连接线的顺序,确保系统优先执行更严格的条件。
 
 - 自动节点的默认路径:
- 不设条件的连接线会默认执行,适用于作为缺省路径。
 
 - 人工审批节点的条件流转:
- 人工审批节点的连出线上不能直接设置条件,如果需要条件流转,可以在后面添加条件网关。
 
 
# 五、 总结
- 条件网关:适用于需要根据条件选择唯一路径的场景,特点是只执行第一条满足条件的路径。
 - 自动节点:适用于需要根据条件执行多条路径的场景,特点是所有满足条件的路径都会执行。
 - 条件设置:根据业务需求设置条件,确保流程的正确执行。
 
通过熟练掌握这两种条件流转方法,可以灵活设计流程,满足复杂的业务需求。