activiti 给流程任务设置参数

//保存变量
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()); //当前任务完成后,流程会流转到下一个任务节点,此时是获取不到参数的值的 ,如果是全局参数流程到下一个节点是可以获取到的

猜你喜欢

转载自blog.csdn.net/ldqchat/article/details/81811601