当前位置:网站首页>Chapter 5: Activiti process shunting judgment, judging to go to different task nodes
Chapter 5: Activiti process shunting judgment, judging to go to different task nodes
2022-08-05 10:21:00 【Full stack programmer webmaster】
大家好,又见面了,我是你们的朋友全栈君.
Here we undertake the previous blog post of the column,
Ask for leave in the process we will have a judgment,Because the general leave monitor has the right to directly approve and approve,Without the approval of the class teacher,There needs to be a judgement here.;
Here we assist a leave process,如下:
流程图如下:
So how do you judge which antenna is going?,That is, whether to go or notleave003这个节点呢,Here we need to write built-in expressions,类似el表达式:
另外一条线:
Next we create a new class,如下,Need to modify the flow chart file name in the deployment process definition method:
对了,There is also a need to modify the startup processkey,The flow chart of the previous test casekey是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 {
//Get the default process engine instance,会自动读取activiti.cfg.xml ,So we have to strictly define the name of the configuration file
private ProcessEngine processEngine =ProcessEngines.getDefaultProcessEngine();
/**
* 部署流程定义
*/
@Test
public void deploy() {
//获取部署相关service,这些都是activiti封装好的api接口,还有很多,The following will also be used a lot
Deployment deployment=processEngine.getRepositoryService()
//创建部署
.createDeployment()
//Load flowchart resource file
.addClasspathResource("diagrams/StudentLeave2.bpmn")
//Load process image
.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()方法,部署流程,After success, look at the process deployment table:act_re_deployment:
是有leave02的;
Then start the process again,
然后完成任务,to test our judgment.
到leave02节点;
Then we use what we learned in the previous chapter,在节点leave02结束的时候设置msg变量的值,So as to determine which node to go.
代码:
/**
* 完成任务时设置流程变量
*/
@Test
public void completeTaskVariablesTest(){
Map<String, Object> variables=new HashMap<String,Object>();
variables.put("msg", "common");
processEngine.getTaskService().complete("72502",variables);
}
运行后,Found that the data in the task table is gone,说明没有走leave03节点,说明是没有问题的.
Go to the settings in the same waymsg为“important”chance to goleave03节点.
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/106142.html原文链接:https://javaforall.cn
边栏推荐
- 使用工具类把对象中的null值转换为空字符串(集合也可以使用)
- PCB layout must know: teach you to correctly lay out the circuit board of the op amp
- 2022华数杯数学建模思路分析交流
- 【Office】Microsoft Office下载地址合集(微软官方原版离线安装下载)
- 第八章:activiti多用户任务分配
- 第五章:多线程通信—wait和notify
- Confessing in the era of digital transformation: Mai Cong Software allows enterprises to use data in the easiest way
- Is digital transformation a business buy-in?
- What is SPL?
- FPGA: Basic Getting Started Button Controlling LED Lights
猜你喜欢
多线程(进阶) - 2.5w字总结
Common operations of oracle under linux and daily accumulation of knowledge points (functions, timed tasks)
Which big guy has the 11G GI and ojvm patches in April or January 2020, please help?
这份阿里强推的并发编程知识点笔记,将是你拿大厂offer的突破口
Technical dry goods | Hausdorff distance for image segmentation based on MindSpore
High-quality DeFi application building guide to help developers enjoy DeFi Summer
电气工程的标准是什么
Complete image segmentation efficiently based on MindSpore and realize Dice!
NowCoderTOP35-40——持续更新ing
This notebook of concurrent programming knowledge points strongly recommended by Ali will be a breakthrough for you to get an offer from a big factory
随机推荐
FPGA: Use of the development environment Vivado
How does the official account operate and maintain?Public account operation and maintenance professional team
Offensive World-PWN-new_easypwn
PCB layout must know: teach you to correctly lay out the circuit board of the op amp
语音社交软件开发——充分发挥其价值
攻防世界-PWN-new_easypwn
技术干货 | 基于 MindSpore 实现图像分割之豪斯多夫距离
FPGA: Basic Getting Started Button Controlling LED Lights
Four years of weight loss record
你最隐秘的性格在哪?
首次去中心化抢劫?近2亿美元损失:跨链桥Nomad 被攻击事件分析
JS introduction to reverse the recycling business network of learning, simple encryption mobile phone number
FPGA:开发环境Vivado的使用
Huawei's lightweight neural network architecture GhostNet has been upgraded again, and G-GhostNet (IJCV22) has shown its talents on the GPU
教你本地编译运行一个IDEA插件,在IDEA里聊天、下棋、斗地主!
产品太多了,如何实现一次登录多产品互通?
2022 Hangzhou Electric Power Multi-School Session 6 1008.Shinobu Loves Segment Tree Regular Questions
MySQL transactions
19. Server-side session technology Session
公众号如何运维?公众号运维专业团队