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事件将结束引发它的完整范围和所有包含的内部范围。如果您在一个流程中有一个并行的令牌流,并且您希望立即使用同一作用域中可用的所有令牌,那么这是非常有用的。流程实例级的终止事件终止完整的实例。在子流程级别,当前作用域和所有包含的流程实例将被终止。

 

posted @ 2022-06-13 14:35  大龄码农有梦想  阅读(732)  评论(0编辑  收藏  举报