前言
前几章的流程图都只有一条通路,而实际业务中,业务逻辑很复杂,通常会根据当前节点的不同情况,选择不同的支路继续执行。在代码中,我们使用 If - else 来控制逻辑流向;在流程图中,我们使用 Gateway 来实现流程控制。
流程图
- 添加 Gateway。连线后,将鼠标放到线上,鼠标样式变成圆点时可拖动出折点,鼠标样式变成小短线时可拖动该部分线条位置
- 编程时,if (expression) 语句中的 expression 最终计算结果肯定是 boolean 类型 (true/false)。为求最简,直接在审批环节添加布尔类型变量”approve”,在审批时对其赋值,之后再根据 approve 的值决定流程走向。
- 假设当审批同意时,执行 say hello;不同意时,直接结束。
- 重命名流程,并另存为 gateway.bpmn 到 src/main/resources 文件夹下。
重启 SpringBoot
发起审批
启动流程
- 审批时修改 approve 的值,不选中为 false
- 点击 Complete 按钮,流程直接结束。
- 启动新的流程,这次勾选,此时 approve 为 true
- 点击 Complete 按钮,继续执行 say hello 节点。