Activiti7 网关(包含网关)
什么是包含网关?
包含网关可以看做是排他网关和并行网关的结合体,和排他网关一样,你可以在外出顺序流上定义条件,包含网关会解析他们,但是主要的区别是包含网关可以选择多于一条顺序流,这和并行网关是一样的
其实在我看来就是
排他网关:解析条件,要不报错,要不走一个
并行网关:不解析条件,不报错,都走
包含网关:解析条件,条件成立就走,不成立就不走,全都不成立报错
需求:
体检流程
如果是领导 就走 常规,抽血,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工作流
本文来源于网络,只做技术分享,一概不负任何责任
Activiti7 网关(包含网关)的更多相关文章
- Activiti网关--包含网关
1.什么是包含网关 包含网关可以看做是排他网关和并行网关的结合体:和排他网关一样,你可以在外出顺序流上定义条件,包含网关会解析它们:但是主要的区别是包含网关可以选择多于一条顺序流,这和并行网关一样,包 ...
- activiti入门3排他网关,并行网管,包含网关,事件网关(转)
网关用来控制流程的流向 网关可以消费也可以生成token. 网关显示成菱形图形,内部有有一个小图标. 图标表示网关的类型. 基本分支 首先 利用 流程变量 写个带有分支的一个基本流程 流程图: 部署 ...
- Activiti7 网关(并行网关)
什么是并行网关? 并行网关允许将流程分成多条分支,也可以将多条分支合并到一起,并行网关是基于进入和外出顺序流的 fork分支: 并行后的所有外出顺序流,为每个顺序流都创建一个并发分支 jion汇聚: ...
- Activiti7 网关(排他网关)
什么是排他网关? 排他网关(也叫异或(XOR)网关,或叫基于数据的排他网关),用于在流程中实现决策,当流程执行到这个网关,所有分支都会判断条件是否为true,如果为true则执行该分支 注意:排他网关 ...
- activiti入门3排他网关,并行网管,包括网关,事件网关
网关用来控制流程的流向 网关能够消费也能够生成token. 网关显示成菱形图形,内部有有一个小图标. 图标表示网关的类型. 基本分支 首先 利用 流程变量 写个带有分支的一个基本流程 流程图: wa ...
- SpringCloud(六):服务网关zuul-API网关(服务降级和过滤)
什么是API网关: 在微服务架构中,通常会有多个服务提供者.设想一个电商系统,可能会有商品.订单.支付.用户等多个类型的服务,而每个类型的服务数量也会随着整个系统体量的增大也会随之增长和变更.作为UI ...
- 电信网关-天翼网关-GPON-HS8145C设置桥接路由拨号认证
需求描述: 自从用了电信的200M光纤,解析卡成狗.打开域名3秒左右,不常见的域名8s左右.怀疑电信的网关有问题,故想让路由器拨号认证,进而设置dns解析域名 修改为路由器拨号认证,域名解析缓慢依然没 ...
- 《springcloud 二》微服务动态网关,网关集群
动态网关 实际上是网关和分布式配置中心的整合,通过post手动刷新,生效 动态网关 传统方式将路由规则配置在配置文件中,如果路由规则发生了改变,需要重启服务器.结合整合SpringCloud C ...
- Activiti网关--排他网关
排他网关 1.什么是排他网关 排他网关(也叫异或(XOR)网关,或叫基于数据的排他网关),用来在流程中实现决策. 当流程执行到这个网关,所有分支都会判断条件是否为true,如果为 true 则执行该分 ...
随机推荐
- EF框架 与 Dapper框架 调用分页存储过程
1. SqlServer创建存储过程: --创建存储过程 create proc sp_Show ( @index int, --当前页 @size int, --每页大小 @totalcount i ...
- Docker 快速搭建 MySQL8 开发环境
使用 Docker 快速搭建一个 MySQL8 开发环境 步骤 获取镜像 docker pull mysql:8 启动容器,密码 123456,映射 3306 端口 docker run --name ...
- Nexus2 上传文件
通过管理界面上传 上传文件 hello-nexus.jar 登录 nexus2 选择第三方库 填写文件信息,完成文件上传 在索引页刷新,可以看到上传的文件 服务器上,文件的存放路径是 sonatype ...
- MySQL连接查询、子查询与联合查询
一 连接查询 1.交叉连接: 语法: from 表1 [cross] join 表2 ; 例如: 表一: 表2: 交叉: 交叉查询并没有意义. 2.内连接: 语法: from 表1 [i ...
- Java爬取先知论坛文章
Java爬取先知论坛文章 0x00 前言 上篇文章写了部分爬虫代码,这里给出一个完整的爬取先知论坛文章代码. 0x01 代码实现 pom.xml加入依赖: <dependencies> & ...
- XSS的构造技巧
XSS的构造技巧 By:Mirror王宇阳 E-mail:2821319009@qq.com 本文为长期持续维护,一旦遇到新的技术技巧将及时更新本文内容 非常的欢迎技术大佬纠正并补充,也欢迎技术同僚讨 ...
- java.io.IOException: Stream closed 的问题
public static String getBodyString(ServletRequest request) { StringBuilder sb = new StringBuilder(); ...
- 一文说通Jwt、Session、Cooike区别
JWT 全称是 JSON Web Token,是目前非常流行的跨域认证解决方案,在单点登录场景中经常使用到. 有些人觉得它非常好用,用了它之后就不用在服务端借助 redis 实现认证过程了,但是,还有 ...
- win10中搭建Linux子系统
win10自带的Linux子系统,简称WSL(Windows Subsystem for Linux).优点是打通了Linux系统和windows系统,改变了传统虚拟机/双系统造成的两个系统相互隔绝的 ...
- kernel 4.18.18 rpm 制作
1.下载kernel源码: wget https://mirrors.edge.kernel.org/pub/linux/kernel/v4.x/linux-4.18.18.tar.gz 2.解压源码 ...