# 范围边界事件

# 一、 基本概念

范围边界事件是指附着在子流程(范围)边界上的事件,用于捕获和处理流程执行过程中的特定情况。与任务边界事件类型相同,但应用场景更广泛。

# 二、 常用事件类型及场景

# 信号/消息边界事件

配置方式

  1. 拖拽信号边界事件吸附到子流程边界。
  2. 设置信号名称和信号Key(必须包含业务ID如订单ID)。

典型场景

  • 订单处理中突发取消(示例):
    • 子流程内:开始 → 确认订单 → 备货 → 发货。
    • 边界事件:捕获"订单取消"信号 → 连接取消处理节点。

信号事件示例图 ▲ 信号事件示例图

注意事项

  • 必须配置信号Key实现精准匹配。
  • 支持消息边界事件(需配置消息名称)。

# 定时边界事件

配置方式

  1. 拖拽定时事件到子流程边界。
  2. 设置时间表达式(如8小时)。

典型场景

  • 业务流程超时控制:
    • 示例:备货+发货总时长≤8小时。
    • 超时后触发:销售主管介入节点(非中断事件)。

定时边界示例图 ▲ 定时边界示例图

优势

  • 解决传统OA流程无法设置多步骤总时长的问题。

# 升级边界事件

配置方式

  1. 设置子流程内节点抛出升级事件(如SysDecision)。
  2. 边界事件配置捕获相同事件。

典型场景

  • 层级审批终审场景: 子流程内任一节点 → 满足条件时抛出SysDecision事件 → 边界事件捕获 → 跳出审批流程。

升级边界示例图 ▲ 升级边界示例图

# 条件边界事件

配置方式

  1. 设置基于表单数据的条件(如Convert.ToDecimal(FormRootRow["折扣"])<=0.5)。
  2. 建议使用非中断类型。

典型场景

  • 动态业务规则监控: 审批过程中折扣低于0.5 → 触发销售总监审批节点。

条件边界流程示例 ▲ 条件边界流程示例

# 三、 配置步骤

  1. 创建子流程范围。
  2. 拖拽边界事件到子流程边界。
  3. 设置事件属性:
    • 信号/消息:配置名称和Key。
    • 定时:设置触发方式、时长。
    • 升级:匹配抛出事件名。
    • 条件:编写条件表达式。
  4. 连接后续处理节点。

# 四、 注意事项

  1. 中断 vs 非中断
    • 中断事件:终止子流程内所有活动。
    • 非中断事件:子流程继续执行。
  2. 业务数据关联
    • 信号/消息必须包含业务标识。
    • 条件事件可访问运行时表单数据。
  3. 事件优先级
    • 多个事件同时触发时按配置顺序处理。

# 五、 最佳实践

  1. 订单处理流程
    • 信号事件处理取消。
    • 定时事件控制处理时效。
  2. 审批流程
    • 升级事件实现动态终审。
    • 条件事件监控关键参数变更。
  3. 组合使用
    • 定时+消息实现复杂业务超时处理。

:所有配置均可在流程设计器中通过拖拽和属性面板完成,无需编写代码。