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