当前位置:网站首页>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
边栏推荐
- 技术干货 | 基于 MindSpore 实现图像分割之豪斯多夫距离
- 用KUSTO查询语句(KQL)在Azure Data Explorer Database上查询LOG实战
- 教你本地编译运行一个IDEA插件,在IDEA里聊天、下棋、斗地主!
- 【MindSpore Easy-Diantong Robot-01】You may have seen many knowledge quiz robots, but this one is a bit different
- Why are RELTABLESPACE values 0 for many tables displayed in sys_class?
- Voice-based social software development - making the most of its value
- Is digital transformation a business buy-in?
- 第四章:activiti RuntimeService设置获和取流程变量,及与taskService的区别,开始和完成任务时设置流程变量[通俗易懂]
- Data Middle Office Construction (10): Data Security Management
- 登录功能和退出功能(瑞吉外卖)
猜你喜欢
[强网杯2022]WP-UM
Common operations of oracle under linux and daily accumulation of knowledge points (functions, timed tasks)
高质量 DeFi 应用构建指南,助力开发者玩转 DeFi Summer
Our Web3 Entrepreneurship Project, Yellow
three.js调试工具dat.gui使用
如何选币与确定对应策略研究
19. Server-side session technology Session
MySQL advanced (twenty-seven) database index principle
多线程(进阶) - 2.5w字总结
Huawei's lightweight neural network architecture GhostNet has been upgraded again, and G-GhostNet (IJCV22) has shown its talents on the GPU
随机推荐
js hijacks the array push method
Development common manual link sharing
Open Source Summer | How OpenHarmony Query Device Type (eTS)
NowCoderTOP35-40——持续更新ing
SQL Outer Join Intersection, Union, Difference Query
Microcontroller: temperature control DS18B20
Go编译原理系列6(类型检查)
气象数据数据处理实例——matlab字符串切割匹配与R语言日期匹配(数据拼接)
【综合类型第 35 篇】程序员的七夕浪漫时刻
Egg framework usage (2)
电气工程的标准是什么
【MindSpore易点通机器人-01】你也许见过很多知识问答机器人,但这个有点不一样
开发常用手册链接分享
一个栈的输入序列为1 2 3 4 5 的出站顺序的理解
【翻译】混沌网+SkyWalking:为混沌工程提供更好的可观察性
一文道清什么是SPL
three objects are arranged in a spherical shape around the circumference
第八章:activiti多用户任务分配
Which big guy has the 11G GI and ojvm patches in April or January 2020, please help?
hcip BGP enhancement experiment