目录
- 顺序流
- 标准顺序流
- 定义
- 图形标记
- XML内容
- 使用示例
- 条件顺序流
- 定义
- 图形标记
- XML内容
- 界面操作
- 默认顺序流
- 定义
- 图形标记
- XML内容
- 使用示例
- 视频教程
顺序流
顺序流是一端带有箭头的实线,可在流程图中连接流程内的各个元素,并显示各个元素的执行顺序。
Flowable 支持的顺序流有:
- 标准顺序流
- 条件顺序流
- 默认顺序流
标准顺序流
定义
顺序流是 BPMN2 规范中的流程定义元素,是连接两个流程节点的连线。顺序流可以在编排流
程时控制流程的执行顺序,流程执行完一个节点后,会沿着节点的所有外出顺序流继续执行。顺序
流在 BPMN 2.0 中默认的行为是并发的:多个外出顺序流会创造多个单独的,并发流程分支。
图形标记
标准顺序流表示为一条带有箭头的实线,从起点指向终点,如图所示:
XML内容
顺序流需要流程范围内唯一的 id,以及对起点与终点元素的引用。每个顺序流都有一个源头和
一个目标引用,包含了活动、事件或网关。
<sequenceFlow id="testSequenceFlow" name="标准顺序流" sourceRef="sourceNodeId"
targetRef="targetNodeId" />
其中,sourceRef 属性值为起点元素的 id,targetRef 属性值为终点元素的 id。name 属性可以理
解为顺序流的注释,将会在流程图上显示出来,注释可以让流程路线更直观和易于识别,注释不参
与到引擎规则判断中。
使用示例
条件顺序流
定义
顾名思义,条件顺序流需要满足一定的条件才能被执行。从网关(Gateway)、活动(Activity)、
事件(Event)的离开的顺序流,允许为它设定规则条件,引擎在执行网关、活动的后继拆分路线
时,将通过评估条件的连线作为选择路径。在标准顺序流上设置一个 condition 表达式来决定下一
步流出的目标,就构成了一个条件顺序流,当流程离开一个节点时,流程引擎会计算其每个出口顺
序流上的条件,只有当 condition 条件结果为 true 时,选择该出口顺序流。当多条顺序流被选中时,
就会创建多条分支,流程会继续以并行方式继续执行。
图形标记
条件顺序流显示为在一个正常的顺序流的起点上加了一个菱形,条件表达式也会显示在顺序流
上,如图所示:
XML内容
<sequenceFlow id="Flow_0acsf96" sourceRef="Gateway_0cvg5ta" targetRef="Activity_185hcl7">
<conditionExpression xsi:type="tFormalExpression">${flag}</conditionExpression>
</sequenceFlow>
由于目前 Flowable 只支持 tFormalExpressions,所以必须把 xsi:type="tFormalExpression"添加到
conditionExpression 中。条件表达式放在
之间,只能使用
U
E
L
(
U
n
i
f
i
e
d
E
x
p
r
e
s
s
i
o
n
L
a
n
g
u
a
g
e
,统一表达式语言,
j
a
v
a
E
E
6
规范的一部分),表达式的计算结果需要返回
b
o
o
l
e
a
n
值,否则会在解析表达式时抛出异常。
F
l
o
w
a
b
l
e
支持两种
U
E
L
表达式:
U
E
L
−
v
a
l
u
e
(
v
a
l
u
e
e
x
p
r
e
s
s
i
o
n
)和
U
E
L
−
m
e
t
h
o
d
(
m
e
t
h
o
d
e
x
p
r
e
s
s
i
o
n
)。
U
E
L
−
v
a
l
u
e
解析为值,默认所有流程变量都可以在表达式中使用,所有
s
p
r
i
n
g
b
e
a
n
(
s
p
r
i
n
g
环境中)也可以使用在表达式中,比如
{}之间,只能使用 UEL(Unified Expression Language,统 一表达式语言,java EE6 规范的一部分),表达式的计算结果需要返回 boolean 值,否则会在解析 表达式时抛出异常。 Flowable支持两种 UEL表达式:UEL-value(value expression)和 UEL-method(method expression)。 UEL-value 解析为值,默认所有流程变量都可以在表达式中使用,所有 spring bean(spring 环 境中)也可以使用在表达式中,比如
之间,只能使用UEL(UnifiedExpressionLanguage,统一表达式语言,javaEE6规范的一部分),表达式的计算结果需要返回boolean值,否则会在解析表达式时抛出异常。Flowable支持两种UEL表达式:UEL−value(valueexpression)和UEL−method(methodexpression)。UEL−value解析为值,默认所有流程变量都可以在表达式中使用,所有springbean(spring环境中)也可以使用在表达式中,比如{startUser}、
∗
∗
B
e
a
n
.
∗
∗
P
r
o
p
e
r
t
y
。
U
E
L
−
m
e
t
h
o
d
用于调用一个方法,可以传参数也可以不传参数。传递的参数可以是字符串也可以是表达式,它们会被自动解析。当调用一个无参数的方法时,记得在方法名后添加空的括号。比如:
{**Bean.**Property}。 UEL-method 用于调用一个方法,可以传参数也可以不传参数。传递的参数可以是字符串也可 以是表达式,它们会被自动解析。当调用一个无参数的方法时,记得在方法名后添加空的括号。比 如:
∗∗Bean.∗∗Property。UEL−method用于调用一个方法,可以传参数也可以不传参数。传递的参数可以是字符串也可以是表达式,它们会被自动解析。当调用一个无参数的方法时,记得在方法名后添加空的括号。比如:{startUserBean.getStartUser()}、${humanService.getDirectLeader(currentUser)}。
界面操作
默认顺序流
定义
在 BPMN2 规范中,所有的任务和网关都可以设置一个默认顺序流。只有在节点的其他外出顺
序流的条件都不满足时,引擎会选择默认顺序流作为外出顺序流继续执行。默认顺序流的条件设置
不会生效。
图形标记
默认顺序流显示为了普通顺序流,起点有一个“斜线”标记,如图所示。
XML内容
<exclusiveGateway id="Gateway_1gse3sj" default="Flow_1xda65r">
<incoming>Flow_0ovx8ag</incoming>
<outgoing>Flow_1xda65r</outgoing>
<outgoing>Flow_071i0y1</outgoing>
</exclusiveGateway>
使用示例
视频教程
顺序流