Ich bin keine spezifische Art und Weise bekommen, es zu tun geifert mit 6. ich versucht hatte, es mit dem folgenden Beispielcode zu tun: `Wie Drools Decision Tabelle in mehreren Blättern der gleichen Excel-Datei zu importieren, mit Drools 6?
private static KieBase readBase(String strFilePath) throws IOException, BiffException {
DecisionTableConfiguration dtconf = KnowledgeBuilderFactory.newDecisionTableConfiguration();
dtconf.setInputType(DecisionTableInputType.XLS);
KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
File xls = new File(strFilePath);
SpreadsheetCompiler compiler = new SpreadsheetCompiler();
Workbook w;
String sheetName = "";
FileInputStream in = null;
try {
w = Workbook.getWorkbook(xls);
for (Sheet sheet : w.getSheets()) {
sheetName = sheet.getName();
in = new FileInputStream(xls);
System.out.println("The sheet name is : " + sheetName);
compileSheet(kbuilder, xls, compiler, sheetName, in);
}
} catch (DecisionTableParseException e) {
System.out.println("Failed to parse spreadsheet " + sheetName + " "
+ e);
}
KieBase k = KnowledgeBaseFactory.newKnowledgeBase();
// kContainer.
KnowledgeBase kb = KnowledgeBaseFactory.newKnowledgeBase();
kb.addKnowledgePackages(kbuilder.getKnowledgePackages());
return kb;
}
private static KnowledgeBuilder compileSheet(KnowledgeBuilder kbuilder, File xls, SpreadsheetCompiler compiler, String sheetName, FileInputStream in) {
try {
String compiled = compiler.compile(in, sheetName);
kbuilder.add(ResourceFactory.newReaderResource(new StringReader(compiled)), ResourceType.DRL);
System.out.println("***************************************drl**************************************");
System.out.println(compiled);
} catch (DecisionTableParseException dtpe) {
if (dtpe.getMessage().equals("No RuleTable's were found in spreadsheet.")) {
System.out.println("No rule tables found in sheet {}" + sheetName);
} else {
throw dtpe;
}
}
return kbuilder;
}
`
Problem hier ist geifert 6 verwendet KIEBase Nicht KnowledgeBase, daher bekomme ich keinen geeigneten Weg kompilierte Blätter in KieBase zu laden. Gibt es einen anderen Weg, es in Drools 6 zu tun?