我创建了一个 process-sampleFlow.bpmn2(在业务任务中添加的示例规则),并且在 kModule.xml 中定义了相同的流程。现在,在带有 kieContainer 的 main 方法中的一个简单 pojo 类中,它能够启动流程并触发相关规则。但仅当规则和流程被保存在同一个包中时。不知道我是否遗漏了什么。
POJO类:
KieServices ks = KieServices.Factory.get();
KieContainer kContainer = ks.getKieClasspathContainer();
KieSession kSession = kContainer.newKieSession("ksession-process");
Participant request = new Participant();
request.id="123";
kSession.insert(request);
kSession.startProcess("defaultPackage.sampleRuleFlow");
kSession.fireAllRules();
kModule.xml
<kmodule xmlns="http://jboss.org/kie/6.0.0/kmodule">
<kbase name="process" packages="process">
<ksession name="ksession-process"/>
</kbase>
</kmodule>
规则 :
rule sample1
ruleflow-group "group1"
when
then
System.out.println( "Sample1" );
end
rule sample2
ruleflow-group "group2"
when
then
System.out.println( "Sample2" );
end
提前致谢。