【入门篇】Activiti设置局部变量两种方法

来源:互联网 发布:网络打假教程 编辑:程序博客网 时间:2024/06/08 20:12

需求

目前还不清楚什么时候会用到局部变量,因为该变量的生命周期很短暂,声明周期为方法范围内,方法结束,变量失效。也许只是用它来变化全局变量吧!比如:全局变量a,局部变量b,每次执行c任务的时候,会对b变量赋值,并且a = a+b,这个时候,局部变量就起到了作用,个人理解啊。。。如果有知道的欢迎留言

涉及到表

act_hi_varinst:流程变量表

act_ru_variable:当前流程表

第一种方式:

//完成提交采购单任务的时候设置局部变量@Testpublic void completeTaskSetLocalVariable(){//查询任务使用taskserviceTaskService taskService = processEngine.getTaskService();//任务idString taskId = "4802";//任务办理人String assignee = "zhaoliu";//根据任务id和assignee查询该任务Task task = taskService.createTaskQuery().taskId(taskId).taskAssignee(assignee).singleResult();if (task != null) {//完成任务时设置流程变量,使用pojoOrderCustom orderCustom = new OrderCustom();orderCustom.setPrice(10000f);Map<String, Object> varaibles = new HashMap<String,Object>();varaibles.put("order", orderCustom);//设置局部变量taskService.setVariablesLocal(taskId, varaibles);taskService.complete(taskId);System.out.println("完成任务:" + taskId);}}

第二种方式:

//通过当前任务id设置局部变量@Testpublic void setVariableByTaskId() {TaskService taskService = processEngine.getTaskService();//设置单个局部变量taskService.setVariableLocal("3402", "price", 50000);//设置多个局部变量//taskService.setVariablesLocal(taskId, variables);}


原创粉丝点击