
在业务流程建模符号(BPMN, Business Process Model and Notation)的世界中,事件(Events)扮演着至关重要的角色。它们如同业务流程中的“交通信号灯”或“里程碑”,标记着流程的开始、结束以及中间发生的关键时刻。理解这些符号不仅仅是记忆形状,更是理解业务逻辑如何被触发的关键。
本文将深入探讨 BPMN 事件的核心架构,结合您提供的图表,详细解析外边框、内部标记以及中断/非中断逻辑的深层含义。
一、事件的外边框:定义流程的边界
在 BPMN 中,事件的类型首先由最外层的圆圈形状决定。这个外边框直接告诉建模者和读者该事件在流程生命周期中的位置。
1. 起始事件 (Start Event) – 单实线圆圈
起始事件通常由一个单实线圆圈表示。它标志着流程的起点。没有入连线的流程通常都以起始事件开始。在图表中,左侧的绿色系列图标展示了不同类型的起始事件,例如“消息”、“计时器”或“错误”。
2. 中间事件 (Intermediate Event) – 双实线圆圈
中间事件由双实线圆圈表示。它位于流程的开始和结束之间,表示在流程执行过程中发生的某个时间点。图表中间部分的棕色系列图标即为中间事件,例如“补偿”、“条件”或“信号”。
3. 结束事件 (End Event) – 实心填充圆圈
结束事件由一个实心填充的粗圆圈表示。它标志着流程的终止。在图表最右侧的红色系列图标展示了结束事件,如“错误”或“终止”。
二、内部标记:识别事件的“触发器”
仅仅知道是起始、中间还是结束事件是不够的,我们还需要知道是什么触发了该事件。这就是内部标记(Internal Markers)的作用。这些图标嵌入在圆圈内部,提供了事件的具体语义。
根据您的图表,我们可以识别出多种常见的内部标记类型:
- 消息 (Message): 一个信封图标,表示流程由外部消息触发(例如收到邮件)。
- 计时器 (Timer): 一个时钟图标,表示流程由时间触发(例如每天下午 5 点)。
- 错误 (Error): 一个闪电或感叹号图标,表示流程因错误而触发。
- 信号 (Signal): 一个三角形图标,表示流程由广播信号触发。
- 链接 (Link): 一个连接点图标,用于连接不同页面或子流程中的事件。
核心概念:捕获 (Catching) 与 抛出 (Throwing)
在 BPMN 的高级建模中,事件不仅分类型,还分方向。这取决于内部标记的填充状态:
- 捕获事件 (Catching Events): 内部标记通常是未填充的(空心)。这意味着事件正在“等待”接收通知。例如,一个空心的信封图标表示“等待邮件到达”。
- 抛出事件 (Throwing Events): 内部标记通常是实心填充的。这意味着事件正在“生成”或“发送”通知。例如,一个实心的信封图标表示“发送邮件”。
三、中断逻辑:实线与虚线的艺术
这是 BPMN 中最容易被初学者忽略,但在复杂流程中至关重要的细节。外边框的线条样式(实线或虚线)定义了事件如何处理正在进行的流程。
1. 非中断事件 (Non-Interrupting) – 虚线边框
当外边框是虚线时,表示这是一个非中断事件。这意味着当该事件触发时,现有的流程活动不会立即停止。流程会等待当前活动完成,然后继续执行后续分支。
- 应用场景: 例如,一个订单处理流程。如果在处理过程中收到了一个“取消请求”(非中断事件),系统可能会记录该请求,但允许当前的订单处理完成,稍后再处理取消逻辑。
2. 中断事件 (Interrupting) – 实线边框
当外边框是实线时,表示这是一个中断事件。这意味着一旦事件触发,当前的流程活动会立即被强制终止,流程直接跳转到事件后的分支。
- 应用场景: 例如,如果订单处理过程中触发了“库存不足”(中断事件),系统会立即停止当前的发货准备活动,转而进入退货或通知供应商的流程。
四、综合案例分析:消息事件的不同形态
让我们结合图表中的“Message”行,来理解如何组合这些概念:
- 起始 – 消息 (Start – Message): 绿色,单圈,空心信封。 这是一个捕获事件,等待外部消息到达以启动流程。
- 中间 – 消息 (Intermediate – Message): 棕色,双圈,空心信封。 这是一个捕获事件,流程运行到这里时暂停,等待消息。
- 中间 – 消息 (Interrupting): 棕色,双圈,实心信封(虚线边框)。 注意图表中间部分的细节,这里展示了非中断的中间消息事件。它捕获消息,但不打断正在进行的任务。
- 结束 – 消息 (End – Message): 红色,实心圈,实心信封。 这是一个抛出事件,流程结束时发送一条消息作为输出。
五、总结:构建健壮的业务模型
BPMN 事件的符号系统不仅仅是视觉上的分类,它是一种严谨的逻辑语言。通过组合外边框形状(定义位置)、内部图标(定义触发源)以及线条样式(定义中断逻辑),我们可以精确地描述复杂的业务场景。
在绘制您的 BPMN 图时,请始终问自己三个问题:
- 这个事件在流程的哪个阶段?(Start, Intermediate, End)
- 是什么触发了它?(Message, Timer, Error)
- 它是否应该打断当前的活动?(Interrupting vs Non-Interrupting)
掌握这些细节,将帮助您从简单的流程图绘制者转变为专业的业务流程架构师。
