activiti 给流程任务设置参数

本文介绍了在工作流引擎中如何管理和使用流程参数与任务变量,包括如何设置本地参数和全局参数,以及如何通过序列化方式保存复杂对象,并在流程中获取这些变量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//保存变量
taskService.setVariable(t.getId(), "var1", "hi");//数据保存在在act_ru_variable表中

//保存对象
User user=new User();
user.setName("test");
taskService.setVariable(t.getId(), "user", user); //用户的数据被序列化,在act_ru_variable中会保存一条数据,数据对应到act_ge_byteArray的id,用户的数据保存在act_ge_byteArray中

taskService.getVariable(t.getId(), "user",User.class);

//获取user对象
User user=taskService.getVariable(t.getId(), "user",User.class);

参数的类型:
    本地参数:只在当前任务节点获取的到
    流程参数:只要流程还没有结束,可以在整个流程中获取的到

RuntimeService runtimeService = engine.getRuntimeService();
Deployment de = rs.createDeployment().addClasspathResource("test.bpmn").deploy();
ProcessDefinition defi = rs.createProcessDefinitionQuery().deploymentId(de.getId()).singleResult();
    	
ProcessInstance pi = runtimeService.startProcessInstanceByKey(defi.getKey());
task = taskService.createTaskQuery().processInstanceId(pi.getId()).singleResult();

taskService.setVariableLocal(task.getId(), "days", 5); //设置本地参数

taskService.setVariable(task.getId(), "days", 5); //设置全局参数


taskService.complete(task.getId()); //当前任务完成后,流程会流转到下一个任务节点,此时是获取不到参数的值的 ,如果是全局参数流程到下一个节点是可以获取到的

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DQchat

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值