Activiti三种网关的绘制方法以及简单的用法

/ 0条评论 / 0 个点赞 / 1264人阅读

需求

我们平时用的流程都是一些很简单的流程,提前定义好了流程,都是一些简单的流程定义,在用到的时候直接启动流程实例就可以了。但是有很多复杂的需求,需要我们增加条件才能达到流程管理的效果。所以这里推出三种网关,来解决这个问题。

① 排他网关

     绘制效果:

/upload/article/png/520520_20200814172823.png

定义:

排他网关用于决策,选择分支执行流程,分支上需要设置condition条件,如果分支的条件结果为true,那么该分支会通过排他网关。排他网关只会选择一条分支去执行。

排他网关流程测试:

第一步:流程定义部署

第二步:启动流程实例(设置price流程变量值,因为price在排他网关的两分支使用)

第三步:查询待办任务(这里要注意,需要在部门经理审核时或者该审核之前对全局变量price赋值)

第四步:办理任务

注意:如果分支上的条件都不满足,没有一条线经过排他网关,activiti会抛出异常;相反如果都满足,会选择编号小的流程先走

② 并行网关

     绘制效果:

/upload/article/png/520520_20200814172830.png

定义:

并行网关,包括分支和汇聚两个结点,所有的分支不判断条件都经过分支结点,所有经过分支结点的分支都要进行汇聚,所有的分支全部执行完成,并行网关执行完成。

分支:所有的分支不判断条件都经过分支结点

汇聚:所有经过分支结点的分支都要经过汇聚

这里,分支的数量等于汇聚数量。

并行网关测试:在原来基础上不需要进行其他的改进,只不过对并行网关上的两个任务点需要分配相应的任务执行人。

③ 包含网关

     绘制效果:

/upload/article/png/520520_20200814172837.png

定义:

包含网关是排他网关和并行网关的结合体,包含网关,包括分支和汇聚两个结点,经过分支结点需要判断条件,满足条件经过分支结点,所有经过分支结点的线边最终会进行汇聚。

分支:所有的分支需要判断条件,满足条件的经过分支结点

汇聚:所有满足条件的分支都要进行汇聚

包含网关测试:

需要对userType进行赋值,userType值为1表示员工,等于2为领导,其他和排他网关流程实例启动过程类似。

小结

上面的是activiti的三大网关,都有优缺点,还是选择合适的网关用比较好。