技术交流28群

服务热线

135-6963-3175

微信服务号

activti之网关 更新时间 2016-5-25 浏览1218次

1643205427252.png

分为4种网关

排他网关

只能走一个满足条件的分支,如果有多条符合条件的分支,流程会默认走第一条。

<exclusiveGateway id="exculusivegateway" name="排他网关"></exclusiveGateway>

1643217731607.png

并行网关

可同时走多个满足条件的分支。并行网关至少有一条分支被执行,而且所有的分支都会被执行

与其他网关的主要区别是,并行网关不会解析条件。 即使顺序流中定义了条件,也会被忽略。

要有开始和结束聚合

<parallelGateway id="fork" name="fork"></parallelGateway>

...

<parallelGateway id="join" name="join"></parallelGateway>

1643217731931.png


包容网关

包容网关有多条或者一条分支会被执行。是并行网关(Parallel Gateway)和排他网关(Exclusive Gateway)的组合。可以在出口顺序流上定义条件,包容网关会计算它们。然而主要的区别是,包容网关与并行网关一样,可以选择多于一条(出口)顺序流。

与排他网关所不同的是,所有条件为true的后继分支都会被依次执行,如果所有分支条件决策都为false且该网关定义了一个默认的连线,那么该默认分支将被执行

判断包容网关的每个分支连线,条件为true的分支被执行。使用容网关的分支连线必须设置条件规则,未设置规则的连线被评估为false。

要有分支和结束聚合

<inclusiveGateway id="fork" name="fork"></inclusiveGateway>

1643217731055.png

事件网关


提供了根据事件做选择的方式。网关的每一条出口顺序流都需要连接至一个捕获中间事件。当流程执行到达基于事件的网关时,与等待状态类似,网关会暂停执行,并且为每一条出口顺序流创建一个事件订阅。


请注意:基于事件的网关的出口顺序流与一般的顺序流不同。这些顺序流从不实际执行。相反,它们用于告知流程引擎:当执行到达一个基于事件的网关时,需要订阅什么事件。有以下限制:

一个基于事件的网关,必须有两条或更多的出口顺序流

基于事件的网关,只能连接至intermediateCatchEvent(捕获中间事件)类型的元素(Flowable不支持在基于事件的网关之后连接“接收任务 Receive Task”)。

连接至基于事件的网关的intermediateCatchEvent,必须只有一个入口顺序流。

<eventBasedGateway id="gw1" name="基于事件的网关"></eventBasedGateway>

1643217731828.png