1、描述

顺序流程是流程两个元素之间的连接器。在流程执行过程中访问一个元素之后,将遵循所有流出的顺序流程。这意味着BPMN 2.0的默认属性是并行的:两个输出序列流将创建两个独立的并行执行路径。

2、图形表示法

一个序列流被视为从源元素到目标元素的箭头。箭头总是指向目标。

flowable HistoricProcessInstance 获取变量 flowable获取流程节点顺序_OA

3、XML表示

序列流需要有一个进程唯一的id和对现有源和目标元素的引用。

<sequenceFlow id="flow1" sourceRef="theStart" targetRef="theTask" />

4、有条件的顺序流程

描述

序列流可以在其上定义一个条件。当留下BPMN 2.0活动时,默认行为是评估出站序列流的条件。当条件评估为真时,选择该输出顺序流程。当以这种方式选择多个序列流时,将会生成多个执行,并且过程将以并行的方式继续。

注意:上述内容适用于BPMN 2.0活动(和事件),但不适用于网关。网关将根据网关类型以特定方式处理具有条件的序列流。

图形表示法

一个有条件的顺序流被视为一个常规的顺序流,在开始处有一个小钻石。条件表达式显示在序列流旁边。

flowable HistoricProcessInstance 获取变量 flowable获取流程节点顺序_OA_02

XML表示

条件序列流在XML中用常规的序列流表示,包含一个conditionExpression子元素。请注意,目前只支持tFormalExpressions,省略xsi:type =“”定义将简单地默认为唯一受支持的表达式类型。

<sequenceFlow id="flow" sourceRef="theStart" targetRef="theTask">
	<conditionExpression xsi:type="tFormalExpression">
		<![CDATA[${order.price > 100 && order.price < 250}]]>
	</conditionExpression>
</sequenceFlow>

目前,conditionalExpressions 只能与UEL一起使用。有关这些的详细信息可以在表达式部分找到。使用的表达式应该解析为布尔值,否则在评估条件时抛出异常。

  • 下面的例子通过getters引用典型的JavaBean风格的流程变量的数据。
<conditionExpression xsi:type="tFormalExpression">
	<![CDATA[${order.price > 100 && order.price < 250}]]>
</conditionExpression>
  • 这个例子调用一个解析为布尔值的方法。
<conditionExpression xsi:type="tFormalExpression">
	<![CDATA[${order.isStandardOrder()}]]>
</conditionExpression>

Flowable发行版包含以下使用值和方法表达式的示例过程(请参阅org.flowable.examples.bpmn.expression):

flowable HistoricProcessInstance 获取变量 flowable获取流程节点顺序_java_03