Camunda BPMN 基础组件

Camunda基础

一、参与者

参与者(Participants)是参与流程的对象,表示流程中活动的执行者,可以是一个组织、角色、系统或者个人。
图例1
图示为基础事件,除此之外还有:

  • 消息开始事件(Message Start Event),是消息和开始事件的结合。表示接收到从另一个参与者发出的消息从而触发了一个开始事件。
  • 消息流(Message Flow),代表流程中参与者双方之间消息的流动,也就是收发消息。
  • 定时器中间事件(Timer Intermediate Event),是定时器和中间事件的结合。代表在流程执行过程中由定时器触发的事件。
  • 排他网关(Exclusive Gateway),也叫互斥网关、异或网关。网关用来控制流程中的分支进行发散或者汇聚。排他网关表明多条分支路径只有一条可以执行。
  • 并行网关(Parallel Gateway),用来对并行的事件进行建模。当并行网关用于分支汇聚时,所有分支都执行完成后才会沿着顺序流继续执行下去。
二、任务

在这里插入图片描述
服务任务(Service Task)是任务的一种,它的工作一般由软件自动完成,比如一个 Web 服务或者一个自动化的应用。服务任务如图所示。服务任务用于调用服务。在 Camunda 中,这是通过调用 Java 代码或为外部执行者提供一个工作单元来完成的。

在这里插入图片描述
用户任务(User Task)用于为那些需要由人工参与者完成的工作建模。当流程执行到一个用户任务时,将在分配该任务的用户或组的任务列表中创建一个新任务。当任务完成后,流程引擎(简称引擎)会期望得到一个确认,这既可以是单击一个代表完成的按钮,也可以是由用户提供一些数据作为输入。

最常用的就是用户任务,一般在审批中使用,除此之外还有接收任务(Receive Task)、脚本任务(Script Task)、业务规则任务(Business Rule Task)、发送任务(Send Task)等。

三、网关

在流程中,通常需要做出选择,也就是进行业务决策。在 BPMN 中,这个决策用网关(Gateway)来表示。网关也叫逻辑门,用来控制顺序流的分叉(Fork)和连接(Join)。所谓的分叉,就是把顺序流(Sequence Flow)发散开去,变成两个或者多个分支;而连接则相反,把两个或者多个分支合并成一个。

  1. 排他网关( XOR 网关)
    在这里插入图片描述
    依次评估所有传出序列流,并选择第一个条件评估结果为真(True)的序列流来继续这个流程。与包含网关不同,它只可以选择一个序列流进行执行。

  2. 条件序列流(可实现网关功能)

在这里插入图片描述
序列流可以定义一个条件。当离开 BPMN 2.0 的活动时,默认行为是评估传出序列流上的条件。当条件评估的结果为真时,将被选为传出序列流。当以这种方式选择多个序列流时,将生成多个执行,并以并行方式继续进行。注意,这对于网关是不同的。网关会根据网关类型的不同以相应的方式来处理带有条件的序列流。

  1. 并行网关
    在这里插入图片描述

网关还可以用于为流程中的并发性建模。在流程模型中引入并发性最直接的网关是并行网关,它允许分叉到多个执行路径或连接多个传入的执行路径。
(1)Fork。所有传出序列流都是并行执行的,将为每个序列流创建一个并发执行。
(2)Join。到达并行网关的所有并发执行都在网关等待,直到所有传入序列流的执行都
到达,然后这个流程继续进行。

并行网关与其他网关类型的一个重要区别是它不会评估条件。如果在连接到并行网关的序列流上定义了条件,那么它们将被地忽略掉。

  1. 包含网关

在这里插入图片描述
包含网关可以看作排他网关和并行网关的结合。与排他网关类似,可以定义传出序列流的条件,而包含这些条件的网关将对它们进行评估然而,主要的区别在于包含网关可以接收多个序列流,就像并行网关一样。包含网关的功能是基于传入和传出序列流的:
(1)Fork。对所有传出序列流进行条件评估,对每个条件评估结果为真的序列流都会创建一个并发执行,以并行地执行。
(2)Join。到达包含网关的所有并发执行都在网关等待,直到拥有流程令牌的所有传入
序列流的执行都到达为止。这是与并行网关的一个重要区别。 注意,如果同一个包含网关有多个传入和传出序列流,那么包含网关可以同时具有 Fork和 Join 的行为。在这种情况下,网关将首先连接(Join)所有拥有流程令牌的传入序列流,然后将条件评估结果为真的传出序列流分割成多个并行执行路径。

四、事件

事件(Event)是 BPMN 2.0 执行语义中一个非常重要的概念,是流程运行过程中发生的事情,而这些事情的发生会影响到流程的流转。对每个事件而言,一般会包含两个要素,分别是触发这个事件的原因,以及由此导致的结果。事件包含开始(Start)、中间(Intermediate)和结束(End)三种类型。它既包括事件的开始、结束、边界条件,也包括每个活动的创建、开始、流转等。利用事件机制,可以通过事件控制器为系统增加辅助功能,如与其他业务系统集成、活动预警等。

在这里插入图片描述

在这里插入图片描述
执行流程,如果当任务 2 正在执行的过程中事件 1 发生了,任务 2 会被立即取消,然后开始执行任务 4。
如果任务 2 执行完成后事件 1 才发生,那么这个事件 1 会被忽略掉。

在这里插入图片描述
如果当任务 2 正在执行的过程中事件 1 发生了,任务 2 会继续执行;同时,任务 4也开始执行。如果事件 1 再次发生,上述流程会重复进行。
如果任务 2 执行完毕后事件 1 才发生,那么这个事件 1 会被忽略掉。

事件类型如下种类

  • 空白事件(None Events) 例如图4.1,4.2,4.3 分别都是空白时间,即不做任何处理

  • 消息(Message)事件:消息事件是引用指定消息的事件。消息有名称和有效负载。与信号不同,消息事件总是指向单个收件人。当一条消息从发送方到达接收方时,会触发一个流程的开始。
    在这里插入图片描述

  • 定时器事件(Timer Event)它们可以用作开始事件、中间事件或者边界事件。边界事件可以是中断的,也可以是非中断的。

在这里插入图片描述

  • 升级事件(Escalation Events)是引用一个已命名的升级(Escalation)的事件。它们主要用于从子流程到上层流程的通信。
    在这里插入图片描述
  • 条件事件(Conditional Event)是当满足特定条件时执行的事件。比如温度超过 100℃,或者 CPU 使用率超过 80%,等等。条件与流程是独立的,因此条件事件只能是捕获事件,而且一个条件事件不能触发另一个条件事件。
    在这里插入图片描述
  • 终止事件(Terminate Event)并行的执行多个任务,但是当其中一个任务执行完成后到终止事件后,其他并行任务就不再执行
    在这里插入图片描述
    汇总图例如下:
    在这里插入图片描述
  • 23
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

生如夏花般绚丽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值