2016-08-03 103 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); 
}