网关
网关用于控制执行流程(或如BPMN 2.0所述,执行令牌),网关能够使用或生成令牌。网关以菱形图形显示,内部带有一个图标,该图标显示网关的类型。
独占网关
描述
独占网关(也称为XOR网关,或更专业的称呼为基于数据的网关),用于在流程中对决策建模。当执行到达此网关时,将按照定义它们的顺序评估所有传出序列流,选择条件评估为true
的序列流(或没有条件集,概念上在顺序流上定义为“ true”)以继续该流程。
请注意,传出序列流的语义与BPMN 2.0中的一般情况不同。通常,条件评估为真的所有顺序流都选择以并行方式继续进行,而使用独占网关时,仅选择一个顺序流。如果多个序列流的条件评估为true
,则选择XML中定义的第一个(并且只有那个!)以继续该流程,如果无法选择顺序流,将引发异常。
图形符号
独占网关被可视化为典型的网关(即菱形形状),内部带有一个X图标,表示XOR语义。请注意,内部没有图标的网关默认为独占网关。BPMN 2.0规范不允许在同一流程定义中混合使用X和不使用X的菱形。
XML表示
独占网关的XML表示很简单:一行定义网关,并在传出序列流上定义条件表达式,以以下模型为例:
用XML表示如下:
<exclusiveGateway id="exclusiveGw" name="Exclusive Gateway" />
<sequenceFlow id="flow2" sourceRef="exclusiveGw" targetRef="theTask1">
<conditionExpression xsi:type="tFormalExpression">${input == 1}</conditionExpression>
</sequenceFlow>
<sequenceFlow id="flow3" sourceRef="exclusiveGw" targetRef="theTask2">
<conditionExpression xsi:type="tFormalExpression">${input == 2}</conditionExpression>
</sequenceFlow>
<sequenceFlow id="flow4" sourceRef="exclusiveGw" targetRef="theTask3">
<conditionExpression xsi:type="tFormalExpression">${input == 3}</conditionExpression>
</sequenceFlow>
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。