Skip to content

网关节点

网关节点是流程中的“交警”,负责控制工单的流转方向与执行逻辑。系统通过网关实现复杂的分支判断、并行协作以及多路汇聚。

1. 逻辑类型

系统提供四种核心网关模式,涵盖了从简单判断到复杂并发的所有业务场景。

条件网关 (Condition Gateway)

  • 匹配逻辑条件分发。系统会评估所有出口路径上的条件表达式。只要符合条件的分支都会被同时激活。如果有多条路径同时满足条件,流程将进入并行执行状态。
  • 场景:基于环境或参数的差异化分流(如:若 环境==生产风险程度==高,则同时触发“高级审批”与“安全审计”两条分支)。
条件网关示例

并行网关 (Parallel Gateway)

  • 执行协议强制同步
    • 分流:无视任何条件,同时启动所有出口分支。
    • 汇聚:必须等待所有上游分支全部处理完成(Finish),系统才会启动后续任务。
  • 场景:跨团队强制会签。
并行网关示例

包含网关 (Inclusive Gateway)

  • 执行协议非阻塞汇聚。只要上游分支中有任意一个率先完成,流程即可立即向下流转,无需等待其他分支。
  • 场景:竞争执行。例如:同时向两个云平台触发资源申请,只要其中一个申请成功,后续流程即可继续,无需等待另一个。
包含网关示例

则并网关 (Selective Gateway)

  • 执行协议选择性并行 (Dynamic Parallel)
  • 核心特性:该网关允许在一个预设的并行结构中,根据工单参数动态决定开启哪些分支。不符合条件的分支将被系统自动标记为“跳过 (Skip)”,而不会阻塞整个流程。
  • 发布场景示例
    • 编排设计:流程中设计了 前端发布后端发布 两个并行分支。
    • 执行逻辑:用户提交工单时仅选择了 发布范围 = ['后端']
    • 执行结果:流程流转至网关时,系统将激活 后端发布 分支,并自动将 前端发布 标记为 已跳过 (Skip)。网关将在后端分支完成后立即向下汇总。
则并网关示例

2. 条件表达式规范

在网关出口的连线上,您可以定义具体的判定逻辑,支持基于工单表单字段的动态评估。

语法说明:

  • 支持标准运算符:==!=><>=<=
  • 集合运算符:支持 innot in(常用于匹配 JSON 数组或枚举集合)。
  • 逻辑组合:支持使用 && (与)、|| (或) 以及 () 组合复杂判定。

常用示例:

  • env == 'prod':仅在生产环境下走该分支。
  • level in ('P1', 'P2'):针对高等级告警触发紧急流程。
  • tags not in ('internal'):排除内部测试标签的工单。
  • amount >= 500 && amount <= 1000:特定区间的数据路由。

3. 设计注意事项

  • 逻辑闭环:使用并行或包容网关时,请确保所有并行分支最终都能对应汇聚到下一个网关或到达结束节点,避免流程实例出现悬挂。
  • 默认路径:在条件网关设计中,若没有任何一条路径符合条件,流程可能会由于无法寻找后续节点而阻断。建议配置一条“无条件”或“匹配 1 == 1”的兜底路径作为默认通道。

CAUTION

资源竞争:在并行执行多个自动化节点时,请注意底层资源的互斥性,避免并发操作导致的数据竞态问题。

基于 MIT 许可发布