什么是包含网关?

包含网关可以看做是排他网关和并行网关的结合体,和排他网关一样,你可以在外出顺序流上定义条件,包含网关会解析他们,但是主要的区别是包含网关可以选择多于一条顺序流,这和并行网关是一样的

其实在我看来就是

排他网关:解析条件,要不报错,要不走一个

并行网关:不解析条件,不报错,都走

包含网关:解析条件,条件成立就走,不成立就不走,全都不成立报错

需求:

体检流程

如果是领导 就走 常规,抽血,VIP,普通员工只走常规,抽血

使用流程变量控制

领导:userType=2

员工:userType=1

package com.itheima.test.testGateWay;

import org.activiti.engine.*;
import org.activiti.engine.repository.Deployment;
import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task;
import org.junit.Before; import java.util.HashMap;
import java.util.Map; /**
* 测试包含网关
*/
public class Test { ProcessEngine defaultProcessEngine; @Before
public void init() {
defaultProcessEngine = ProcessEngines.getDefaultProcessEngine();
} @org.junit.Test
public void deployment(){ RepositoryService repositoryService = defaultProcessEngine.getRepositoryService(); Deployment deploy = repositoryService.createDeployment()
.addClasspathResource("pic/gateway/holidayGateway3.bpmn")
.name("体检流程")
.deploy(); System.out.println(deploy); } @org.junit.Test
public void startProcessInstance(){ RuntimeService runtimeService = defaultProcessEngine.getRuntimeService(); Integer userType = 1; Map<String,Object> map = new HashMap<>(); map.put("userType",userType); ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("myProcess_1", map); System.out.println(processInstance); } /**
* 提交任务
*/
@org.junit.Test
public void completTask(){
String assignee = "sunqi";
Task task = querySingResultByAssignee(assignee);
System.out.println(task);
TaskService taskService = defaultProcessEngine.getTaskService();
taskService.complete(task.getId());
} /**
* 查询用户唯一任务
* @param assignee
* @return
*/
public Task querySingResultByAssignee(String assignee){
TaskService taskService = defaultProcessEngine.getTaskService();
return taskService.createTaskQuery().processDefinitionKey("myProcess_1").taskAssignee(assignee).singleResult();
} }

主要查看act_hi_actinst表的流程变化,既可以发现

userType=1 领取->常规->抽血->早餐->结束

userType=2 领取->常规->抽血->早餐->VIP->结束

作者:彼岸舞

时间:2020\09\08

内容关于:Activiti工作流

本文来源于网络,只做技术分享,一概不负任何责任

最新文章

  1. SQL Server自动化运维系列——关于邮件通知那点事(.Net开发人员的福利)
  2. (转)为什么所有浏览器的userAgent都带Mozilla
  3. Android开发--ListView的应用
  4. 缓存算法之belady现象
  5. 【Delphi】最小化事件捕捉
  6. IOS成长之路-Nsstring中搜索方法rangeOfString
  7. zabbix如何选择适合的监控类型(107)
  8. Python基础1:一些小知识汇总
  9. HTML随笔1
  10. java 11 值得关注的新特性
  11. python数据结构与算法学习自修第二天【时间复杂度与大O表示法】
  12. js正則表達式
  13. SVN命令行更新代码
  14. Bootstrap定制开发
  15. 监听textarea文本框文本输入情况
  16. 【转】怎么用PHP发送HTTP请求(POST请求、GET请求)?
  17. 一些平台无关的整型类型,int8_t,uint8_t....
  18. 对BeforeSuite和BeforeTest的理解
  19. 2016级算法第四次上机-G.ModricWang的序列问题 II
  20. Java语言实现简单的登陆注册

热门文章

  1. 【工具】之002-Mac下常用工具
  2. 【Python笔记】2020年7月30日练习【python用input函数输入一个列表】
  3. JavaScript笔记(二)
  4. 关于在Visual Studio 2019预览版中的用户体验和界面的变化
  5. 洛谷P1036.选数(DFS)
  6. 二、JAVA 的了解与安装
  7. Exception processing template &quot;success&quot;: Exception parsing document: template=&quot;success&quot;,
  8. SQLserver 查询某个表的字段及字段属性
  9. C++ Templates (1.6 但是为什么不...? But, Should&#39;t We ...?)
  10. 介绍 golang json数据的处理