【问题标题】:Execute bpmn file from Drools Rule从 Drools 规则执行 bpmn 文件
【发布时间】:2014-07-23 13:45:10
【问题描述】:

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

【问题讨论】:

    标签: java drools rules jbpm kie


    【解决方案1】:

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

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

    在您构建规则会话时执行相同操作,然后您将能够执行类似的操作

    kcontext.startProcess(<ID HERE>);
    

    HTH

    【讨论】:

      【解决方案2】:

      我认为您在kieSession.startProcess("com.sample.bpmn.hello"); 中有错误 kieSession 不知道 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");

      【讨论】:

        猜你喜欢
        • 2012-06-05
        • 1970-01-01
        • 1970-01-01
        • 2022-11-30
        • 1970-01-01
        • 1970-01-01
        • 2019-06-25
        • 2019-04-08
        • 2013-07-15
        相关资源
        最近更新 更多