# 范围边界事件
# 一、基本概念
范围边界事件是指附着在子流程(范围)边界上的事件,用于捕获和处理流程执行过程中的特定情况。与任务边界事件类型相同,但应用场景更广泛。
# 二、常用事件类型及场景
# 1. 信号/消息边界事件
配置方式:
- 拖拽信号边界事件吸附到子流程边界
 - 设置信号名称和信号Key(必须包含业务ID如订单ID)
 
典型场景:
订单处理中突发取消(示例):
- 子流程内:开始 → 确认订单 → 备货 → 发货
 - 边界事件:捕获"订单取消"信号 → 连接取消处理节点
 
 ▲ 信号事件示例图
注意事项:
- 必须配置信号Key实现精准匹配
 - 支持消息边界事件(需配置消息名称)
 
# 2. 定时边界事件
配置方式:
- 拖拽定时事件到子流程边界
 - 设置时间表达式(如8小时)
 
典型场景:
业务流程超时控制:
- 示例:备货+发货总时长≤8小时
 - 超时后触发:销售主管介入节点(非中断事件)
 
 ▲ 定时边界示例图
优势:
- 解决传统OA流程无法设置多步骤总时长的问题
 
# 3. 升级边界事件
配置方式:
- 设置子流程内节点抛出升级事件(如SysDecision)
 - 边界事件配置捕获相同事件
 
典型场景:
层级审批终审场景:
子流程内任一节点 → 满足条件时抛出SysDecision事件 → 边界事件捕获 → 跳出审批流程
 ▲ 升级边界示例图
# 4. 条件边界事件
配置方式:
- 设置基于表单数据的条件(如
Convert.ToDecimal(FormRootRow["折扣"])<=0.5) - 建议使用非中断类型
 
典型场景:
动态业务规则监控:
审批过程中折扣低于0.5 → 触发销售总监审批节点
 ▲ 条件边界流程示例
# 三、配置步骤
- 创建子流程范围
 - 拖拽边界事件到子流程边界
 - 设置事件属性:
- 信号/消息:配置名称和Key
 - 定时:设置触发方式、时长
 - 升级:匹配抛出事件名
 - 条件:编写条件表达式
 
 - 连接后续处理节点
 
# 四、注意事项
- 中断 vs 非中断:
- 中断事件:终止子流程内所有活动
 - 非中断事件:子流程继续执行
 
 - 业务数据关联:
- 信号/消息必须包含业务标识
 - 条件事件可访问运行时表单数据
 
 - 事件优先级:
- 多个事件同时触发时按配置顺序处理
 
 
# 五、最佳实践
- 订单处理流程:
- 信号事件处理取消
 - 定时事件控制处理时效
 
 - 审批流程:
- 升级事件实现动态终审
 - 条件事件监控关键参数变更
 
 - 组合使用:
- 定时+消息实现复杂业务超时处理
 
 
注:所有配置均可在流程设计器中通过拖拽和属性面板完成,无需编写代码。