

1.并行网关

我们做一个并行网关,在请假之后,由两个人并行的审核,然后如果两个人都审核成功则完成流程。
下面我们部署BPMN然后生成一个实例:
@Test
public void initProcessInstance(){
ProcessInstance processInstance = runtimeService
.startProcessInstanceByKey("Process_parallel");
System.out.print("流程实例id:"+processInstance.getProcessInstanceId());
}
然后在任务里面我们就会看到有一条张三的请假,我们完成之后,就会在李四和王五都可以查看到各自的任务了。这里就不做演示,都是之前用过的代码。
而这种并行网关是针对一些重大事件的,例如发布一条重大新闻,需要主编和副主编同时审核就可以使用这种网关,如果每次审核人都不固定,这样的话可以使用之前的传参到候选人的方式,但是还需要加一个异步的操作,就是可以同时受到任务,这种方式有个缺点就是看不到候选人的类型。

2.排他网关
之后我们除了特别复杂的新的代码就贴下,其他的重复的代码就不再贴了

排他网关需要设置条件,例如请假大于多少天就谁来审核,小于多少天谁审核这种。
而在实际应用中,最多的是在退回中使用,如果不同意退回到起点这种操作。

3.包容网关
包容网关顾名思义,就是可能包含多个满足条件的审核人:

比如按照上图的流程来说,如果张三请假一天的话,那么李四和王五都会收到任务,如果两人都完成审核,则任务结束。
网友评论