Drools 6.4决策表编译错误

Drools 6.4决策表编译错误,drools,Drools,我是Drools的新手,正在尝试将这个simple.xls编译为决策表,并得到这个非常无用的编译错误: [ERR 102]第8:1行规则“患者通知”中的输入“then”不匹配 我已经附加了xls以及与之配套的简单对象。我已经阅读了所有关于这方面的材料,无法理解为什么会出现以下错误。我事先很感激你的帮助。具体地说,我想知道是否有一种方法可以检查和查看幕后发生了什么,从而导致这一错误。另外,更重要的是,如果决策表的逻辑中存在错误,如何像调试.drl文件一样调试XLS的编译版本 public stat

我是Drools的新手,正在尝试将这个simple.xls编译为决策表,并得到这个非常无用的编译错误: [ERR 102]第8:1行规则“患者通知”中的输入“then”不匹配

我已经附加了xls以及与之配套的简单对象。我已经阅读了所有关于这方面的材料,无法理解为什么会出现以下错误。我事先很感激你的帮助。具体地说,我想知道是否有一种方法可以检查和查看幕后发生了什么,从而导致这一错误。另外,更重要的是,如果决策表的逻辑中存在错误,如何像调试.drl文件一样调试XLS的编译版本

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();
  }
}