Activiti7 网关(包含网关)
2024-09-03 12:01:36
什么是包含网关?
包含网关可以看做是排他网关和并行网关的结合体,和排他网关一样,你可以在外出顺序流上定义条件,包含网关会解析他们,但是主要的区别是包含网关可以选择多于一条顺序流,这和并行网关是一样的
其实在我看来就是
排他网关:解析条件,要不报错,要不走一个
并行网关:不解析条件,不报错,都走
包含网关:解析条件,条件成立就走,不成立就不走,全都不成立报错
需求:
体检流程
如果是领导 就走 常规,抽血,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工作流
本文来源于网络,只做技术分享,一概不负任何责任
最新文章
- SQL Server自动化运维系列——关于邮件通知那点事(.Net开发人员的福利)
- (转)为什么所有浏览器的userAgent都带Mozilla
- Android开发--ListView的应用
- 缓存算法之belady现象
- 【Delphi】最小化事件捕捉
- IOS成长之路-Nsstring中搜索方法rangeOfString
- zabbix如何选择适合的监控类型(107)
- Python基础1:一些小知识汇总
- HTML随笔1
- java 11 值得关注的新特性
- python数据结构与算法学习自修第二天【时间复杂度与大O表示法】
- js正則表達式
- SVN命令行更新代码
- Bootstrap定制开发
- 监听textarea文本框文本输入情况
- 【转】怎么用PHP发送HTTP请求(POST请求、GET请求)?
- 一些平台无关的整型类型,int8_t,uint8_t....
- 对BeforeSuite和BeforeTest的理解
- 2016级算法第四次上机-G.ModricWang的序列问题 II
- Java语言实现简单的登陆注册
热门文章
- 【工具】之002-Mac下常用工具
- 【Python笔记】2020年7月30日练习【python用input函数输入一个列表】
- JavaScript笔记(二)
- 关于在Visual Studio 2019预览版中的用户体验和界面的变化
- 洛谷P1036.选数(DFS)
- 二、JAVA 的了解与安装
- Exception processing template ";success";: Exception parsing document: template=";success";,
- SQLserver 查询某个表的字段及字段属性
- C++ Templates (1.6 但是为什么不...? But, Should&#39;t We ...?)
- 介绍 golang json数据的处理