一、简介
Gateway是BPMN2规范中的流程定义元素,中文可称为“网关”、“决策”、“判断”。网关用来控制流程的执行流向,当在拆分路径时产生令牌,在合并路径时消费令牌。常用网关可分为排他网关(ExclusiveGateway)、并行网关(ParallelGateway)与包容网关(Inclusive Gateway)。
二、网关清单
排他网关(Exclusive Gateway):排他网关定义了一组分支的唯一决策,所有流出的分支被顺序评估,第一个条件被评估为true的分支被执行,并不再继续评估下面的分支。
并行网关(Parallel Gateway):并行网关根据前置连线或后继连线,无条件创建分支或回收分支。
包容网关(Inclusive Gateway):包容网关是排他网关和并行网关的综合体。当决策时,与排他网关所不同的是,所有条件为true的后继分支都会被执行。
事件网关(Event-Based Gateway):仅适用于对后继路线拆分,该网关选择事件最先到达的路径(如时间事件、消息事件),取消其他分支。
三、拆分与合并
拆分(Fork)
从网关流出(Outgoing)的连线(Sequence Flow)被称为路径拆分,每个连线在流程结构上表达了一个执行路径,拆分对应了流程引擎的Splitting(Branch)行为。根据BPMN2规范要求,不同类型的网关,对路径拆分的决策评估模式是不同的。连线支持条件规则的设定,但是当使用并行网关时,设置的条件规则被忽略。
合并(Join)
所有指向(Incoming)该网关的连线被称为路径合并,合并在流程结构上表达了对一个执行路径的等待,对应流程引擎的Merging行为。根据BPMN2规范要求,不同类型的网关,对执行路径的等待处理模式是不同的。被合并的连线不需要进行规则设定。