Drools 6.4决策表编译错误
我是Drools的新手,正在尝试将这个simple.xls编译为决策表,并得到这个非常无用的编译错误: [ERR 102]第8:1行规则“患者通知”中的输入“then”不匹配 我已经附加了xls以及与之配套的简单对象。我已经阅读了所有关于这方面的材料,无法理解为什么会出现以下错误。我事先很感激你的帮助。具体地说,我想知道是否有一种方法可以检查和查看幕后发生了什么,从而导致这一错误。另外,更重要的是,如果决策表的逻辑中存在错误,如何像调试.drl文件一样调试XLS的编译版本Drools 6.4决策表编译错误,drools,Drools,我是Drools的新手,正在尝试将这个simple.xls编译为决策表,并得到这个非常无用的编译错误: [ERR 102]第8:1行规则“患者通知”中的输入“then”不匹配 我已经附加了xls以及与之配套的简单对象。我已经阅读了所有关于这方面的材料,无法理解为什么会出现以下错误。我事先很感激你的帮助。具体地说,我想知道是否有一种方法可以检查和查看幕后发生了什么,从而导致这一错误。另外,更重要的是,如果决策表的逻辑中存在错误,如何像调试.drl文件一样调试XLS的编译版本 public stat
public static class PatientNotification {
public static final int Notify = 1;
public static final int EvalNotify = 0;
private String message;
private long ndc;
private String patientName;
public String getPatientName() {
return patientName;
}
public void setPatientName(String patientName) {
this.patientName = patientName;
}
public long getNdc() {
return ndc;
}
public void setNdc(long ndc) {
this.ndc = ndc;
}
private int status;
public String getMessage() {
return this.message;
}
public void setMessage(String message) {
this.message = message;
}
public int getStatus() {
return this.status;
}
public void setStatus(int status) {
this.status = status;
}
public void setStatus(String sstatus) {
if (sstatus.equals("Notify"))
this.status=Notify;
else if(sstatus.equals("EvalNotify"))
this.status = EvalNotify;
else
this.status=-1;
}
}
我认为含有
m: PatientNotification
应与其右侧的邻居合并,以便在基于此类型的模式中连接两个约束。如果这不能解决问题,请使用下面的代码并报告
要查看电子表格编译器中发生了什么,请使用以下方法:
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();
}
}
我认为包含
m: PatientNotification
应与其右侧的邻居合并,以便在基于此类型的模式中连接两个约束。如果这不能解决问题,请使用下面的代码并报告
要查看电子表格编译器中发生了什么,请使用以下方法:
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();
}
}