springboot与flowable(7):流程变量

 一、启动时添加流程变量

        拿第一个流程图举例,创建一个新的流程定义。

@Testvoid contextLoads() {DeploymentBuilder deployment = repositoryService.createDeployment();deployment.addClasspathResource("process01/FirstFlow.bpmn20.xml");deployment.name("流程变量演示");Deployment deploy = deployment.deploy();System.out.println("deploy.getId() = " + deploy.getId());}

        查看流程定义。

        启动时为流程添加全局变量。

    /*** 发起流程*/@Testpublic void startProcess() {String id = "FirstFlow:2:1aaa5203-2aed-11ef-b004-644ed7087863";// 在启动流程实例时为流程添加全局变量Map<String, Object> variables = new HashMap<>();variables.put("var1", "test1");variables.put("var2", "test2");variables.put("var3", "test3");// 根据流程定义ID启动流程ProcessInstance processInstance = runtimeService.startProcessInstanceById(id, variables);}

        在act_ru_variable表中可以看到添加的变量信息。

        根据执行实例ID获取流程变量

    /*** 获取定义的流程变量*/@Testvoid getVariables() {// 通过执行实例ID获取,ID可以在act_ru_variable表中查看到String executionId = "f1d7ec2c-2aed-11ef-9790-644ed7087863";Map<String, Object> variables = runtimeService.getVariables(executionId);System.out.println(variables);// 也可以通过taskService获取// taskService.getVariables(taskId);}

二、启动后添加流程变量

    /*** 在流程启动后添加流程变量*/@Testvoid setVariables() {// 通过执行实例ID获取,ID可以在act_ru_variable表中查看到String executionId = "f1d7ec2c-2aed-11ef-9790-644ed7087863";runtimeService.setVariable(executionId, "var4", "test4");// 添加局部变量runtimeService.setVariableLocal(executionId, "varLocal5", "test5");// 也可以通过taskService添加// taskService.setVariable();}

        查看添加结果

        当流程审批结束所有的变量将全部移除。

三、局部变量

  • taskService添加的局部变量,只作用于当前节点,当前节点审批后,数据会消失。
  • runtimeService添加的局部变量,作用于当前执行实例I,当出现不同的执行分支时,数据将消失。

四、历史变量

        在act_hi_varinst表中查看到所有使用过的流程变量。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/30465.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

android | MemoryLeakMonitor.jar is not exist! 目前还是存在这个问题,好像解决不到

2024了&#xff0c;用的华为的老机子 navo3 真机测试&#xff0c;目前还是这个渲染问题&#xff1a;滑动验证页面 MemoryLeakMonitor.jar is not exist! Software rendering doesnt support hardware bitmaps gpu的渲染问题&#xff1a; 这条信息“Software rendering doesnt…

动态规划-简单多状态dp问题 -- 删除并获得点数

动态规划-简单多状态dp问题 – 删除并获得点数 文章目录 动态规划-简单多状态dp问题 -- 删除并获得点数题目重现读懂题目算法流程示例代码 题目重现 题目链接&#xff1a;删除并获得点数 - 力扣 给你一个整数数组 nums &#xff0c;你可以对它进行一些操作。 每次操作中&#…

用画图,将2张图片,合并成 一张图片 + 压缩体积

合并 第一步&#xff1a;选中要做比较的两张图片其中一张&#xff0c;单击鼠标右键&#xff0c;选择“打开方式--画图”。 第二步&#xff1a;如果图片过大&#xff0c;占据了整个屏幕不好观察&#xff0c;用右下角的标尺&#xff0c;缩小视图 第三步&#xff1a;鼠标左键按住…

HTTP学习记录(基于菜鸟教程)

文章目录 1.简介1.1常用的HTTP方法1.2Http版本1.3注意事项 2.Https3.Http消息结构3.1客户端请求消息3.2响应消息 4.常见的响应头5.HTTP状态码6.Http content-type在这里插入图片描述 7.MIME类型8.HTTP2 1.简介 Http&#xff0c;被称为超文本传输协议&#xff0c;HyperText Tran…

【Java核心技术10】Java数组详解

引言 在Java编程中&#xff0c;数组是一种非常重要的数据结构&#xff0c;它允许我们存储同一类型的多个元素&#xff0c;并通过索引快速访问这些元素。本文将详细讲解Java数组的基本概念、创建、初始化、访问和修改&#xff0c;以及多维数组和数组的常见操作。 无论你是Java的…

训练营第四十二天| 583. 两个字符串的删除操作72. 编辑距离647. 回文子串516.最长回文子序列

583. 两个字符串的删除操作 力扣题目链接(opens new window) 给定两个单词 word1 和 word2&#xff0c;找到使得 word1 和 word2 相同所需的最小步数&#xff0c;每步可以删除任意一个字符串中的一个字符。 示例&#xff1a; 输入: "sea", "eat"输出: …

如何优雅的一键同步OpenHarmony代码到gitlab?请关注【itopen:gitlab_sync】

itopen组织&#xff1a;1、提供OpenHarmony优雅实用的小工具2、手把手适配riscv qemu linux的三方库移植3、未来计划riscv qemu ohos的三方库移植 小程序开发4、一切拥抱开源&#xff0c;拥抱国产化 一、概述 项目中有需求要将 OpenHarmony 整套代码同步到项目的 gitlab…

nginx地址重写rewrite

nginx地址重写rewrite 1.nginx重写rewrite 1.rewrite相关语句 ifrewritesetreturn 2.if语句 应用环境 server,location语法 if () #可以支持&#xff1a; ~ #正则匹配(区分大小写) ~* #正则匹配(不区分大小写) !~ #正则不匹配(区分大小写) !~* #正则不匹配…

使用fetch加载阿里云的在线json 出现403错误

在做地图项目的时候&#xff0c;引用了阿里云的在线JSON地图数据。 问题描述&#xff1a; 但是本地开发使用fetch请求json地址的时候接口却出现了403错误&#xff0c;把地址直接复制到浏览器上却能正常打开。 https://geo.datav.aliyun.com/areas_v3/bound/330000_full.json …

06-操作元素

在前面的文章中重点介绍了一些元素的定位方法&#xff0c;定位到元素后&#xff0c;就需要操作元素了。本篇通过简单案例来介绍app应用中的一些常用操作。 一、案例介绍 下面列表中有四个字典&#xff0c;每个字典中的num1代表第一个操作数&#xff0c;num2代表第二个操作数&a…

力扣 面试题17.04.消失的数字

数组nums包含从0到n的所有整数&#xff0c;但其中缺了一个。请编写代码找出那个缺失的整数。你有办法在O(n)时间内完成吗&#xff1f; 示例 1&#xff1a; 输入&#xff1a;[3,0,1] 输出&#xff1a;2 示例 2&#xff1a; 输入&#xff1a;[9,6,4,2,3,5,7,0,1] 输出&#x…

GIT----使用技巧之保存现场回退新建分支继续开发

GIT----使用技巧之保存现场回退新建分支继续开发 前言&#xff1a; 故事是这样的&#xff0c;有一个比较复杂的项目使用的是STM32F103VCT6&#xff08;资源flash-256k,RAM-48k&#xff09;,开发到一半发现RAM不够用了&#xff0c;换容量更大的芯片STM32F103VGT6&#xff08;资源…

再谈量化策略失效的问题

数量技术宅团队在CSDN学院推出了量化投资系列课程 欢迎有兴趣系统学习量化投资的同学&#xff0c;点击下方链接报名&#xff1a; 量化投资速成营&#xff08;入门课程&#xff09; Python股票量化投资 Python期货量化投资 Python数字货币量化投资 C语言CTP期货交易系统开…

【qt5生成软件-can卡-上位机-无法加载ControlCAN.dll错误代码(0xc0150002)等相关问题-WIN11系统-尝试解决】

【qt5生成软件-无法加载ControlCAN.dll&错误代码0xc0150002&#xff1a;-等相关问题-WIN11系统-尝试解决-总结整理】 1.前言2.环境说明3.问题说明4.尝试方法总结&#xff08;1&#xff09;更新支持包c库&#xff08;2&#xff09;更新USB相关驱动&#xff08;3&#xff09;…

Sqlite3数据库基本使用

一、基本概念 数据&#xff1a;能够输入计算机并能被计算机程序识别和处理的信息集合 数据库&#xff1a;长期存储在计算机内、有组织的、可共享的大量数据的集合 DBMS&#xff1a;位于用户与操作系统之间的一层数据管理软件&#xff0c;用于操纵和管理数据库 二、安装 在线…

一文读懂Java线程池之自定义线程池、设置合适的线程数量、线程池阻塞队列、线程拒绝策略

在上篇我们学习了线程池各个参数的含义,线程池任务处理流程,使用线程池的好处等内容,本篇我们学习如何创建一个适合我们业务的线程池。为此,我们有必要先学习一下如何大概确定我们线程池核心线程数、怎么设置阻塞队列的类型与大小、当线程池没有能力处理任务了该如何使用拒…

JS中操作符是什么

在JavaScript中&#xff0c;操作符是用于执行特定任务&#xff08;如加法、减法、比较等&#xff09;的特殊符号。这些操作符根据其功能可以分为几类&#xff1a; 算术操作符&#xff1a; &#xff1a;加法-&#xff1a;减法或取反*&#xff1a;乘法/&#xff1a;除法%&#xf…

经验分享,16进制与字符串的互相转换网站

分享一个16进制与字符串的互相转换的网站&#xff0c;比较实用。 网址&#xff1a; https://www.bejson.com/convert/ox2str/ 截图&#xff1a;

C++中priority_queue的模拟实现(注释详解)

首先我们要了解什么是 priority_queue &#xff0c;priority_queue 优先队列是一种数据结构&#xff0c;它存储了元素以及它们的优先级。在优先队列中&#xff0c;元素按照其优先级的顺序进行移除&#xff0c;优先级较高的元素首先被移除。优先队列通常使用堆数据结构来实现&am…

Linux内核编程(六)平台总线plantform驱动模型

本文目录 前述&#xff1a;为什么引入平台总线模型一、知识点1. 什么是平台总线模型2. 平台总线模型使用3. 平台总线是如何工作的4. 平台总线模型的优点 二、平台总线设备层1. 常用API&#xff08;1&#xff09; 注册一个平台设备&#xff08;2&#xff09; 注销一个平台设备&a…