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