包容网关相当于排他网关和平行网关的结合体,当单独使用平行网关和排他网关不能实现分支拆分和合并的需求时,可以使用包容网关。
与平行网关类似,包容网关也可以用来创建多个平行执行的分支,在需要多分支同时向下推进时会使用。
编排上,包容网关支持多进多出
当包容网关有多个输出时,包容网关会根据条件拆分多个分支,每个分支只要条件成立(条件结果=true),会都会同步向下执行
当包容网关有多个输入时,会等待每一个需要执行的分支流转到包容网关后,才会继续向下执行,不需要执行的分支不会等待
当包容网关后续所有输出分支的条件都为true时,则与平行网关效果完全相同
在前后两个包容网关中间的分支上,不要使用跳转
节点,会影响进出分支数量的计算,可能导致包容网关无法向后流转,可以在两个包容网关之外使用
-
以下图为例
第一个包容网关配置了输出条件:
当条件1PaymentReceived
=false
时,需要走Receive payment
节点
当条件2shipOrder
=true
时,需要走ShipOrder
节点
第二个包容网关接收2条输入,并输出Archive order
节点
如果:
两个条件都满足,则
Receive payment
节点和ShipOrder
节点都会执行
且第二个包容网关需要等到这两个节点都执行完毕,才会输出
条件1满足、条件2不满足,则
Receive payment
节点会执行,但ShipOrder
节点不会执行
第二个包容网关只需要等到Receive payment
节点执行完毕,就会输出,不会等待ShipOrder
节点的执行
camunda参考文档:https://docs.camunda.org/manual/7.23/reference/bpmn20/gateways/inclusive-gateway/
回到顶部
咨询热线