camunda_07_gateways

本文详细介绍了BPMN中的各类网关作用及其特点,包括排他网关、包容网关、并行网关等,并解释了Camunda Modeler中如何设置默认分支。
部署运行你感兴趣的模型镜像

目标

  • 了解BPMN中常用网关的作用和特点

BPMN 网关的作用

网关不是流程真正处理节点, 是作为流程的一个控制节点存在, 用于流程的合并join和分支fork, 一个网关节点可以同时用于fork也可以同时用于join. Camunda 引擎并不会为网关生成对应的task记录.

Camunda modeler 如何设置default分支

Camunda modeler 无法通过UI设置default分支, 只能通过改写xml设置, 方法是: 为gateway tag 增加default attribute, 缺省分支线上有一个back slash符号(/)

<bpmn2:exclusiveGateway id="Gateway_xor" default="Flow_default">
      <bpmn2:outgoing>Flow_amount100</bpmn2:outgoing>
      <bpmn2:outgoing>Flow_default</bpmn2:outgoing>
    </bpmn2:exclusiveGateway>

default分支示例

各种网关的图标

图标

排他网关 Exclusive gateway 页叫做 XOR gateway

作为fork的含义

  • 只有第一个满足条件的分支被执行, 其他条件的分支不会被执行.
  • 没有设置条件的分支, 就是缺省分支, 如果其他分支条件都不满足, 引擎会选择缺省分支执行.
  • 如果没有满足条件的分支, 流程会报错.
  • 可以理解为只有一个分支获取execution token

作为join的含义

  • 只要有一个前置分支到达后, 即完成合并, 流程继续往下执行.
  • 如果所有分支条件都不满足, 流程会报错.

包容网关 inclusive gateway, 也叫做 OR gateway

作为fork的含义

  • 所有满足条件的分支都会被执行, 每个分支都有一个execution
  • 没有设置条件的分支, 就是缺省分支, 如果其他分支条件都不满足, 引擎会选择缺省分支执行.
  • 如果没有满足条件的分支, 流程会报错.

作为join的含义

  • 所有满足入口条件的分子都到达网关后, 流程才会向后执行.
  • 如果所有分支条件都不满足, 流程会报错.

并行网关 Parallel gateway, 也叫做 AND gateway

作为fork的含义

  • 各个后续分支会被无条件执行

作为join的含义

  • 所有前置分支都必须执行完毕, 才会完成合并, 流程才会继续向后执行.

复杂网关 Complex gateway

使用场景

  • 使用代码实现的join和fork获取token的逻辑, 举例: 如果共有5个分支合并, 如果有3个分支令牌达到, 即想流程往后执行, 就只能使用代码实现该网关逻辑.

事件网关 Event gateway

使用场景

  • 事件网关只能用于fork, 不能用于合并.
  • 事件网关至少有两个outgoing分支, 只能有一个 incoming 分支.
  • 事件网关只能后接 中间catch类事件消息接收task
  • 事件网关的多个分支, 一直处于等待状态, 直到其中一个分支的事件到达, 流程才会向后执行.

参考

camunda-bpmn-网关(Gateways)

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值