作用
网关主要是用来控制流程的流向的
排他网关
排他网关,用来在流程中实现决策。当流程执行到这个网关,所有的分支都会判断条件为true,如果为true则执行该分支
注意:排他网关只会选择为true的分支执行。如果有两个分支条件都为true,排他网关会选择id值较小的一条分支去执行
不适用网关也可以实现分支。如:在连线的condition条件上设置分支条件。
在连线设置condition条件,如果条件都不满足,流程就结束了(异常结束)
如果,是使用排他网关决定分支流向,如下:
排他网关,如果条件都满足就会出现抛出异常,
org.activiti.engine.ActivitiException:
No outgoing sequence flow of the exclusive gateway 'x'
could be selected for continuing the process
并行网关
并行网关允许将流程分成多条分支,也可以把多余分支汇聚到一起,并行网关的功能是基于进入和外出顺序流的。
分支:并行后所有的外出的顺序流,每一个顺序分支流都会创建一个分支
汇聚:所有到达并行网关,在此等待的分支,直到所有分支顺序流都达到以后,流程才会通过
注意:如果同一个并行网关有多个进入和多个外出顺序流,它就同时具有分支和汇聚功能。这时,网关会先汇聚所有的进入顺序流,然后再切分为多个并行分支
与其他网关主要区别是,并行网关不会解析条件。即使顺序流中定义了条件,也会被忽略。
包含网关
和排他网关一样,你可以在外出顺序流上定义条件,包含网关会解析它们。但是主要的区别是包含网关可以选择多于一条顺序流,这和并行网关一样
包含网关的功能是基于进入和外出顺序流的:
分支:所有的外出顺序流的条件都会被解析,结果为true的顺序流会以并行方式继续执行,会为每个顺序流创建一个分支
汇聚:所有的并行网关分支到达包含网关,会进入等待状态,知道每个包含流程token的进入顺序都到达
整合后面在补,感谢关注