Boundary Event
什么是边界事件
BPMN 2.0边界事件是一种附加在活动边界上的中间捕获事件。活动运行期间,它会等待某个触发条件(如截止时间、消息、错误、信号或数据变化);条件满足时,便从该活动引出一条路径。
- 边界事件始终附加在任务、子流程、事务或调用活动的边界上。它不能附加到事件或网关,也不能独立存在于流程中。
- 边界事件有顺序流出向,但没有顺序流入向;它所附加的活动是唯一入口。
- 只有活动处于运行状态时,边界事件才会等待触发条件。如果活动先结束,边界事件便不会触发。补偿事件例外:活动完成后才会启用。
- 触发条件满足时,令牌会沿边界事件的顺序流出向离开。中断事件会替代活动的令牌,非中断事件则会在活动旁新增一个令牌。
- 在符号中,边界事件画在活动边缘,呈双圆形,触发符号位于圆内。
ProcessMind支持本页列出的所有边界事件类型。将边界事件或边界非交互组中的事件,从BPMN元素面板拖到活动边界即可附加。将已有的中间捕获事件拖到活动边界也能完成附加;将其拖离边界则会解除附加。导出并重新导入BPMN后,附加关系和中断设置都会保留。
中断与非中断
边界事件分为两种形式,触发条件到来时,活动的处理方式取决于事件形式。
| 中断 | 非中断 | |
|---|---|---|
| 图示 | 实线双圆 | 虚线双圆 |
| 对活动的影响 | 立即取消,活动中的工作随之放弃 | 活动继续运行,不会取消任何工作 |
| 触发后的路径 | 仅沿边界路径继续,不会沿活动的正常顺序流出向继续 | 两条路径并行:正常路径继续,边界路径同时运行 |
| 可触发次数 | 一次;触发后活动结束 | 活动保持运行期间可触发多次,例如重复定时器的每个周期 |
| BPMN属性 | cancelActivity="true" | cancelActivity="false" |
中断边界事件会取代活动的正常后续路径。非中断边界事件则会从活动分出一条支路。
如果触发条件意味着活动继续执行已无意义或不安全(如错过截止时间、发生故障或撤回),请使用中断事件。如果触发条件要求在活动进行期间额外开展工作,或发送提醒、通知且不应丢弃正在进行的工作,请使用非中断事件。
只有活动处于运行状态时,这两种事件才有意义。中断事件触发后会取消活动,因此该活动上的其他边界事件也会同时解除。非中断事件则会保留活动及其其他边界事件。
**一个活动,多个边界事件。**单个活动可以附加多个边界事件。审批任务中常见的组合如下:
- 两个工作日后触发的中断定时器:升级并停止任务。
- 每四小时触发一次的非中断定时器:发送提醒,同时让任务继续。
- 在执行实际检查的子流程上设置中断错误事件:处理技术故障。
边界事件类型
ProcessMind支持以下类型。中断事件的类型更多,因为有些触发条件只有在活动停止时才有意义。
中断边界事件
| 类型 | 含义 | 典型示例 |
|---|---|---|
| 消息 | 等待发送给此活动的特定消息。 | “等待供应商报价”收到“报价已撤回”消息后中断,并转到“寻找替代供应商”。 |
| 定时器 | 截止时间:从活动开始时起计算的时长、日期或周期。 | “审批费用”设有两天的定时器;如果届时尚未完成,案例将转到“升级至财务经理”。 |
| 错误 | 捕获活动内部抛出的错误并停止活动。错误边界事件始终为中断事件。 | “运行信用检查”子流程抛出“检查失败”错误;边界路径转到“请求人工承保”。 |
| 升级 | 因需要由更高层级接手而停止活动。 | “处理事件”未达到首次响应目标后升级,转到“由事件指挥官接手”。 |
| 取消 | 捕获事务子流程的取消结束事件。仅适用于事务。 | 客户取消“预订行程”事务;边界路径转到“退款并释放预订”。 |
| 补偿(特殊情况) | 为已完成的活动运行补偿处理程序,以撤销其影响。不会取消正在进行的工作。 | 如果流程后续取消订单,“收取定金”将由“退还定金”进行补偿。 |
| 条件 | 活动运行期间,业务条件变为真时触发。 | 当availableStock < orderedQuantity时,“预留库存”会中断;案例转到“缺货登记并通知客户”。 |
| 信号 | 捕获广播信号。信号不会发给某个特定活动,所有匹配的监听者都可以响应。 | “收集缺失文件”收到公司范围内的“案例已撤回”信号后中断,案例随之关闭。 |
| 多个 | 多个触发条件中任意一个发生时触发。 | “等待客户回复”可捕获“收到回复”消息或十天定时器;先发生的条件会取消等待。 |
| 并行多个 | 只有所有触发条件都发生后才触发。 | “收集发布审批”会等待法务审批消息和安全审批消息都到达后再继续。 |
此类事件的几个实用规则:
- 错误应附加在子流程、调用活动或事务上,也就是可能实际抛出错误的活动上。普通任务内部没有可失败的步骤。
- 取消应附加在事务子流程上,其他位置没有可捕获的取消事件。
- 补偿是特殊情况。活动完成后才会启用,并由流程其他位置抛出的补偿事件触发。它表示“撤销已经完成的步骤”,而不是“停止正在执行的步骤”。
- 多个表示多个触发条件之间的竞速。并行多个则表示等待所有触发条件的网关。
非中断边界事件
| 类型 | 含义 | 典型示例 |
|---|---|---|
| 消息 | 活动继续运行时收到消息;消息会启动一条旁支。 | 收到“审阅者已发表评论”消息后,“起草提案”继续运行,同时启动“记录审阅意见”。 |
| 定时器 | 提醒或定期检查;活动不会停止。 | “处理支持工单”设有每八小时重复一次的定时器,在处理继续进行时启动“发送状态更新”。 |
| 升级 | 在活动继续运行时发起升级,不会结束活动。 | “处理投诉”继续运行,同时“客户属于战略客户”这一升级条件启动“通知客户总监”。 |
| 条件 | 条件触发旁支,活动继续运行。 | 当riskScore > 70时,“处理贷款申请”继续运行,同时启动“标记为待审计”。 |
| 信号 | 广播信号为每个监听者启动旁支;活动继续运行。 | 收到“市场已关闭”信号后,“运行夜间批处理”继续运行,同时启动“保存阶段性汇总快照”。 |
| 多个 | 多个触发条件中任意一个都会启动旁支;活动继续运行。 | “协商合同”保持打开状态;收到对方消息或三天定时器到期,都会启动“发送提醒”。 |
| 并行多个 | 所有触发条件同时满足后启动旁支;活动继续运行。 | “等待所有检查”保持运行,直到消息和信号都到达,然后启动“记录就绪状态”。 |
非中断边界事件适用于提醒、通知、观察和并行升级。它们不会改变主流程,而是在旁边增加一条支路。
不属于边界事件的事件类型
有些事件类型看起来像边界事件,但实际上并不是:
- Link事件用于连接流程的不同部分。它们是顺序中的中间捕获或抛出事件,并非附加事件。
- Terminate会结束整个流程实例,且只能作为结束事件存在。
- 无不是触发条件,因此边界事件不能设置为“无”:每个边界事件都必须有要捕获的内容。
在ProcessMind中添加边界事件
- 打开BPMN元素面板。
- 中断事件请从边界事件组中选择类型;非中断事件请从边界非交互组中选择。
- 将事件拖到任务、子流程、事务或调用活动的边界上。
- 松开鼠标。事件会吸附到最近的边缘,并以该活动为宿主。
- 从边界事件绘制顺序流,连接到异常路径或旁支的第一个步骤。
使用提示:
- 将中间事件拖到活动边界上即可附加。将同一事件拖到空白画布上,则会创建普通的中间捕获事件。之后可将其拖到边界上进行附加,也可拖离边界以取消附加。
- 边界事件会随其所属活动一起移动、隐藏和删除,不能独立于活动放置。
- 非中断事件在面板中有单独的入口,不是复选框。如果活动需要继续运行,请在拖动前选择该类型。
- 导出时,附加关系会写入
attachedToRef,中断设置会写入cancelActivity。重新导入文件后,两者都会恢复。
常见错误
- **边界事件没有顺序流出向。**事件捕获触发条件后无处可去,异常路径因此成为死路。
- **需要强制停止时却使用非中断定时器。**活动会继续运行,因此截止时间不会结束工作。截止时间应使用中断版本。
- **在普通任务上设置错误边界事件。**应将其附加到包含故障步骤的子流程或调用活动上。
- **认为活动结束后边界事件仍会触发。**除补偿事件外,活动结束后边界事件不会触发;补偿事件会在活动完成后启用。
- **在事务之外使用Cancel。**取消边界事件仅适用于事务子流程。
- **在一个活动上设置两个中断事件,并期望两条路径都执行。**先触发的事件会生效;活动及其其他边界事件都会随之取消。
所有事件及其对应符号
| 开始 | 中间 | 结束 | ||||||
|---|---|---|---|---|---|---|---|---|
| Type | 常规 | 事件子流程 | 非中断事件子流程 | 捕获 | 边界 | 非中断边界 | 抛出 | |
| 无 | | |||||||
| 消息 | | | | | | | | |
| 计时器 | | | | | | | ||
| 条件 | | | | | | | ||
| 链接 | | | | |||||
| 信号 | | | | | | | | |
| 错误 | | | | |||||
| 升级 | | | | | | | ||
| 终止 | | |||||||
| 补偿 | | | | | ||||
| 取消 | | | ||||||
| 多个 | | | | | | | | |
| 多个并行 | | | | | | | ||
生成自定义BPMN模型
相关主题
- 事件:所有事件类型。
- Intermediate Event:流程中间发生的事件。
- 活动:边界事件可以附加到的任务和子流程。
- 支持的BPMN元素:ProcessMind支持导入和导出的元素。
- BPMN 2.0:实用指南:结合实例讲解该符号体系。
优化流程,构建互联架构,掌控全局。
无需信用卡,也无需等待,即刻开始。将组织的实际工作方式转化为清晰、互联的流程设计。
构建流程架构,明确职责归属与管控措施,并在各层级统一角色分工。
开始免费试用,为流程治理、管理和持续改进建立可靠的统一基础。