前言

  1. 前几章的流程图都只有一条通路,而实际业务中,业务逻辑很复杂,通常会根据当前节点的不同情况,选择不同的支路继续执行。在代码中,我们使用 If - else 来控制逻辑流向;在流程图中,我们使用 Gateway 来实现流程控制。

流程图

  1. 添加 Gateway。连线后,将鼠标放到线上,鼠标样式变成圆点时可拖动出折点,鼠标样式变成小短线时可拖动该部分线条位置

image.png

  1. 编程时,if (expression) 语句中的 expression 最终计算结果肯定是 boolean 类型 (true/false)。为求最简,直接在审批环节添加布尔类型变量”approve”,在审批时对其赋值,之后再根据 approve 的值决定流程走向。

image.png

  1. 假设当审批同意时,执行 say hello;不同意时,直接结束。

image.pngimage.png

  1. 重命名流程,并另存为 gateway.bpmn 到 src/main/resources 文件夹下。

image.png

  1. 重启 SpringBoot

    发起审批

  2. 启动流程

image.png

  1. 审批时修改 approve 的值,不选中为 false

image.png

  1. 点击 Complete 按钮,流程直接结束。
  2. 启动新的流程,这次勾选,此时 approve 为 true

image.png

  1. 点击 Complete 按钮,继续执行 say hello 节点。

image.png