Hi, I have two kind of facts in a map.
There is a field called _TYPE_ (H)eader, D)etail)
In the Header line I have two String fields, one for the number of details lines ("NU_REGISTROS") and another for the sum of the detail line ("MT_TOTAL")
In the detail lines I only have a String field called "MONTO" 

I would like to build two rules. One to check the count of detail lines versus the field in the header line so I wrote :

rule "Contador de lineas detalle vs Header"
  salience 10
  when
       $numRecs : Number()
                from accumulate(Map(this["_TYPE_"] == "D", $d : this["_NUMLINE_"]), count($d))
       $map : Map(this["_TYPE_"] == "H",
                  this["NU_REGISTROS"] != $numRecs)
  then
    System.out.println("NumRecs=" + $numRecs);
    listBitacora.add(new BitacoraDTO($map.get("_NUMLINE_"),
                                          "Error en el Detalle: El número del lineas de detalle (" +  $total +
                                          ") no empareja con lo del encabezado (" + $map.get("NU_REGISTROS") + ")"));
 end
 
 However I always got "NumRecs=1" when i print out the value of $numRecs but I am absolute sure there is two details lines...
 
 Second when i try to sumarize the total field in the details line i got (MONTO in the detail line is a string):
 
 rule "Sumatoria de lineas detalle vs Header"
  salience 10
  when
       $total : Number()
                from accumulate(Map(this["_TYPE_"] == "D",
                                $monto : this["MONTO"]),
                                sum(eval(Double.valueOf((String) $monto ))))
       $map : Map(this["_TYPE_"] == "H",
                  this["MT_TOTAL"] != $total)
  then
    System.out.println("TOTAL=" + $total);
    listBitacora.add(new BitacoraDTO($map.get("_NUMLINE_"),
                                          "Error en el Detalle: El número del lineas de detalle (" +  $total +
                                          ") no empareja con lo del encabezado (" + $map.get("NU_REGISTROS") + ")"));
 end
 
 but I got
 Rule Compilation error : [Rule name='Sumatoria de lineas detalle vs Header']
        rule/Rule_Sumatoria_de_lineas_detalle_vs_Header_0.java (9:1313) : The method eval(Double) is undefined for the type Rule_Sumatoria_de_lineas_detalle_vs_Header_0


 
 Any help in those tow problems
 
 TIA

Yamil


Actualízate gratis al nuevo Internet Explorer 8 y navega más seguro