1

我想执行另一个项目中的 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

4

2 回答 2

1

您所说的流程在另一个项目中是什么意思?您需要将项目加载到同一个 ksession 中才能从那里启动它。而不是这样做:

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

当你建立你的规则会话时做同样的事情,然后你就可以做类似的事情

kcontext.startProcess(<ID HERE>);

高温高压

于 2014-07-24T12:25:58.870 回答
0

我认为你在kieSession.startProcess("com.sample.bpmn.hello"); The kieSessiondidn't know the id:中有一个错误"com.sample.bpmn.hello",所以它会抛出一个错误:Unknown Process ID。

在文本或 xml 编辑器中打开您的 bpmn 文件并查找这行代码:

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

id="Sample"进程 ID。所以你的代码应该是这样的:kieSession.startProcess("Sample");

于 2015-05-18T03:32:18.877 回答