SpringBoot整合Activiti7——流程变量(五)

news/2024/5/18 22:19:18 标签: spring boot, java, 流程图

文章目录

  • 一、全局变量
  • 二、局部变量
  • 三、临时变量


一、全局变量

启动实例时设置的变量(或者taskService.setVariable设置),设置完后流程全局可见。

java">// 设置流程变量
Map<String, Object> variables = new HashMap<>();
// 办理人
variables.put("applyUserId", APPLY_USER_ID);
// 候选人
variables.put("candidateUsers", String.join(",", CollectionUtil.newArrayList("depLeader1", "depLeader2", "depLeader3")));
// 候选组
variables.put("candidateGroups", CollectionUtil.newArrayList("hrGroup1", "hrGroup2", "hrGroup3"));

String processDefinitionKey = "overtime";
String businessKey = processDefinitionKey + ":" + BUSINESS_ID; // 假设模拟业务id为1001

// 启动流程
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(processDefinitionKey, businessKey, variables);
System.out.println("processInstance = " + processInstance);
java">// 查询任务
Task task = taskService.createTaskQuery().processInstanceId(PROCESS_INSTANCE_ID).singleResult();
// 设置全局变量
taskService.setVariable(task.getId(), "applyUserId", "zhangsan");

二、局部变量

任务办理时设置local流程变量,当前运行的流程实例只能在该任务结束前使用,任务结束该变量无法在当前流程实例使用,可以通过查询历史任务查询。设置完后只有该task可见。(或者taskService.setVariableLocal设置)

java">// 查询任务
Task task = taskService.createTaskQuery().processInstanceId(PROCESS_INSTANCE_ID).singleResult();
// 完成任务
Map<String, Object> hashMap = new HashMap<>();
hashMap.put("departPass", true);
taskService.complete(task.getId(), hashMap, true);
java">// 查询任务
Task task = taskService.createTaskQuery().processInstanceId(PROCESS_INSTANCE_ID).singleResult();
// 设置局部变量
taskService.setVariableLocal(task.getId(), "departPas", true);

三、临时变量

临时变量不做持久化存储,也就是不存储数据库。(taskService.setTransientVariable)

java">/**
   * Similar to {@link #complete(String, Map)}, but allows to set transient variables too. 
*/
void complete(String taskId, Map<String, Object> variables, Map<String, Object> transientVariables);

http://www.niftyadmin.cn/n/5070634.html

相关文章

golang gin——中间件编程以及jwt认证和跨域配置中间件案例

中间件编程jwt认证 在不改变原有方法的基础上&#xff0c;添加自己的业务逻辑。相当于grpc中的拦截器一样&#xff0c;在不改变grpc请求的同时&#xff0c;插入自己的业务。 简单例子 func Sum(a, b int) int {return a b }func LoggerMiddleware(in func(a, b int) int) f…

论文总结:3D Talking Face With Personalized Pose Dynamics

论文解决的问题:大多数现有的3D人脸生成方法只能生成静态头部姿势的3D面部,只有少数几篇文章关注头部姿势的生成,但这些文章也忽略了个体属性。 解决方法:框架由两个独立模块组成:PoseGAN和PGFace。给定输入音频,PoseGAN首先为3D头部生成一个头部姿势序列,然后PGFace利用…

MISRA C 2012 阅读笔记

背景 C语言诞生至今已有50年&#xff0c;因其语言简洁&#xff0c;语法丰富&#xff0c;可移植性高&#xff0c;和执行效率高等优点&#xff0c;至今仍保持着强大的生命力&#xff0c;在各个行业发挥着作用。 然而C语言的一些优点有时候也是一把双刃剑&#xff0c;在使用者使用…

redis命令学习

redis命令学习 redis的类型分为&#xff1a; string类型hash类型list类型set类型sortedset类型 string类型命令 set key value 设置值&#xff0c;key是键 value是值get key 根据键获取值setex key second value 设置值有效时间 second 是时间setnx key value 只有key不存在…

基于知识蒸馏的两阶段去雨去雪去雾模型学习记录(三)之知识测试阶段与评估模块

去雨去雾去雪算法分为两个阶段&#xff0c;分别是知识收集阶段与知识测试阶段&#xff0c;前面我们已经学习了知识收集阶段&#xff0c;了解到知识阶段的特征迁移模块&#xff08;CKT)与软损失&#xff08;SCRLoss&#xff09;,那么在知识收集阶段的主要重点便是HCRLoss(硬损失…

网站安全维护:守护您的数字领土

在这个数字时代&#xff0c;网站已成为企业和个人展示自己的重要平台。然而&#xff0c;随着互联网的高速发展&#xff0c;网站安全问题也日益严峻。黑客和入侵软件等威胁不断涌现&#xff0c;因此&#xff0c;保护网站免受这些威胁的影响变得至关重要。本文将探讨网站安全维护…

openGauss学习笔记-91 openGauss 数据库管理-内存优化表MOT管理-内存表特性-使用MOT-MOT使用MOT外部支持工具

文章目录 openGauss学习笔记-91 openGauss 数据库管理-内存优化表MOT管理-内存表特性-使用MOT-MOT使用MOT外部支持工具91.1 gs_ctl&#xff08;全量和增量&#xff09;91.2 gs_basebackup91.3 gs_dump91.4 gs_restore openGauss学习笔记-91 openGauss 数据库管理-内存优化表MOT…

代码随想录二刷day48

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、力扣198. 打家劫舍二、力扣213. 打家劫舍 II三、力扣337. 打家劫舍 III 前言 一、力扣198. 打家劫舍 class Solution {public int rob(int[] nums) {if(nu…