Camunda流程引擎事件如何使用(Events)
BPMN定义了不同的事件类型。事件包含开始(Start)、中间(Intermediate)、边界(Boundary)和结束(End)四种类型。根据触发方式不同,可以分为捕获事件(Catching Event)和抛出事件(Throwing Event)。以下是Camunda支持的事件类型。
1、启动事件Start Events
启动事件定义流程或子流程开始的位置。流程引擎支持不同类型的启动事件:
Blank、Timer、Message、Signal、Conditional。
引擎至少需要一个启动事件来实例化一个流程。每个流程定义最多可以有一个空白或计时器启动事件。可以有多个消息或信号启动事件。
2、空白事件None Events
无事件是未指定的事件,也称为“空白”事件。例如,' none '启动事件技术上意味着启动流程实例的触发器是未指定的。这意味着引擎无法预知何时必须启动流程实例。当流程实例通过API调用startProcessInstanceBy…方法。
3、消息事件Message Events
消息事件是引用已命名消息的事件。一条消息有一个名称和一个有效负载。与信号不同,消息事件总是指向单个收件人。
4、计时器事件Timer Events
计时器事件是由定义的计时器触发的事件。它们可以用作启动事件、中间事件或边界事件。边界事件可以中断,也可以不中断。
5、错误事件Error Events
捕获/抛出错误的事件。错误事件是由已定义的错误触发的事件。
6、升级事件Escalation Events
升级事件是引用已命名升级的事件。它们主要用于从子流程到上层流程的通信。与错误不同,升级事件是非关键的,在抛出事件的位置继续执行。
7、信号事件Signal Events
信号事件是引用一个命名信号的事件。信号是全局作用域的事件(广播语义),并被传递给所有活动处理程序。
8、取消和补偿事件Cancel and Compensation Events
事件抛出/捕获补偿和取消事务事件。
9、条件事件Conditional Events
条件事件定义了一个事件,该事件在给定条件被求值为true时被触发。它可以作为事件子流程的起始事件、中间事件和边界事件。开始和边界事件可以是中断的和不中断的。
10、链接事件Link Events
链接事件是一种特殊情况——它没有特殊的执行语义,但在相同的流程模型(确切地说:在相同的子流程中)中充当“GoTo”到另一个点的角色。因此,您可以使用两个匹配的链接作为序列流的替代。
11、终止事件Terminate Events
terminate事件将结束引发它的完整范围和所有包含的内部范围。如果您在一个流程中有一个并行的令牌流,并且您希望立即使用同一作用域中可用的所有令牌,那么这是非常有用的。流程实例级的终止事件终止完整的实例。在子流程级别,当前作用域和所有包含的流程实例将被终止。