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

  • 相关阅读:
    【Git】Deepin提示git remote: HTTP Basic: Access denied 错误解决办法
    SQL常见函数整理 —— LAG() 向上偏移
    【P60】JMeter Jtl 文件的 html 格式输出
    ECCV 2022 Oral | 自监督学习与量化协同互助
    软件工程毕业设计课题(83)微信小程序毕业设计PHP家政服务预约小程序系统设计与实现
    js数组方法复习汇总
    Android 明年将不再支持 32 位应用
    CORE EMU初接触
    韩顺平--多人在线通信系统
    从零开始学习软件测试-第46天笔记
  • 原文地址:https://blog.csdn.net/csdnharrychinese/article/details/127041941