与业务规则的流程模型连接
问题描述:
我在集成BPMN2流程模型中的业务规则时遇到问题。所以,我的过程是这样的与业务规则的流程模型连接
的DRL文件只包含一个规则:
import com.sample.ProcessTest.User;
rule "AgeCheck"
ruleflow-group "AgeRules"
when
u:User (u.getAge()<17)
then
u.setName("Denied");
end
我的问题是,我有两个参数年龄,姓名,如果我不使用规则,我可以通过他们网关,脚本进程,但是当我使用业务规则任务时,它停在此节点上。
我开始从蚀过程中,
ksession.startProcess("_New.Process2", params);
System.out.println("Process started ...");
ksession.fireAllRules();
我增加了资源,
kbuilder.add(ResourceFactory.newClassPathResource("Process2.bpmn2"), ResourceType.BPMN2);
kbuilder.add(ResourceFactory.newClassPathResource("AgeRules.drl"), ResourceType.DRL);
在rouleflow组设置为AgeRules的RuleChecker节点的属性和我有以下结果当我试图运行我的项目:
BEFORE PROCESS NODE TRIGGERED node:RuleChecker[id=5] process:Process2[id=_New.Process2]
BEFORE RULEFLOW GROUP ACTIVATED group:AgeRules[size=0]
AFTER RULEFLOW GROUP ACTIVATED group:AgeRules[size=0]
AFTER PROCESS NODE TRIGGERED node:RuleChecker[id=5] process:Process2[id=_New.Process2]
AFTER PROCESS NODE TRIGGERED node:InputUser [id=2] process:Process2[id=_New.Process2]
我不知道什么是专业版正是因为这个过程停在了rulechecker上。 如果有人能帮助我这个请给我解释一下是什么问题
亲切的问候, Hunor - 阿拉·凯雷克斯
答
这是正常现象,发动机将停止在RuleChecker节点,如图审计日志。它会一直等到作为规则流组的一部分激活的规则被触发。在你的代码片段中,你似乎在调用fireAllRules(),你是否注册了一个议程监听器,并且你看到任何规则发射?或者你看到规则的激活或停用?在调用fireAllRules查看是否有任何规则被激活和触发之前,可能需要立即查看Eclipse中的调试视图。
非常感谢您的回答,您的问题使我更快地找到解决方案,将此代码部分添加到我的示例中:'new Thread(new Runnable(){ public void run(){ ksession.fireUntilHalt ); } })。start();' \t \t \t \t \t ksession.startProcess( “_ New.Process2”,则params);” – 2012-03-19 01:10:46