这是我参与更文挑战的第2天,活动详情查看: 更文挑战
BPMN概述
BPMN2.0元素分类
- 流对象
- 连接对象
- 数据
- 泳道
- 描述对象
流对象组成
组成流对象的核心元素
BPMN2.0 符号及XML文件
事件符号中文讲解
时间事件
-
描述
定时器事件是由定义的定时器触发的事件。它们可以用作 开始事件、中间事件或边界事件。时间事件的行为取决于所使用的业务日历。每个计时器事件都有一个默认的业务日历,但也可以在计时器事件定义上定义业务日历。
-
图例
- 在xml文件中表达式
<timerEventDefinition>
<timeDuration>${duration}</timeDuration>
</timerEventDefinition>
复制代码
错误事件
-
描述
BPMN 错误事件是一种对业务异常建模的方法。
-
图例
- 在xml文件中表达式
<endEvent id="myErrorEndEvent">
<errorEventDefinition errorRef="myError" />
</endEvent>
复制代码
信号事件
-
描述
信号事件是引用命名信号的事件。信号是全局范围的事件(广播语义),并被传递给所有活动处理程序(等待流程实例/捕获信号事件)。
使用
signalEventDefinition
元素声明信号事件定义。该属性signalRef
引用signal
声明为definitions
根元素的子元素的元素。 -
图例
- 在xml文件中表达式
<definitions... >
<!-- declaration of the signal -->
<signal id="alertSignal" name="alert" />
<!-- signal event definition -->
<signalEventDefinition signalRef="alertSignal" />
</definitions>
复制代码
消息事件
-
描述
消息事件是引用命名消息的事件。消息具有名称和有效载荷。与信号不同,消息事件总是针对单个接收者。
使用该
messageEventDefinition
元素声明消息事件定义。该属性messageRef
引用message
声明为definitions
根元素的子元素的元素。 -
图例
- 在xml文件中表达式
<messageEventDefinition messageRef="payment" />
复制代码
开始事件
无开始事件
- 描述
一个没有启动事件技术上意味着启动过程的实例的触发是不确定的。这意味着引擎无法预测流程实例何时必须启动。
- 图例
- 在xml文件中表达式
<startEvent id="start" name="my start event" />
复制代码
定时器启动事件
-
描述
计时器启动事件用于在给定时间创建流程实例。它既可以用于应该只启动一次的进程,也可以用于应该在特定时间间隔启动的进程。
*注意:*子进程不能有计时器启动事件。
*注意:*一旦部署进程,就会安排启动计时器事件。
*注意:*当部署了具有启动计时器事件的新版本进程时,将删除与前一个计时器对应的作业。原因是通常不希望自动启动这个旧版本流程的新流程实例。
- 图例
-
在xml文件中表达式
示例:进程将从 2011 年 3 月 11 日 12:13 开始,以 5 分钟为间隔启动 4 次
<startEvent id="theStart">
<timerEventDefinition>
<timeCycle>R4/2011-03-11T12:13/PT5M</timeCycle>
</timerEventDefinition>
</startEvent>
复制代码
消息开始事件
-
描述
A消息开始事件可用于使用已命名的信息来启动一个过程实例。这有效地允许我们使用消息名称从一组替代启动事件中选择正确的启动事件。
- 图例
-
在xml文件中表达式
<startEvent id="messageStart" > <messageEventDefinition messageRef="tns:newInvoice" /> </startEvent> 复制代码
信号开始事件
-
描述
A信号启动事件可用于使用命名信号来启动一个过程实例。
-
图例
- 在xml中的表达式
<startEvent id="theStart">
<signalEventDefinition id="theSignalEventDefinition" signalRef="theSignal" />
</startEvent>
复制代码
结束事件
无 结束事件
-
描述
一个没有终点事件意味着结果当达到该事件是不确定的抛出。因此,除了结束当前的执行路径外,引擎不会做任何额外的事情。
-
图例
- 在xml中的表达式
<endEvent id="end" name="my end event" />
复制代码
错误结束事件
-
描述
当流程执行到达错误结束事件时,当前执行路径结束并抛出错误。此错误可以被匹配的中间边界错误事件捕获。如果没有找到匹配的边界错误事件,则会抛出异常。
- 图例
-
在xml中的表达式
并且错误结束事件表示为结束事件,带有一个errorEventDefinition子元素。
<endEvent id="myErrorEndEvent">
<errorEventDefinition errorRef="myError" />
</endEvent>
复制代码
终止结束事件
-
描述
当达到终止结束事件时,当前流程实例或子流程将被终止。从概念上讲,当执行到达终止结束事件时,将确定并结束第一个范围(流程或子流程)。请注意,在 BPMN 2.0 中,子流程可以是嵌入式子流程、调用活动、事件子流程或事务子流程。这个规则一般适用:例如当有一个多实例调用活动或嵌入的子流程时,只有那个实例会被结束,其他实例和流程实例不受影响。
有一个可选属性terminateAll可以添加。当true 时,无论终止结束事件在流程定义中的位置如何,也无论是否在子流程(甚至嵌套)中,(根)流程实例都将被终止。
-
图例
-
在xml中的表达式
终止结束事件表示为结束事件,带有一个terminateEventDefinition子元素。
请注意,terminateAll属性是可选的(默认为false)。
<endEvent id="myEndEvent >
<terminateEventDefinition activiti:terminateAll="true"></terminateEventDefinition>
</endEvent>
复制代码
取消结束事件
-
描述
取消结束事件只能与 bpmn 事务子流程结合使用。当到达取消结束事件时,将抛出取消事件,该事件必须由取消边界事件捕获。然后取消边界事件取消事务并触发补偿。
-
图例
-
在xml中的表达式
取消结束事件表示为结束事件,带有一个cancelEventDefinition子元素。
<endEvent id="myCancelEndEvent"> <cancelEventDefinition /> </endEvent> 复制代码