一、连线
可以设置流程连线中的id和name,设置连线上的Main config中的条件可以决定走哪一条分支。
当上一节点完成任务时,需要带入流程变量,来控制流程的走向。
二、网关(ExclusiveGateway)
其实网关说白了就是事件流到某一个核心节点,该节点需要做一个判断,如果判断符合某一个逻辑,那么事件就流到合适的路径上去,进行了分支。而做判断的节点就是所谓的网关。
1、排他网关
分支操作:
(1)如果报销金额大于500,小于等于1000,则任务流转至部门经理审批;
(2)如果报销金额小于等于500,默认流转至财务处审批;
(3)如果报销金额大于1000,则任务流转至总经理审批;
(1)如果报销金额大于500,小于等于1000,则任务流转至部门经理审批;
(2)如果报销金额小于等于500,默认流转至财务处审批;
(3)如果报销金额大于1000,则任务流转至总经理审批;
排他网关中默认分支的设置,此处可以设置连线的 ID来进行可视化的默认连线选择:
不能进行部署的问题解释(踩了坑):
如果在默认分支的连线上设置了流转条件并且在排他网关中选择了默认分支,则部署不成功。
解决办法:
①如果在默认分支连线上进行了分支条件的设置,则在排他网关中不设置默认分支。
②如果在排他网关中设置了默认分支,则不能再设置分支的连转条件。
②如果在排他网关中设置了默认分支,则不能再设置分支的连转条件。
部署成功之后,在启动流程时设置流程变量即可进行流程的流转。
2、并行网关(ParallelGateway)
2.1 什么是并行网关?
它可以将分支(fork)为多个路径,也可以合并(join)多个入口路径。
并行网关的前提条件:基于出口顺序流和入口顺序流。
2.2 并行网关两个重要特性:
分支(fork): 并行后的所有外出顺序流,为每个顺序流都创建一个并发分支。
合并(join): 所有到达并行网关,在此等待的进入分支, 直到所有进入顺序流的分支都到达以后, 流程就会通过汇聚网关。
2.3 注意:
1.如果并行网关同时具有入口顺序流和出口顺序流,并行网关会先执行入口顺序流,然后执行再分裂成多条可以执行的路径。
2.并行网关不执行计算条件。并行网关上面的计算条件会被忽略。
3.并行网关分支和合并是同时存在的,就是说,一个至少有一个分支和一个合并。但是,网关是可以不平衡的,分支和合并的数量可以不一致。
2.4 案例:模拟网上购物流程。
付款和收货办理人为买家,发货和收款办理人为商家。
流程图如下:
启动流程之后,任务表当中会多出两条任务数据,办理人分别为买家和商家。
实例表当中多出三条纪录,分别代表整个流程实例和两个分支的执行实例。而执行实例有必须属于某一个流程实例,所以要有父ID。
2.5 说明
1)一个流程中流程实例只有1个,执行对象有多个
2)并行网关的功能是基于进入和外出的顺序流的
分支(fork):并行后的所有外出顺序流,为每个顺序流都创建一个并发分支。
汇聚(join):所有到达并行网关,在此等待的进入分支, 直到所有进入顺序流的分支都到达以后, 流程就会通过汇聚网关。
3)并行网关的进入和外出都是使用相同节点标识
4)如果同一个并行网关有多个进入和多个外出顺序流, 它就同时具有分支和汇聚功能。 这时,网关会先汇聚所有进入的顺序流,然后再切分成多个并行分支。
5)并行网关不会解析条件。 即使顺序流中定义了条件,也会被忽略。
6)并行网关不需要是“平衡的”(比如,对应并行网关的进入和外出节点数目不一定相等)。如图中标示是合法的: