Flowable进阶-网关

发布时间 2023-10-30 11:02:17作者: 3DG

什么是网关(gateway)?

简单说它是用来控制流程的流向,以实现更为复杂的审批流程。

网关分为:1.排他网关(exclusive gateway);2.并行网关(Parallel gateway);3.包容网关(Inclusive gateway);4.事件网关(Event-based gateway)

排他网关

亦称为异域网关XORgateway,按照既定顺序,选择且仅选择第一个符合条件的顺序流继续流程。特别注意,若无可选流程会抛出异常。

并行网关

用于表述流程并发,允许顺序流拆分为多个并发顺序流,亦允许多个分支合并为一个顺序流。

  • fork分支:任务开始,为每个顺序流创建并发分支。

  • join汇聚:所有并行网关,再次等待进入分支,至所有进入顺序流分支到达,通过汇聚网关。

并行网关不解析条件,在顺序流中定义的条件会被忽略。

包容网关

可视为排他网关与并行网关结合。既可以像排他网关一样解析定义条件,也可以像并行网关一样选择多条顺序流。

  • 分支:所有外出顺序流都会被解析条件,符合的顺序流会并行执行。

  • 汇聚:所有顺序流到达包含网关,进入等待状态,直至所有符合顺序流分支全部到达。简言之,包含网关需等待符合条件的分支进入顺序流。

事件网关

根据事件判断流向,所有外出顺序流连接一个中间事件。顺序流的执行,由流程引擎指定到网关的流程需要订阅的事件。条件如下。

  • 不止一条的外出顺序流

  • 连接到事件网关的中间捕获时间必须只有一个入口顺序流

事件网关之后,只能使用intermediateCatchEvent(中间捕获事件)