2014-12-04 32 views
0

我們可以暫停這樣的流程實例:的jBPM 6.1無法恢復過程

org.jbpm.process.instance.ProcessInstance processInstance = //...; 
processInstance.setState(STATE_SUSPENDED); 

,並簡歷它:

kieSession.getWorkItemManager().completeWorkItem(processInstance.getId(), params); 

,但它不工作! ... 問題是什麼?

謝謝。

回答

1

要恢復進程,請使用processInstance.setState(ProcessInstance.STATE_ACTIVE)。 WorkItemManager在workItems(web服務調用,人工任務,客戶處理程序等)上運行,而不是processInstances。

試試下面的代碼:

KieSession ksession=...... 
    ProcessInstance processInstance = ksession.startProcess(...... 
    //suspend: 
    SuspendProcessInstanceCommand susp=new SuspendProcessInstanceCommand(); 
    susp.setProcessInstanceId(processInstance.getId()); 
    ksession.execute(susp); 
    //confirm suspended: 
    assertEquals(ProcessInstance.STATE_SUSPENDED, ksession.getProcessInstance(processInstance.getId()).getState()); 

    //resume: 
    ResumeProcessInstanceCommand res=new ResumeProcessInstanceCommand(); 
    res.setProcessInstanceId(processInstance.getId()); 
    ksession.execute(res); 
    //confirm active: 
    assertEquals(ProcessInstance.STATE_ACTIVE, ksession.getProcessInstance(processInstance.getId()).getState()); 
+0

謝謝你,但它沒有工作... – FaNaJ 2014-12-06 07:49:29

+0

確定我不能完全確定從哪個方面您要執行的代碼,但如果你看看在jbpm-flow項目中的org.jbpm.process.instance.command.ResumeProcessInstanceCommand代碼中,您可能會更好地瞭解需要完成什麼 – 2014-12-06 08:06:56

+0

當服務器重新啓動時,是否可以保留全局和局部變量jBPM 6? – 2015-05-12 18:41:46