2014-07-23 135 views
1

我想執行另一個項目中的bpmn文件。 任何人都可以告訴我如何做到這一點?從Drools規則執行bpmn文件

我有我的原則是這樣的,但它不工作:

function performScenario() 
{ 
    KieHelper kHelper = new KieHelper(); 
    KieBase kBase = kHelper.addResource(ResourceFactory.newFileResource("D:\\jbpm-installer\\workspace\\JbpmTest\\src\\main\\resources\\sample.bpmn")).build(); 
    KieSession kieSession = kBase.newKieSession(); 
    kieSession.startProcess("com.sample.bpmn.hello"); 
} 

我有錯誤:未知進程ID

回答

1

你說的過程中的意思是在另一個項目中?您需要將該項目加載到同一個ksession中才能從此處啓動它。 不是這樣做的:

kHelper 
    .addResource(
     ResourceFactory.newFileResource("D:\\jbpm-installer\\workspace\\JbpmTest\\src\\main\\resources\\sample.bpmn") 
    ) 
    .build(); 

,當你建立你的規則會話,然後你就可以做這樣的事情

kcontext.startProcess(<ID HERE>); 

HTH

0

只是做同樣的,我認爲你有一個錯誤kieSession.startProcess("com.sample.bpmn.hello"); kieSession不知道ID:"com.sample.bpmn.hello",所以它會拋出一個錯誤:未知的進程ID。

在文本或XML編輯器中打開您的BPMN文件,並查找這行代碼:

... 
    <process processType="Private" isExecutable="true" id="Sample" name="Sample Process"> 
    ...

id="Sample"是Process ID。所以你的代碼應該是這樣的:kieSession.startProcess("Sample");