2016-08-03 62 views
0

我們可以通過哪種方式修改jBPM中已啓動(啓動實例後)的流程實例的數據。修改jBPM中的流程實例數據(啓動實例後)

我已經開始使用

processInstance的processInstance的= ksession.startProcess(PROCID,則params)的方法;

現在一些事件後,我需要修改流程實例的數據:

((WorkflowProcessInstance)processInstance的).setVariable( 「transit_To」, 「DONE」);

這給了我錯誤:流程實例875 [or.example.proc]斷開連接。

任何形式的信息都會非常有幫助。

謝謝。

回答

0

我創建了一個類UpdateVariableCommand女巫執行GenericCommand

@Override 
public Object execute(Context context) { 
    KieSession ksession = ((KnowledgeCommandContext) context).getKieSession(); 
    WorkflowProcessInstance processInstance = (WorkflowProcessInstance) ksession.getProcessInstance(instanceId); 
    VariableScopeInstance variableScope = (VariableScopeInstance) processInstance 
      .getContextInstance(VariableScope.VARIABLE_SCOPE); 
    variableScope.setVariable(name, value); 
    return true; 
} 

我更新變量是這樣的:

/** 
* @param processInstanceId 
* @param name of variable 
* @param value of variable 
*/ 
public void setVariable(Long processInstanceId, String name, Object value) { 
    UpdateVariableCommand command = new UpdateVariableCommand(processInstanceId, name, value); 
    ksession.execute(command); 
}