activiti7任务服务-流程变量(setVariable与setVariableLocal)

本文主要是介绍activiti7任务服务-流程变量(setVariable与setVariableLocal),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

流程变量的作用

任务变量的作用主要由以下几个作用。

  • 任务承接人参数。任务启动或中途通过变量指定任务承接人。
  • 网关条件变量。任务启动时或中途为网关提供数据。
  • 任务拓展属性。为任务提供拓展的属性,可供检索。
  • 动态修改流程的属性。

任务服务提供了setVariableLocalsetVariable 两个方法为流程和任务提供设置变量的方法。运行时流程变量表为 act_ru_variable

任务服务的setVariable方法

使用方法如下 :

taskService.setVariable(taskId,key,value);

数据库结果 :
在这里插入图片描述

使用setVariable方法设置流程变量,变量关联的颗粒度为流程实例ID(PROC_INST_ID_)而不是任务ID,流程变量是属于全局的。

任务服务的setVariableLocal方法

使用方法如下 :

taskService.setVariableLocal(taskId,key,value);

数据库结果如下 :

在这里插入图片描述

使用setVariableLocal方法设置的变量颗粒度直接关联到了任务ID,变量是属于任务(一个任务就是一个流程节点)的。

对于查询的区别

查询全局变量

 taskQuery.taskVariableValueEquals("test_var","099098087");

查询全局变量(使用setVariable方法设置的流程变量),查询结果 :

{{"code": 10000,"msg": "成功","status": true,"data": {"records": [],"total": 0,"size": 10,"current": 1,"orders": [],"optimizeCountSql": true,"searchCount": true,"pages": 0}
}

由于全局变量未关联任务任务,因此查询不到任务任务。

查询任务变量

 taskQuery.taskVariableValueEquals("test_varrrrr","099098087");

查询结果如下 :

{"code": 10000,"msg": "成功","status": true,"data": {"records": [{"taskId": "ffd43354-8bde-11ec-a6d1-b42e996769a4","taskName": "审批人","processInstanceId": "ffc1bcb7-8bde-11ec-a6d1-b42e996769a4","processDefinitionId": "635cc307-8a6b-11ec-9c5b-b42e996769a4","createTime": "2022-02-12T08:37:23.272+00:00","taskDefinitionKey": "node_92754730680","assignee": "user_C"}],"total": 1,"size": 10,"current": 1,"orders": [],"optimizeCountSql": true,"searchCount": true,"pages": 1}
}

根据上文截图可以看出,查询到的任务就是任务关联的任务。

这篇关于activiti7任务服务-流程变量(setVariable与setVariableLocal)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/388933

相关文章

Linux中的计划任务(crontab)使用方式

《Linux中的计划任务(crontab)使用方式》:本文主要介绍Linux中的计划任务(crontab)使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、前言1、linux的起源与发展2、什么是计划任务(crontab)二、crontab基础1、cro

Spring定时任务只执行一次的原因分析与解决方案

《Spring定时任务只执行一次的原因分析与解决方案》在使用Spring的@Scheduled定时任务时,你是否遇到过任务只执行一次,后续不再触发的情况?这种情况可能由多种原因导致,如未启用调度、线程... 目录1. 问题背景2. Spring定时任务的基本用法3. 为什么定时任务只执行一次?3.1 未启用

Linux上设置Ollama服务配置(常用环境变量)

《Linux上设置Ollama服务配置(常用环境变量)》本文主要介绍了Linux上设置Ollama服务配置(常用环境变量),Ollama提供了多种环境变量供配置,如调试模式、模型目录等,下面就来介绍一... 目录在 linux 上设置环境变量配置 OllamPOgxSRJfa手动安装安装特定版本查看日志在

如何使用Python实现一个简单的window任务管理器

《如何使用Python实现一个简单的window任务管理器》这篇文章主要为大家详细介绍了如何使用Python实现一个简单的window任务管理器,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起... 任务管理器效果图完整代码import tkinter as tkfrom tkinter i

SpringCloud之LoadBalancer负载均衡服务调用过程

《SpringCloud之LoadBalancer负载均衡服务调用过程》:本文主要介绍SpringCloud之LoadBalancer负载均衡服务调用过程,具有很好的参考价值,希望对大家有所帮助,... 目录前言一、LoadBalancer是什么?二、使用步骤1、启动consul2、客户端加入依赖3、以服务

Spring Boot 集成 Quartz 使用Cron 表达式实现定时任务

《SpringBoot集成Quartz使用Cron表达式实现定时任务》本文介绍了如何在SpringBoot项目中集成Quartz并使用Cron表达式进行任务调度,通过添加Quartz依赖、创... 目录前言1. 添加 Quartz 依赖2. 创建 Quartz 任务3. 配置 Quartz 任务调度4. 启

Java使用多线程处理未知任务数的方案介绍

《Java使用多线程处理未知任务数的方案介绍》这篇文章主要为大家详细介绍了Java如何使用多线程实现处理未知任务数,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 知道任务个数,你可以定义好线程数规则,生成线程数去跑代码说明:1.虚拟线程池:使用 Executors.newVir

Spring Boot中定时任务Cron表达式的终极指南最佳实践记录

《SpringBoot中定时任务Cron表达式的终极指南最佳实践记录》本文详细介绍了SpringBoot中定时任务的实现方法,特别是Cron表达式的使用技巧和高级用法,从基础语法到复杂场景,从快速启... 目录一、Cron表达式基础1.1 Cron表达式结构1.2 核心语法规则二、Spring Boot中定

Spring AI ectorStore的使用流程

《SpringAIectorStore的使用流程》SpringAI中的VectorStore是一种用于存储和检索高维向量数据的数据库或存储解决方案,它在AI应用中发挥着至关重要的作用,本文给大家介... 目录一、VectorStore的基本概念二、VectorStore的核心接口三、VectorStore的

python之流程控制语句match-case详解

《python之流程控制语句match-case详解》:本文主要介绍python之流程控制语句match-case使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录match-case 语法详解与实战一、基础值匹配(类似 switch-case)二、数据结构解构匹