当前位置:网站首页>第五章:activiti流程分流判断,判断走不同的任务节点
第五章:activiti流程分流判断,判断走不同的任务节点
2022-08-05 10:05:00 【全栈程序员站长】
大家好,又见面了,我是你们的朋友全栈君。
这里我们承接专栏的上一篇博文,
请假流程中我们会有个判断,因为一般的请假班长有权直接审批通过,不用班主任批准,那这里就需要加个判断了;
这里我们辅助一个请假流程,如下:
流程图如下:
那么怎么判断走那天线的,也就是要不要走leave003这个节点呢,这里我们需要写内置表达式,类似el表达式:
另外一条线:
下面我们新建一个类,如下,需要修改部署流程定义方法里面的流程图文件名:
对了,还有要修改启动流程中的key,之前的测试案例流程图的key是StudentLeaveProcess00,现在改成StudentLeaveProcess02.如下:
代码如下:
package com.xiaoyexinxixn.ActivityLesson.flow;
import static org.junit.Assert.*;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngines;
import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService;
import org.activiti.engine.repository.Deployment;
import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task;
import org.junit.Test;
import com.xiaoyexinxixn.ActivityLesson.model.Student;
public class StudentLeaveProcess2 {
//获取默认流程引擎实例,会自动读取activiti.cfg.xml ,所以我们要严格定义配置文件的名称
private ProcessEngine processEngine =ProcessEngines.getDefaultProcessEngine();
/**
* 部署流程定义
*/
@Test
public void deploy() {
//获取部署相关service,这些都是activiti封装好的api接口,还有很多,下面也会用到很多
Deployment deployment=processEngine.getRepositoryService()
//创建部署
.createDeployment()
//加载流程图资源文件
.addClasspathResource("diagrams/StudentLeave2.bpmn")
//加载流程图片
.addClasspathResource("diagrams/StudentLeave2.png")
//流程名称
.name("leave02")
//部署流程
.deploy();
System.out.println("流程部署的ID: "+deployment.getId());
System.out.println("流程部署的Name: "+deployment.getName());
}
/*
* 启动流程实例
*/
@Test
public void start(){
//运行启动流程的servicee
ProcessInstance pi=processEngine.getRuntimeService()
//定义流程表的KEY字段值,key值是我们前面定义好的key,可在act_re_procdef表中的key_字段中找到,
.startProcessInstanceByKey("studentLeaveProcess02");
System.out.println(pi.getId());
System.out.println(pi.getProcessDefinitionId());
} }运行deploy()方法,部署流程,成功后看看流程部署表:act_re_deployment:
是有leave02的;
然后再启动流程,
然后完成任务,去测试我们的判断。
到leave02节点;
然后我们利用上一章学习的知识,在节点leave02结束的时候设置msg变量的值,从而判断走哪个节点。
代码:
/**
* 完成任务时设置流程变量
*/
@Test
public void completeTaskVariablesTest(){
Map<String, Object> variables=new HashMap<String,Object>();
variables.put("msg", "common");
processEngine.getTaskService().complete("72502",variables);
}运行后,发现任务表的数据没有了,说明没有走leave03节点,说明是没有问题的。
同理走设置msg为“important”机会走leave03节点。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/106142.html原文链接:https://javaforall.cn
边栏推荐
猜你喜欢

The founder of the DFINITY Foundation talks about the ups and downs of the bear market, and where should DeFi projects go?

The JVM collection that Alibaba's top architects have summarized for many years, where can't I check it!

Tanabata romantic date without overtime, RPA robot helps you get the job done

C语言的高级用法

DFINITY 基金会创始人谈熊市沉浮,DeFi 项目该何去何从

Oracle temporary table space role

Which big guy has the 11G GI and ojvm patches in April or January 2020, please help?

19. Server-side session technology Session

SD NAND Flash简介!

three.js调试工具dat.gui使用
随机推荐
Where is your most secretive personality?
Four years of weight loss record
Pycharm 常用外部工具
【AGC】增长服务1-远程配置示例
hcip BGP enhancement experiment
正则表达式replaceFirst()方法具有什么功能呢?
QSS 选择器
Wei Dongshan Digital Photo Frame Project Learning (6) Transplantation of tslib
【MindSpore Easy-Diantong Robot-01】You may have seen many knowledge quiz robots, but this one is a bit different
2022 Huashu Cup Mathematical Modeling Ideas Analysis and Exchange
还在找网盘资源吗?快点收藏如下几个值得收藏的网盘资源搜索神器吧!
[强网杯2022]WP-UM
IO流篇 -- 基于io流实现文件夹拷贝(拷贝子文件夹及子文件夹内文件)满满的干货
告白数字化转型时代:麦聪软件以最简单的方式让企业把数据用起来
Confessing in the era of digital transformation: Mai Cong Software allows enterprises to use data in the easiest way
Microservice Technology Stack
21 Days of Deep Learning - Convolutional Neural Networks (CNN): Clothing Image Classification (Day 3)
浅析WSGI协议
哪位大佬有20年4月或者1月的11G GI和ojvm补丁呀,帮忙发下?
我们的Web3创业项目,黄了