电子表格中没有 RuleTable 单元格 - Excel 文件和 DRT

No RuleTable cells in spreadsheet - Excel File and DRT

我对 drools 的集成有疑问。我正在使用 spring-boot-drool-starter,可在此处找到:https://github.com/jonashackt/spring-boot-starter-drools。我决定使用这个库,因为 kmodule.xml 声明的路径,不在 spring 引导的 BOOT-INF 中搜索...

我目前面临的问题是由于:org.drools.template.parser.DecisionTableParseException:电子表格中没有 RuleTable 单元格。

我假设合并 .drt 文件(包括规则)和 .xls 时出现问题。 这就是我的结构的样子。你有什么想法?我一周都在与研究和问题作斗争...

您不必使用 kmodule.xml 文件将电子表格与 drt 模板合并。您可以使用 ExternalSpreadsheetCompiler 从包含电子表格和 drt 文件的输入流生成 DRL,您可以从类路径中获取这些文件。

要使用生成的规则创建 KieSession,请执行以下操作:

ExternalSpreadsheetCompiler converter = new ExternalSpreadsheetCompiler();
String drl = converter.compile(spreadsheetStream, ruleTemplateStream, 1, 1);
KieServices kieServices = KieServices.Factory.get();
KieFileSystem kfs = kieServices.newKieFileSystem();
kfs.write("src/main/resources/simple.drl", kieServices.getResources().newReaderResource(new StringReader(drl)));
KieBuilder kieBuilder = kieServices.newKieBuilder(kfs).buildAll();
KieContainer kieContainer = kieServices.newKieContainer(kieBuilder.getKieModule().getReleaseId());
KieSession kieSession = kieContainer.newKieSession();