Java 下面的决策表可能有什么问题?
我现在只使用一条规则来实现这个决策表。我在规则“Screens_11”]中得到“输入不匹配”==,text=解析器返回了一个空包]]”错误。这是堆栈跟踪:Java 下面的决策表可能有什么问题?,java,drools,business-rules,Java,Drools,Business Rules,我现在只使用一条规则来实现这个决策表。我在规则“Screens_11”]中得到“输入不匹配”==,text=解析器返回了一个空包]]”错误。这是堆栈跟踪: java.lang.RuntimeException: Error while creating KieBase[Message [id=1, level=ERROR, path=Sample.xls, line=8, column=0 text=[ERR 102] Line 8:16 mismatched input '==' in
java.lang.RuntimeException: Error while creating KieBase[Message [id=1, level=ERROR, path=Sample.xls, line=8, column=0
text=[ERR 102] Line 8:16 mismatched input '==' in rule "Screens_11"], Message [id=2, level=ERROR, path=Sample.xls, line=0, column=0
text=Parser returned a null Package]]
at org.drools.compiler.kie.builder.impl.KieContainerImpl.getKieBase(KieContainerImpl.java:450)
at org.drools.compiler.kie.builder.impl.KieContainerImpl.newKieSession(KieContainerImpl.java:604)
at org.drools.compiler.kie.builder.impl.KieContainerImpl.newKieSession(KieContainerImpl.java:575)
at com.sample.TestDecisionTable.main(TestDecisionTable.java:15)
任何帮助都将不胜感激
编辑:添加从电子表格生成的文本
=== Begin generated DRL ===
package com.sample;
//generated from Decision Table
import com.sample.Screens;
// rule values at C11, header at C6
rule "Screens_11"
when
var:Screens(deliveryChannel == "Y")
usePointsAppl == "Y"
contactDetails == "Y"
riskScore == "Y"
reasonCode == 100
currentScreen == 303
then
var.setNextScreen(306);
System.out.println(var.getNextScreen());
end
// rule values at C12, header at C6
rule "Screens_12"
when
var:Screens(deliveryChannel == "Y")
usePointsAppl == "Y"
contactDetails == "Y"
riskScore == "Y"
reasonCode == 100
currentScreen == 303
then
var.setNextScreen(306);
System.out.println(var.getNextScreen());
end
=== End generated DRL ===
第8行已加入单元格。不要在约束列之外进行连接 请尝试此代码并返回完整输出
private void testSpreadsheet(){
File dtf = new File( dtPath );
InputStream is;
try {
is = new FileInputStream( dtf );
SpreadsheetCompiler ssComp = new SpreadsheetCompiler();
String s = ssComp.compile( is, InputType.XLS );
System.out.println( "=== Begin generated DRL ===" );
System.out.println( s );
System.out.println( "=== End generated DRL ===" );
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
第8行已加入单元格。不要在约束列之外进行连接 请尝试此代码并返回完整输出
private void testSpreadsheet(){
File dtf = new File( dtPath );
InputStream is;
try {
is = new FileInputStream( dtf );
SpreadsheetCompiler ssComp = new SpreadsheetCompiler();
String s = ssComp.compile( is, InputType.XLS );
System.out.println( "=== Begin generated DRL ===" );
System.out.println( s );
System.out.println( "=== End generated DRL ===" );
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
提示:请不要涉足短屏幕业务。至少对于源代码:即文本;并且应该以这样的方式输入!提示:请不要涉足短屏幕业务。至少对于源代码:即文本;并且应该以这样的方式输入!补充问题。请检查。规则文本有助于查找错误。我把所有的条件语句都集中在一列中,结果成功了。我想知道怎样才能把所有的条件语句分开。谢谢你的提问。请检查。规则文本有助于查找错误。我把所有的条件语句都集中在一列中,结果成功了。我想知道怎样才能把所有的条件语句分开。谢谢