网关

网关用于控制执行流程(或如BPMN 2.0所述,执行令牌),网关能够使用或生成令牌。网关以菱形图形显示,内部带有一个图标,该图标显示网关的类型。

bpmn.gateway.png

独占网关

描述

独占网关(也称为XOR网关,或更专业的称呼为基于数据的网关),用于在流程中对决策建模。当执行到达此网关时,将按照定义它们的顺序评估所有传出序列流,选择条件评估为true的序列流(或没有条件集,概念上在顺序流上定义为“ true”)以继续该流程。

请注意,传出序列流的语义与BPMN 2.0中的一般情况不同。通常,条件评估为真的所有顺序流都选择以并行方式继续进行,而使用独占网关时,仅选择一个顺序流。如果多个序列流的条件评估为true,则选择XML中定义的第一个(并且只有那个!)以继续该流程,如果无法选择顺序流,将引发异常。

图形符号

独占网关被可视化为典型的网关(即菱形形状),内部带有一个X图标,表示XOR语义。请注意,内部没有图标的网关默认为独占网关。BPMN 2.0规范不允许在同一流程定义中混合使用X和不使用X的菱形。

bpmn.exclusive.gateway.notation.png

XML表示

独占网关的XML表示很简单:一行定义网关,并在传出序列流上定义条件表达式,以以下模型为例:

bpmn.exclusive.gateway.png

用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>


博弈
2.5k 声望1.5k 粉丝

态度决定一切


引用和评论

0 条评论