WorkFlow:BPMN 2.0介绍(四):事件(Event)

目录

四、事件

1、事件分类

2、处理流程

3、事件介绍

3.1 消息(Message)

​3.2 定时(Timer)

3.3 条件(Conditional)

3.4 连接(Link)

3.5 信号(Signal)

​3.6 错误(Error)

3.7 提升(Escalation)

3.8 终止(Termination)

3.9 补偿(Compensation)

3.10 取消(Cancel)

3.11 多重(Multiple)

3.12 并行 (Parallel)


四、事件

1、事件分类

事件分类方式
1)按在流程中的处理阶段分类

  • 开始阶段(Start):使用单线圈包含事件图标
  • 中间阶段(Intermediate):使用双线圈包含事件图标
  •  结束阶段(End):使用粗线圈包含事件图标

2)按处理方式分类

  • 捕获事件(Catching events):使用空心事件图标
  • 抛出事件(Throwing events):使用实心事件图标

3)按是否放置在活动边界上分类

  • 非活动边界上的事件(non-Boundary)
  • 活动边界上的事件(Boundary)

都是中间阶段的事件,都用双线圈包含事件图标

4)按中断分类

  • 不可中断事件(non-interrupted):使用虚线圈包含事件图标
  • 可中断事件(interrupted):使用实线圈包含事件图标

 以下是所有事件按不同分类使用时,应该使用的图标的汇总:

2、处理流程

 活动边界上与中断事件相关的处理流程
1)可中断事件(interrupted):双实线圈

流程中的token行为

  • 当token移动到task1时,task1开始执行
  • 当task1正在处理中,若event1发生,task1立即取消,token会移动到task3
  • 当task1正在处理中,若event1没发生,task1继续处理,token会移动到task2
  • 若event1在task1处理完毕后发生,则忽略

2)不可中断事件(non-interrupted):双虚线圈

流程中的token行为

  • 当token移动到task1时,task1开始执行
  • 当task1正在处理中,若event1发生,token被复制,task1继续处理,token会移动到task2,被复制的token会移动到task3;若在task1处理中时,event1发生多次,则token被复制多次,被复制的token会移动到task3
  • 当task1正在处理中,若event1没发生,task1继续处理,token会移动到task2
  • 若event1在task1处理完毕后发生,则忽略

 

3、事件介绍

3.1 消息(Message)

消息事件具有以下特点:

  • 消息事件可以出现在流程的任何位置
  • 抛出消息事件可以用发送消息任务替代,它们的不同点在于,发送消息任务还可以挂载其它边界事件
  • 接收消息事件可以用接收消息任务替代,它们的不同点在于,接收消息任务还可以挂载其它边界事件

3.2 定时(Timer)

定时事件可用作开始事件、中间事件、边界事件,同时作为边界事件支持中断和非中断。

3.3 条件(Conditional)

条件事件是一种等待事件,只有当变量满足条件时才会触发。
需要在信号事件中定义判断条件。
信号事件除以下位置外都可放置:

  • 结束事件
  • 抛出事件

 

3.4 连接(Link)

连接事件是一种特殊的事件。用于将截断的路径连接起来。
同一个连接事件可以在不同的路径上抛出,但这个连接事件作为捕获事件时必须唯一。

 

3.5 信号(Signal)

信号事件是全局范围的,它通过广播的形式通知所有关注此事件的流程。
信号事件使用前需要专门定义。
信号事件可以出现在任意位置。

3.6 错误(Error)

错误事件只会出现的3个位置:

  • 活动边界上(任务、子流程)
  • 流程结束处
  • 子流程开始处

BPMN2.0中定义的错误指的是业务错误,不是技术错误。流程中使用到的错误需要专门定义。

3.7 提升(Escalation)

升级事件是用于子流程给父流程,或子流程与其平级的子流程之间传递信息的事件。
升级事件使用前需要专门定义。
升级事件只会出现在如下位置:

  • 子流程中间阶段(只作抛出事件、不作捕获事件)
  • 子流程开始处
  • 子流程结束处
  • 子流程边界上

3.8 终止(Termination)

终止事件会中止当前流程实例,并将其中包含的所有子流程实例也一起终止。
终止事件只能作为结束事件
终止事件主要用于有多个并行路径,或有多个子流程的情况,无论并行路径或子流程是否执行完成,它会将它们全部终止。

 

3.9 补偿(Compensation)

若补偿事件被抛出,则当前范围内的所有活动都会做补偿。
若触发补偿的活动是个子流程,则此子流程中的所有活动也会触发补偿。若这些活动又包含子流程,则这些活动的子流程中的活动也会触发补偿,如此递归执行下去。但补偿事件不会传播到子流程的范围之外。
若一个要做补偿处理的活动是个子流程,并且子流程中包含一个由补偿启动事件触发的事件子流程,则只会触发事件子流程这个活动,不会触发子流程下的其它处理补偿事件的活动。
补偿的执行顺序与活动执行的顺序正好相反。
补偿事件子流程成功执行完成后,抛出补偿事件也可以让补偿事件子流程做补偿处理。

3.10 取消(Cancel)

取消事件需要与事务子流程一起使用。
取消事件只有两种使用形式。

  • 取消结束事件
  • 取消边界事件

取消结束事件发生后,必须由取消边界事件捕获。
取消边界事件只有中断这一种形式,不存在非中断的形式。
取消边界事件被捕获到后,会中断所有它的范围内活动的运行实例,并且启动范围内所有边界补偿事件,只有所有的补偿处理都完成后,才会离开事务范围,并离开取消边界事件。

3.11 多重(Multiple)

多重事件包含多个具体的事件,只要其中任意一个事件被触发,则多重事件被触发,流程继续。

等同于:

 

3.12 并行 (Parallel)

并行事件包含多个具体的事件,只有其中所有事件都被触发,则并行事件被触发,流程继续。

 参考文档

BPMN 2.0 Symbol Reference
BPMN 2.0 Symbols - A complete guide with examples. - Camunda

BPMN 2.0 Implementation Reference
BPMN 2.0 Implementation Reference | docs.camunda.org

Get started with Camunda
Getting started with Camunda Platform | docs.camunda.org

Camunda User Guide
User Guide | docs.camunda.org

Camunda Best Practices
https://camunda.com/best-practices/

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值