前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >项目实践工作流之Activiti学习(三十四)

项目实践工作流之Activiti学习(三十四)

作者头像
用户1289394
发布2023-11-16 11:10:40
1270
发布2023-11-16 11:10:40
举报
文章被收录于专栏:Java学习网

3.6设置 local 流程变量

3.6.1 任务办理时设置

任务办理时设置 local 流程变量,当前运行的流程实例只能在该任务结束前使用,任务结束该变量无法在当前流程实例使用,可以通过查询历史任务查询。

代码语言:javascript
复制
// 办理任务时设置local流程变量
@Test
public void completTask() {
//任务id
String taskId = "";
TaskService taskService = processEngine.getTaskService();
// 定义流程变量
Map<String, Object> variables = new HashMap<String, Object>();
Holiday holiday = new Holiday ();
holiday.setNum(3);
// 定义流程变量
Map<String, Object> variables = new HashMap<String, Object>();
//变量名是holiday,变量值是holiday对象
variables.put("holiday", holiday);
// 设置local变量,作用域为该任务
 taskService.setVariablesLocal(tasked, variables);
taskService.complete(taskId);
}

说明:

设置作用域为任务的 local 变量,每个任务可以设置同名的变量,互不影响。

3.6.2通过当前任务设置

代码语言:javascript
复制
@Test
public void setLocalVariableByTaskId(){
//当前待办任务id
String taskId="1404";
TaskService taskService = processEngine.getTaskService();
Holiday holiday = new Holiday ();
holiday.setNum(3);
//通过任务设置流程变量
taskService.setVariableLocal(taskId, "holiday", holiday);
//一次设置多个值
//taskService.setVariablesLocal(taskId, variables)
}

注意:

任务 id 必须是当前待办任务 id,act_ru_task 中存在。

3.6.3 Local 变量测试 1

如果上边例子中设置 global 变量改为设置 local变量是否可行?为什么?

Local 变量在任务结束后无法在当前流程实例执行中使用,如果后续的流程执行需要用到此变量则会

报错。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-11-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Java学习网 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档