[rules-users] Problems count and sumarizing data in facts
Yamil Bracho
yamilbracho at hotmail.com
Wed Mar 10 09:26:47 EST 2010
I solved the counting of detail lines this way:
rule "Contador de lineas detalle vs Header" salience 10 when Number($count : intValue) from accumulate( $mp : Map(this["_TYPE_"] == "D"), count($mp)) $map : Map(this["_TYPE_"] == "H", this["NU_REGISTROS"] != $count) then System.out.println("NumRecs=" + $count); listBitacora.add(new BitacoraDTO($map.get("_NUMLINE_"), "El número del lineas de detalle (" + $count + ") no empareja con lo del encabezado (" + $map.get("NU_REGISTROS") + ")")); end
However, I still got problem with summarize the amounts. I wrote
rule "Sumatoria de lineas detalle vs Header" salience 10 when Number( $total : doubleValue) from accumulate( Map(this["_TYPE_"] == "D", $monto : ((Number) this["MONTO"]), sum($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
And i am getting mismatched input" so my question is how to convert a string to double in this line "$monto : ((Number) this["MONTO"])," ?
TIA
Yamil
From: yamilbracho at hotmail.com
To: rules-users at lists.jboss.org
Date: Tue, 9 Mar 2010 17:41:43 +0000
Subject: [rules-users] Problems count and sumarizing data in facts
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
_________________________________________________________________
¿Quieres saber qué PC eres? ¡Descúbrelo aquí!
http://www.quepceres.com/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20100310/2480269d/attachment.html
More information about the rules-users
mailing list