activities工作流之流程變量設置以及獲取

ProcessEngine pe = ProcessEngines.getDefaultProcessEngine(); 

一、流程變量設置(自定義類型數據必須序列化,存儲在二進制表中blob字段)
①.啓動流程任務時設置流程變量

String processDefinitionKey = "variable";
Map<String, Object> variables = new HashMap<String, Object>();
variables.put("key1", "value1");
variables.put("key2", 200);
ProcessInstance pi = pe.getRuntimeService().startProcessInstanceByKey(
	processDefinitionKey, variables);
System.out.println(pi.getId());

②.在辦理任務時設置

String taskId = "1206";
Map<String, Object> variables = new HashMap<String, Object>();
variables.put("user", new User(1,"小王"));
pe.getTaskService().complete(taskId, variables);

③.使用RuntimeService的方法設置

String executionId = "601";//流程實例id
String variableName = "key3";
Object value = "value3";
pe.getRuntimeService().setVariable(executionId , variableName , value);

④.使用TaskService的方法設置

String taskId = "704";
Map<String, Object> variables = new HashMap<String, Object>();
variables.put("key4", 400);
variables.put("k5", "v5");
pe.getTaskService().setVariables(taskId , variables);

二、流程變量獲取
①.使用RuntimeService的方法獲取

String executionId = "1201";
Map<String, Object> variables = pe.getRuntimeService().getVariables(executionId);
Set<String> set = variables.keySet();
for (String key : set) {
	Object value = variables.get(key);
}

Object value = pe.getRuntimeService().getVariable(executionId, "user");
//System.out.println(value);

Collection<String> variableNames = new ArrayList<String>();
variableNames.add("key2");
variableNames.add("user");
Map<String, Object> map = pe.getRuntimeService().getVariables(executionId, variableNames);
System.out.println(map);

②.使用TaskService的方法獲取

String taskId = "1305";
Map<String, Object> variables = pe.getTaskService().getVariables(taskId );
System.out.println(variables);

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章