我正在使用kie-workbench。从引导决策表或引导规则Tamplet 创建规则时。它抛出错误“变量的重复声明”。但是如果使用DRL文件创建相同的规则,它可以正常工作。
Rules.drl
package in.drooltest.test2;
import in.drooltest.coupon.model.Order;
rule "rulesdrl22_0"
dialect "mvel"
when
ooorrr : Order( customerId == 1 )
then
ooorrr.setAmount( 232323232 );
end
在java项目中调用它。
KieServices kieServices = KieServices.Factory.get();
ReleaseId releaseId = kieServices.newReleaseId("in.drooltest", "test2", "1.0");
KieContainer kieContainer = kieServices.newKieContainer(releaseId);
KieScanner kScanner = kieServices.newKieScanner(kieContainer);
kScanner.start( 10000L );
KieSession kSession = kieContainer.newKieSession();
Order order = new Order();
order.setCustomerId(100000000);
kSession.insert(order);
kSession.fireAllRules();
kSession.dispose();
此规则由Guided Decision Templet生成。它会抛出运行时错误.. 无法构建KieBaseModel:defaultKieBase [4,0]:重复规则名称:rulesdrl22_0变量'ooorrr'的重复声明
但删除模板并将其粘贴到rules.drl文件后,它按预期工作。
尝试删除jar文件并重新生成它,但没有帮助。