Camunda Variable Scope(Global、Local )

发布时间:2024年01月12日

在这里插入图片描述

repositoryService.createDeployment().name("全局局部变量流程").addClasspathResource("bpmn/global_local_variable.bpmn").deploy();
identityService.setAuthenticatedUserId("huihui");

// UserTask1
VariableMap startVariables = Variables.createVariables().putValue("start", "start");
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("GlobaAndLocalProcess", startVariables);
Task task = taskService.createTaskQuery().processInstanceId(processInstance.getId()).singleResult();
taskService.setVariableLocal(task.getId(), "usertask1-local", "value1");
taskService.complete(task.getId(), Variables.createVariables().putValue("usertask1-global", "value2"));

// UserTask2
task = taskService.createTaskQuery().processInstanceId(processInstance.getId()).singleResult();
taskService.setVariableLocal(task.getId(), "usertask2-local", "value3");
Map<String, Object> variables = taskService.getVariables(task.getId());
Map<String, Object> variablesLocal = taskService.getVariablesLocal(task.getId());

在这里插入图片描述

  • taskService.getVariables(task.getId()):获取所有任务的全局变量和当前任务的局部变量。
  • taskService.getVariablesLocal(task.getId()):获取当前认为的局部变量,局部变量的作用域只在当前节点,超过当前节点就获取不到。
文章来源:https://blog.csdn.net/vbirdbest/article/details/135547844
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。