Activiti-设置全局变量的四种方法

2023-11-19

1.在流程启动的时候设置全局变量

//在流程启动时设置全局变量
@Test
public void startProcessInstance() {
	//得到runtimeService
	RuntimeService runtimeService = processEngine.getRuntimeService();
	//根据流程定义的key(标识)来启动一个实例,activiti找该key下版本最高的流程定义
	//一般情况下为了方便开发使用该方法启动一个流程实例
	String processDefinitionKey = "purchasingflow";
	//在流程启动时设置全局变量,第二个参数variables存储流程变量
	
	Map<String , Object> variables = new HashMap<String,Object>();
	//流程变更名称是assignee,流程变量值是“张三”
	variables.put("assignee", "张三");
	
	
	ProcessInstance processInstance = runtimeService
			.startProcessInstanceByKey(processDefinitionKey, variables);
	
	//根据流程定义的id来启动一个实例,这种方法一般不用
	//runtimeService.startProcessInstanceById(processDefinitionId);
	
	System.out.println("流程变量:" + processInstance.getProcessVariables());

2.任务办理时候设置变量


//办理任务时设置变量
@Test
public void completeTask(){
	//查询任务使用taskservice
	TaskService taskService = processEngine.getTaskService();
	//任务id
	String taskId = "3002";
	//任务办理人
	String assignee = "wangwu";
	//根据任务id和assignee查询该任务
	Task task = taskService
			.createTaskQuery()
			.taskId(taskId)
			.taskAssignee(assignee)
			.singleResult();
	if (task != null) {
		//说明assignee是该任务的办理人,有权限完成
		//taskService.complete(taskId);
		
		//完成任务是设置流程变量
		Map<String, Object> variables = new HashMap<String,Object>();
		//流程变更名称是assignee,流程变量值是“张三”
		//variables.put("assignee", "李四");
		//taskService.complete(taskId, variables);
		taskService.complete(taskId);
		System.out.println("完成任务:" + taskId);
	}
	
}

3.通过当前流程实例id设置


//调用api,通过当前流程实例id设置
@Test
public void setVariableByProcessInstanceId(){
	RuntimeService runtimeService = processEngine.getRuntimeService();
	
	//设置单个变量
	//第一个参数:executionId是流程实例的执行id,通常使用流程实例id,必须是当前正在运行的流程实例id
	//第二个参数:变量名
	//第三个参数:变量值
	runtimeService.setVariable("503", "price", 10000);
	
	//一次设置多个变量,第二个参数是map
	//runtimeService.setVariables(executionId, variables);
}

4.通过当前待办任务设置变量


//通过当前待办任务设置变量
@Test
public void setVariableByTaskId(){
	TaskService taskService = processEngine.getTaskService();
	//设置单个变量
	//第一个参数:taskI是当前待办任务的id,在act_ru_task存在
	//第二个参数:变量名
	//第三个参数:变量值
	taskService.setVariable("2903", "price", 2000);
	
	
	//一次设置多个变量,第二个参数是map
	//taskService.setVariables(taskId, variables);
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Activiti-设置全局变量的四种方法 的相关文章

  • 删除Activiti表单

    DROP TABLE IF EXISTS ACT RE DEPLOYMENT DROP TABLE IF EXISTS ACT GE PROPERTY DROP TABLE IF EXISTS ACT HI ACTINST DROP TAB
  • Activiti之一:部署activiti-admin、activiti-app、activiti-rest

    文章目录 各组件版本下载部署将war包放入tomcat 访问 在网上查找activiti相关资料 xff0c 发现对于activiti rest的使用很少 xff0c 而官网对于api的支持还是比较多的 xff0c 如果考虑的是一个纯粹的工
  • activiti5之监听器

    activiti5之监听器 业务场景 在使用工作流时 通常伴随着很多具体的需求 例如 activiti人员动态的分配 当前任务节点完成的时候 指定需要指定下一个节点的处理人 比如 一个请假流程 a员工请假 需要指定下一步需要处理请假流程的领
  • activiti学习之并行网关

    写在前面 并行网关用于处理流程并发的场景 可以将流程分发到多个执行流程 也可以让多个执行流程合并为一个执行流 但不是必须一起使用 也就是说并行网关有两种行为 分叉和合并 下面我们来一起看下 场景 学生请假同时由班长和班主任审批 等到班长和班
  • activiti-Cancel activity属性(cancelActivity)作用

    流程设计工具 activiti explorer activiti版本 5 22 在使用边界计时器事件时 事件有一个参数 Cancel activity 作用上图 如下 Cancel activity选中 在事件中设置5秒计时 当开始流程后
  • Activiti 工作流引擎 详解

    Activiti 工作流引擎 详解 1 Activiti工作流概述 1 1 工作流概述 1 2 工作流系统 1 3 Activiti概述 1 4 BPM 2 Activiti工作流环境搭建 3 Activiti 类 配置文件之间的关系 3
  • 工作流Activiti7整合SpringBoot使用

    前言 一个软件系统中具有工作流的功能 我们把它称为工作流系统 一个系统中工作流的功能是什么 就是对系统的业务流程进行自动化管理 所以工作流是建立在业务流程的基础上 所以一个软件的系统核心根本上还是系统的业务流程 工作流只是协助进行业务流程管
  • 关于activiti流程通过、驳回、会签、转办、中止、挂起等核心操作功能的封装

    package com famousPro process service impl import java util ArrayList import java util HashMap import java util List imp
  • 5.2 activiti任务监听器TaskListener

    1 任务监听器定义 任务监听器用于在特定的任务相关事件发生时 执行自定义的Java逻辑或表达式 2 监听器监听的事件 String EVENTNAME CREATE create 创建 当任务已经创建 并且所有任务参数都已经设置时触发 St
  • 2023最新版本Activiti7系列-源码篇-初始化过程

    源码分析 1 设计模式 1 1 命令模式 https dpb bobokaoya sm blog csdn net article details 89115420 1 2 责任链模式 https dpb bobokaoya sm blog
  • runtimeService 运行时服务组件

    在Activiti中 启动一个流程后 会创建一个流程实例 ProcessInstance继承Execution 两个都是接口 每个流程实例至少会有一个执行流 Execution 当流程实例没有流程分支时 一般情况下只会存在一个执行流 假设出
  • Springboot集成activiti的配置文件ActivitiConfig

    Configuration public class ActivitiConfig Bean public ProcessEngineConfiguration processEngineConfiguration DataSource d
  • Activiti定时器事件

    定时器事件用于在特定的日期 时间或者周期触发一个事件 它们可以用做开始事件 中间事件 边界事件 边界事件可以是中断的 也可以是非中断的 默认是中断事件 即当触发定时器时 原执行实例会被删除 开始事件定时器 定时器开始事件用于在指定的时间点或
  • Activiti / Camunda 用变量改变边界计时器

    我有一个关于 Activiti Camunda 中用户任务的计时器边界事件的特殊问题 启动流程时 我使用流程变量设置计时器持续时间 并使用边界定义中的表达式来解析该变量 边界事件是在用户任务上定义的
  • 【工作流Activiti】了解工作流

    1 什么是工作流 工作流 Workflow 就是通过计算机对业务流程自动化执行管理 它主要解决的是 使在多个参与者之间按照某种预定义的规则自动进行传递文档 信息或任务的过程 从而实现某个预期的业务目标 或者促使此目标的实现 通俗来讲 就是业
  • 如何将候选用户列表传递给 alfresco 中的 activiti 工作流任务?

    我希望能够传递作为任务候选者的用户列表 用户是从数据列表中检索的 不能作为一个组使用 Activiti candidateUsers 似乎是正确的方法 假设已获取用户并将其设置在变量 ipw reviwers 中
  • 将 Activiti 任务从旧流程迁移到新流程

    我有一个用于某些业务流程的 Activiti 项目 问题在于移民 现有流程有一些未完成的任务 我想通过添加新步骤来修改现有流程 现在 当我创建一个新任务时 这个新任务将根据更新的流程进行处理 而未完成的任务将按照旧流程进行处理 让我们看下面
  • Alfresco:在另一个任务中显示任务字段(查看它们)

    我正在将新的工作流程部署到 alfresco 4 0 e 我有一个 formkey cwf submitLeaveTask 的任务 这是代码
  • 动态设置用户任务受让人

    我必须在 activiti 中创建需要以下用例的流程 1 表单有一个人员搜索字段 2 当有人填写表单并使用填充姓名的人员搜索字段完成任务时 我需要将分配的下一个任务的名称设置为可以对下一个任务执行操作的用户 如何使用 activiti 引擎
  • Activiti 6.0.0 完成任务时无法获取表单属性

    我是 Activiti 6 0 0 的新手 我创建了一个包含用户任务的进程 第二个用户任务有两个表单属性 但是当我完成第一个用户任务并尝试完成第二个用户任务时 表单属性不显示 我无法完成用户任务 下面是我的 bpm 流程

随机推荐

  • C语言经典100例题(25)--求1+2!+3!+...+20!的和

    目录 题目 问题分析 代码 运行结果 题目 求1 2 3 20 的和 问题分析 1 1 2 1 2 3 1 2 3 不难发现 1 2 3 20 每个阶乘都比前一个多乘了一个 i 代码 include
  • 使用antd pro初始化项目时出现报错:

    npm i ant design pro cli g出现报错 解决 使用sudo tnpm i ant design pro cli g 接着pro create myapp 一切都很顺利 但是在tnpm install时出现报错 这个问题
  • C51简介及Keil的使用

    前言 此文档主要是针对有一定C C 编程基础 并打算用Keil从事C51开发的开发人员 C51涉及的知识比较多 但是入门基本的开发 还是容易的 C51简介 1 C51概念 C51继承于C语言 主要运行于51内核的单片机平台 单片机 单片微型
  • Linux环境搭建----VMware安装虚拟机

    一 VMare虚拟机安装与使用 1 1 VMware简介 1 VMware是一个虚拟PC的软件 可以在现有的操作系统上虚拟出一个新的额硬件环境 相当于模拟出一个新的PC 2 WMware官方网站 http www vmware com 3
  • python重复执行命令_怎样能重复执行一条命令直到运行成功

    在我们的日常工作中 需要我们重复做的工作简直不能太多 比如 我们想要确认网络是否是连通的 传统的做法就是使用 ping 命令不停去测试某个地址 比如百度 网络比较好还好说 但如果网络很差 那么就需要一直去运行 ping 命令 作为程序员 重
  • 双链表嵌套的简单学生信息管理系统

    参考 实现双链表嵌套的简单学生信息管理 作者 三速何时sub20 发布时间 2020 07 20 10 44 40 网址 https blog csdn net weixin 44234294 article details 1074581
  • C++内联函数

    C 内联函数 1 什么是函数 函数是一个可以重复使用的代码块 CPU 会一条一条地挨着执行其中的代码 CPU 在执行主调函数代码时如果遇到了被调函数 主调函数就会暂停 CPU 转而执行被调函数的代码 被调函数执行完毕后再返回到主调函数 主调
  • PCL 基于迭代双边滤波的点云平滑

    目录 一 算法原理 1 原理概述 2 主要函数 3 参考文献 二 代码实现 三 结果展示 一 算法原理 1 原理概述 点云双边滤波的算法原理和详细实现过程见 PCL 基于法线的双边滤波 具体实现效果如下图所示 绿色为平滑前的点云 红色为平滑
  • 区块链产业生态发展情况-中国区块链产业生态发展

    2019以来中国区块链产业处于蓬勃发展期 从中央到地方有关区块链发展的指导意见和扶持政策不断发布 据不完全统计 今年上半年全国共有超过23个省市发布了112条涉及区块链的政策信息 多省市把区块链纳入发展数字经济的规划中 大力推进区块链应用落
  • 2023电赛E题:OpenMV4的矩形识别与中心判断

    增加识别率 使用OpenMV4官方的矩形识别案例 发现识别率很低 经常乱识别 为了增加识别率 加入最大矩形块的判断 让其只识别最大的矩形块 发现识别率高了很多 矩形起点识别与中心判断 接着是矩形起点和矩形中心判断 通过矩形类自带的矩形4元素
  • 数据降维

    数据降维 MATLAB实现基于LFDA基于局部费歇尔判别的分类数据降维可视化 目录 数据降维 MATLAB实现基于LFDA基于局部费歇尔判别的分类数据降维可视化 基本介绍 模型描述 程序设计 学习小结 基本介绍 MATLAB实现基于LFDA
  • signature今日头条php实现,今日头条_signature 值解析算法,另带DEMO_精易论坛

    navigator WT JS DEBUG v1 7 5 NLiger2018 appCodeName Mozilla appMinorVersion 0 appName Netscape appVersion 5 0 Windows NT
  • 【无标题】PPTP和L2TP服务器iPhone和PC VPN同时接入设置

    PPTP和L2TP服务器iPhone和PC VPN同时接入设置 VPN 用户管理 添加PPTP和L2TP用户 这样iPhong使用L2TP拨号 因为苹果禁用PPTP PC使用PPTP拨号 因为PPTP比L2TP上网速度快
  • IIS7.5文件解析漏洞&&Apache解析漏洞&&Nginx文件解析漏洞&&

    实验原理 文件上传使用白名单做限制 只能上传图片文件 导致脚本文件无法上传 上传图片马绕过白名单文件上传的验证 但是图片马又无法解析 利用IIS7 5文件解析漏洞的特点 任意文件名 任意文件名 php 从而解析脚本文件 实验步骤 1 登录操
  • 怎样使用Finder从MacOS Catalina删除iPhone和iPad备份?

    是否需要清理一些磁盘空间或摆脱Mac上的某些旧iPhone或iPad备份 备份iPhone或iPad最安全 最彻底的方法是通过Mac Finder进行加密备份 以下是在macOS Catalina中删除旧的iPhone或iPad备份的方法
  • 通过matlab实现数字图像处理中的抠图换背景功能

    适合背景为蓝色的图片 效果最好 如果背景色为别的颜色 可对代码进行调整修改后使用 其实这里的代码最开始由于报错已经经过我的修改了 可能出现的异常情况 1 待抠图片以及需要替换的背景图片放置在代码文件所在的目录 不然会无法读取 不出结果 2
  • 【安全】Apache HDFS 上配置 kerberos

    文章目录 4 3 部署kerberos keytab文件 4 4 命令测试 4 5 写个测试类测试一下 4 5 修改 hdfs 配置文件 4 5 1 常规配置 4 5 2 可选配置 4 5 2 可选配置 4 5 3 可选配置 4 5 4 注
  • ubantu16.04安装Anaconda

    1 官网下载安装包 我下载的是python 3 10版本的 后续用tvm要求python版本在 3 7 3 8 记得创建一个虚拟环境 Anaconda历史版本链接 https repo anaconda com archive 2 开始安装
  • 【项目实战】复旦微MCU+RT-thread+Moudbus(1)

    前言 手头存货FM33LC046芯片 复旦微提供的是freertos和rthread nano的例子 一直想使用RTThread完整版 MCU由于ROM有限 项目因此不可能太复杂 怕后期资源不够 第一步 git源码https gitee c
  • Activiti-设置全局变量的四种方法

    1 在流程启动的时候设置全局变量 在流程启动时设置全局变量 Test public void startProcessInstance 得到runtimeService RuntimeService runtimeService proce