jbpm4.3 改變變量值

在jbpm4.3中,一般在啓動流程的時候就把所有變量設置好了,也就決定了流程的最終走向。這樣的流程還不夠靈活,其實jbpm4.3已經考慮到這個問題,所以提供了變量值改變的接口。

啓動流程時設置的變量,其實是抽象了不同的流程。使得所有的符合這個流程的業務都可以流轉。

在流程啓動後設置變量,其實是對該流程的抽象。使得該流程更加靈活。

上代碼。

if(taskName.equals("行政確認")){
Map<String, Object> variable = new HashMap<String, Object>();// 流程中要用到的變量信息
variable.put("hrPass", "已批");
jbpmTemplate.setFlowVariables(beout.getBeoutId().toString(),variable,taskName);
if(beout.getActualTime().after(beout.getEndTime())){
variable.put("timeOut", "超時");
jbpmTemplate.setFlowVariables(beout.getBeoutId().toString(),variable,taskName);
}
}
jbpmTemplate.completeTask(taskId, approvalResult);
那麼在模版中的函數是這樣的
public void setFlowVariables(String key, Map<String, Object> variable,String name){

Execution execution = getProcessInstance(key).findActiveExecutionIn(name);
executionService.setVariables(execution.getId(), variable);
}
這樣就可以根據流程的走向來動態指定流程的走向。

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