• 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符号(/)

    1. Flow_amount100
    2. Flow_default

    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)

  • 相关阅读:
    Java 最常见的 208 道面试题(含答案)之一
    OpenHarmony、HarmonyOS打开编辑 PDF 等操作的三方组件使用教程
    智能井盖传感器特点是什么?
    MySQL之索引
    438页19万字农牧业综合服务信息化减灾应急建设方案
    设计模式---抽象工厂模式
    C++中的解释器模式
    Linux - 零拷贝技术
    如何使用Windows GPU 云服务器搭建深度学习环境?
    学习笔记 | 音视频 | 推流项目框架及细节
  • 原文地址:https://blog.csdn.net/csdnharrychinese/article/details/127041941