提问者:小点点

XLS决策表不适用于8.32.0.Final


我试图在一个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();

但是预期的字段为空。

谁能帮我拿一下这个?

非常感谢你们!


共1个答案

匿名用户

很可能,您错过了以. drl.xls.drl.xlsx.drl.csv结尾的文件名。

测试:https://github.com/tarilabs/demo-so75716587

这对我有用。

我们说话的时候正在留档中添加解释性提及。