什么是包含网关?

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

其实在我看来就是

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

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

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

需求:

体检流程

如果是领导 就走 常规,抽血,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 网关(包含网关)的更多相关文章

  1. Activiti网关--包含网关

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

  2. activiti入门3排他网关,并行网管,包含网关,事件网关(转)

    网关用来控制流程的流向 网关可以消费也可以生成token. 网关显示成菱形图形,内部有有一个小图标. 图标表示网关的类型. 基本分支 首先 利用 流程变量  写个带有分支的一个基本流程 流程图: 部署 ...

  3. Activiti7 网关(并行网关)

    什么是并行网关? 并行网关允许将流程分成多条分支,也可以将多条分支合并到一起,并行网关是基于进入和外出顺序流的 fork分支: 并行后的所有外出顺序流,为每个顺序流都创建一个并发分支 jion汇聚: ...

  4. Activiti7 网关(排他网关)

    什么是排他网关? 排他网关(也叫异或(XOR)网关,或叫基于数据的排他网关),用于在流程中实现决策,当流程执行到这个网关,所有分支都会判断条件是否为true,如果为true则执行该分支 注意:排他网关 ...

  5. activiti入门3排他网关,并行网管,包括网关,事件网关

    网关用来控制流程的流向 网关能够消费也能够生成token. 网关显示成菱形图形,内部有有一个小图标. 图标表示网关的类型. 基本分支 首先 利用 流程变量  写个带有分支的一个基本流程 流程图: wa ...

  6. SpringCloud(六):服务网关zuul-API网关(服务降级和过滤)

    什么是API网关: 在微服务架构中,通常会有多个服务提供者.设想一个电商系统,可能会有商品.订单.支付.用户等多个类型的服务,而每个类型的服务数量也会随着整个系统体量的增大也会随之增长和变更.作为UI ...

  7. 电信网关-天翼网关-GPON-HS8145C设置桥接路由拨号认证

    需求描述: 自从用了电信的200M光纤,解析卡成狗.打开域名3秒左右,不常见的域名8s左右.怀疑电信的网关有问题,故想让路由器拨号认证,进而设置dns解析域名 修改为路由器拨号认证,域名解析缓慢依然没 ...

  8. 《springcloud 二》微服务动态网关,网关集群

    动态网关    实际上是网关和分布式配置中心的整合,通过post手动刷新,生效 动态网关 传统方式将路由规则配置在配置文件中,如果路由规则发生了改变,需要重启服务器.结合整合SpringCloud C ...

  9. Activiti网关--排他网关

    排他网关 1.什么是排他网关 排他网关(也叫异或(XOR)网关,或叫基于数据的排他网关),用来在流程中实现决策. 当流程执行到这个网关,所有分支都会判断条件是否为true,如果为 true 则执行该分 ...

随机推荐

  1. 【av68676164(p31-p32)】Windows和Linux同步机制

    4.6.1 Windows同步机制 临界区(CRITICAL_SECTION) 在进程内使用,保证仅一个线程可以申请到该对象 临界区内是临界资源的访问 相关的API函数 初始化临界区 WINBASEA ...

  2. PHP基础之排序

    前言 之前简单介绍了流程控制,函数,数组等.有兴趣的可以看看. PHP入门之类型与运算符 PHP入门之流程控制 PHP入门之函数 PHP入门之数组 接下来介绍一下排序,排序是将一组数据,依指定的顺序进 ...

  3. 菊长说丨一文读懂MySQL4种事务隔离级别

    经常提到数据库的事务,那你知道数据库还有事务隔离的说法吗,事务隔离还有隔离级别,那什么是事务隔离,隔离级别又是什么呢?今天我们就找菊长去,请他帮大家梳理一下这些各具特色的事务隔离级别,咱走着~~~ 点 ...

  4. NMS系列

    NMS soft NMS softer NMS https://www.cnblogs.com/VincentLee/p/12579756.html

  5. Fixing the train-test resolution discrepancy

  6. [BZOJ4237]稻草人 题解

    我们考虑分治一下 按\(x\)坐标排序 然后对于每一段的两部分都按\(y\)排序 左右两边都维护一个单调栈 然后考虑右边对左边的贡献就行了 #include <bits/stdc++.h> ...

  7. JavaFX桌面应用-MVC模式开发,“真香”

    使用mvc模块开发JavaFX桌面应用在JavaFX系列文章第一篇 JavaFX桌面应用开发-HelloWorld 已经提到过,这里单独整理使用mvc模式开发开发的流程. ~ JavaFX桌面应用开发 ...

  8. 使用Tensorflow搭建自编码器(Autoencoder)

    自编码器是一种数据压缩算法,其中数据的压缩和解压缩函数是数据相关的.从样本中训练而来的.大部分自编码器中,压缩和解压缩的函数是通过神经网络实现的. 1. 使用卷积神经网络搭建自编码器 导入MNIST数 ...

  9. xshell乱码解决办法

    https://jingyan.baidu.com/article/7908e85c758a58af481ad2ae.html

  10. Docker: docker pull, wget, curl, git clone 等如何更快?

    1) Docker 配置 1.1) daemon.json 配置镜像 路径: /etc/docker/daemon.json 文档: Config Daemon registry-mirrors 设定 ...