camunda_07_gateways

目标

  • 了解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)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值