Skip to end of metadata
Go to start of metadata

       在UFLO当中,分支节点的作用是实现流程的并行流转,因为分支节点的功能特性,决定了其下至少要有两条流出的连线,否则分支节点就没有意义了。分支节点在设计器工具栏上的图标如下图所示:

       选中分支节点,在我们的画布上添加一个新的分支节点,可以看到该节点在属性窗口中除所有节点皆有的公共属性外,没有其专属的属性配置项。但对于流出当前分支节点的连线来说,可以在分支节点流出的连线上配置条件,这样当流程实例到达分支节点时,会计算其下所有流出连线上配置的条件(如果有配置的话),如果条件结果返回true,那么该流出连线将会被分支节点采纳,产生一个新的分支流程;否则将抛弃该流出连线上对应的分支流程。

       可以看到,一旦我们为分支节点下流出连接配置条件时,连线连接分支节点的起点就会添加一个小的菱形,表示当前流出连线上添加了条件,如下图所示。

       从上面的流程图中可以看到,我们为名为“to 人工任务8”及“to 人工任务8”的位于“分支2”上流出连线添加了条件,这样当流程实例运行到“分支2”节点后,引擎会首先获取到当前节点下所包含的三条连线,对于名为”to 人工任务7“节点来说,因为其上没有配置条件,所有它会被“分支2”节点采纳产生新的分支流程,而另外两条流出连线则会计算它们的条件,如果条件值返回true,那么会被采纳,否则将会被抛弃。

       这里需要指出的是,在连线上配置条件时,一定要保证当前连接位于分支节点下,是作出分支节点的流出连线,否则添加的条件就没有意义,因为只有分支节点下的流出连线,引擎才会计算连接上附加的条件,而对于其他节点下配置的流出连接,即使上面配置了条件,也会被引擎忽略。在UFLO当中,为连接添加条件有两种方式:指定表达式及指定一个实现了com.bstek.uflo.process.handler.ConditionHandler接口的配置在spring中的bean的ID。

       分支节点的作用是将一条串行的流程实例拆分成若干条并行的流程实例,那么这些被拆分的并行流程实例如果需要聚合的话又该如何处理呢?如上面的流程图那样,如果需要将由分支节点拆分产生的若干并行分支聚合起来,我们必须要使用“聚合”节点,一般情况下,分支与聚合节点总是成对出现的,关于聚合节点,后面有专门介绍,这里就不再赘述了。

      在分支节点上可添加的流入与流出连线数量如下表所示:

连线类型
数量
流入连线1~n
流出连线2~n


Labels
  • No labels