我试图在一个java项目中运行最新版本的drools(8.32.0.Final),其中我有一个决策表xls文件,该文件基于某种条件从该xls返回数据。在我用一些数据创建POJO对象并在引擎中插入我希望设置的字段为null后。
创建KieSession的代码是:
KieFileSystem kieFileSystem = kieServices.newKieFileSystem();
kieFileSystem.write(ResourceFactory.newClassPathResource("path to the xls file"));
KieBuilder kb = kieServices.newKieBuilder(kieFileSystem);
kb.buildAll();
KieModule kieModule = kb.getKieModule();
KieContainer kContainer = kieServices.newKieContainer(kieModule.getReleaseId());
kContainer.newKieSession();
我也尝试提供资源,但结果相同:
KieFileSystem kieFileSystem = kieServices.newKieFileSystem().write(dt);
KieBuilder kieBuilder = kieServices.newKieBuilder(kieFileSystem).buildAll();
KieModule kieModule = kieBuilder.getKieModule();
KieContainer kContainer = kieServices.newKieContainer(kieModule.getReleaseId());
kContainer.newKieSession();
决策表如下所示:第一行包含一个规则集。第二行包含导入对象模型,后跟RuleTabel和规范。
注意:如果我尝试将xls转换为drl,它会正确转换。
规范: JAVA 17 kie-ci,drools-决策表,drools-core,drools-compiler版本8.32.0.Final
我希望在对象上运行此操作后在输入对象上设置特定字段。
kieSession.insert(depositRequest);
kieSession.fireAllRules();
kieSession.dispose();
但是预期的字段为空。
谁能帮我拿一下这个?
非常感谢你们!
很可能,您错过了以. drl.xls
、.drl.xlsx
或.drl.csv
结尾的文件名。
测试:https://github.com/tarilabs/demo-so75716587
这对我有用。
我们说话的时候正在留档中添加解释性提及。