Flowable-顺序流

目录

  • 顺序流
    • 标准顺序流
      • 定义
      • 图形标记
      • XML内容
      • 使用示例
    • 条件顺序流
      • 定义
      • 图形标记
      • XML内容
      • 界面操作
    • 默认顺序流
      • 定义
      • 图形标记
      • XML内容
      • 使用示例
      • 视频教程

顺序流

顺序流是一端带有箭头的实线,可在流程图中连接流程内的各个元素,并显示各个元素的执行顺序。

Flowable 支持的顺序流有:

  • 标准顺序流
  • 条件顺序流
  • 默认顺序流

标准顺序流

定义

顺序流是 BPMN2 规范中的流程定义元素,是连接两个流程节点的连线。顺序流可以在编排流
程时控制流程的执行顺序,流程执行完一个节点后,会沿着节点的所有外出顺序流继续执行。顺序
流在 BPMN 2.0 中默认的行为是并发的:多个外出顺序流会创造多个单独的,并发流程分支。

图形标记

标准顺序流表示为一条带有箭头的实线,从起点指向终点,如图所示:

在这里插入图片描述

XML内容

顺序流需要流程范围内唯一的 id,以及对起点与终点元素的引用。每个顺序流都有一个源头和
一个目标引用,包含了活动、事件或网关。

<sequenceFlow id="testSequenceFlow" name="标准顺序流" sourceRef="sourceNodeId"
targetRef="targetNodeId" />

其中,sourceRef 属性值为起点元素的 id,targetRef 属性值为终点元素的 id。name 属性可以理
解为顺序流的注释,将会在流程图上显示出来,注释可以让流程路线更直观和易于识别,注释不参
与到引擎规则判断中。

使用示例

Flowable-顺序流_第1张图片

条件顺序流

定义

顾名思义,条件顺序流需要满足一定的条件才能被执行。从网关(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 环 境中)也可以使用在表达式中,比如 之间,只能使用UELUnifiedExpressionLanguage,统一表达式语言,javaEE6规范的一部分),表达式的计算结果需要返回boolean值,否则会在解析表达式时抛出异常。Flowable支持两种UEL表达式:UELvaluevalueexpression)和UELmethodmethodexpression)。UELvalue解析为值,默认所有流程变量都可以在表达式中使用,所有springbeanspring环境中)也可以使用在表达式中,比如{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.PropertyUELmethod用于调用一个方法,可以传参数也可以不传参数。传递的参数可以是字符串也可以是表达式,它们会被自动解析。当调用一个无参数的方法时,记得在方法名后添加空的括号。比如:{startUserBean.getStartUser()}、${humanService.getDirectLeader(currentUser)}。

界面操作

默认顺序流

定义

在 BPMN2 规范中,所有的任务和网关都可以设置一个默认顺序流。只有在节点的其他外出顺
序流的条件都不满足时,引擎会选择默认顺序流作为外出顺序流继续执行。默认顺序流的条件设置
不会生效。

图形标记

默认顺序流显示为了普通顺序流,起点有一个“斜线”标记,如图所示。

在这里插入图片描述

XML内容

<exclusiveGateway id="Gateway_1gse3sj" default="Flow_1xda65r">
      <incoming>Flow_0ovx8agincoming>
      <outgoing>Flow_1xda65routgoing>
      <outgoing>Flow_071i0y1outgoing>
    exclusiveGateway>

使用示例

视频教程

顺序流

你可能感兴趣的:(Flowable组件库,服务器,运维,微服务,flowable,bpmnjs,流程引擎,java)