jbpm设置流程变量

来源:互联网 发布:金十数据. 编辑:程序博客网 时间:2024/05/29 11:15

流程变量持久化在variable表中


1:通过ExecutionService设置变量

save:

String name = "price";Double price = 100d;String executionId = "financeApprove.150001";  //每个task对应一个;每次流程启动时的执行id,存放于execution表中的id字段pe.getExecutionService().setVariable(executionId, name, price);Map<String, String> map = new HashMap<String, String>();map.put("name", "lily");map.put("sex", "male");pe.getExecutionService().setVariables(executionId, map);

read:

String name = "price";Set<String> names = pe.getExecutionService().getVariableNames("financeApprove.150001");for (String item : names) {//System.out.println(item);Object obj = pe.getExecutionService().getVariable("financeApprove.150001", item);System.out.println(obj);}
                //////////////////////////通过taskid获取//////////////////////
                String taskId="500003";
                 names =pe.getTaskService().getVariableNames(taskId)
               Map<String, Object> map=pe.getTaskService().getVariable(taskId, names);
               //遍历map

2:通过TaskService设置变量
save
//使用TaskService设置主要是针对某一task进行设置,作用域和ExecutionService的作用域是一样的,可以相同的方式获取数据String taskId="";Map<String, String> map = new HashMap<String, String>();map.put("taskname", "taskTOM");map.put("taskdes", "taskFAT");pe.getTaskService().setVariables("150002", map);

read和ExecutionService读取方式一样


3:启动流程实例时设置变量(因为是启动时设置所以会生成一个新的executionid)

save

String executionId = "financeApprove-1";Map<String, String> map = new HashMap<String, String>();map.put("startname", "startTOM");map.put("startdes", "startFAT");ProcessInstance processInstance = pe.getExecutionService().startProcessInstanceById(executionId, map);

4:执行task时设置变量
Map<String, String> map = new HashMap<String, String>();map.put("dotaskname", "dotaskTOM");map.put("dotaskdes", "dotaskFAT");String taskId = "200004";pe.getTaskService().completeTask(taskId, "to manager", map); //需要指定路线



原创粉丝点击