[rules-users] rules-users Digest, Vol 40, Issue 41

Nathan Bell Nathan.Bell at pharmacyonesource.com
Wed Mar 10 14:50:31 EST 2010


True. I probably should not have included wiki in that list. What I am
thinking of is more along the lines of a forum (think stackoverflow.com)
where conversations are recorded, can be commented on, voted on, rated,
etc. Some mechanism where conversations like the ones that occur in this
mailing list are persisted and become searchable.

-Nathan


Date: Wed, 10 Mar 2010 19:25:39 +0100
From: Geoffrey De Smet <ge0ffrey.spam at gmail.com>
Subject: Re: [rules-users] A general question about this mailing list
To: rules-users at lists.jboss.org
Message-ID: <hn8o73$b59$1 at dough.gmane.org>
Content-Type: text/plain; charset=windows-1252; format=flowed

I personally don't believe much in a wiki (there is a drools wiki btw), 
because it gets stale fast.
I believe much more in the reference manual, which is checked in in 
Subversion.

In the Drools Planner manual I 've already added "meta" information, 
such as where jira is and how to build from source etc etc.
 
https://hudson.jboss.org/hudson/job/drools/lastSuccessfulBuild/artifact/
trunk/target/docs/drools-planner/html_single/index.html

With kind regards,
Geoffrey De Smet


Nathan Bell schreef:
> I?m fairly new to this list, but I have already seen a great deal of 
> helpful information being shared. The problem is that a collection of 
> emails makes a poor knowledge base. Has there ever been an attempt to 
> set up a forum/wiki/knowledgebase for the Drools community? I would be

> willing to help with setting that up if it is something the community 
> wants. I?m guessing that this has been talked about before, so I want
to 
> check-in with the community and ask why it does not exist already. Is 
> there some barrier that I am not aware of that would make a different 
> format undesirable?
> 
>  
> 
> Thank You,
> 
>  
> 
> Nathan Bell
> 
>  
> 
> 
>
------------------------------------------------------------------------
> 
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users



------------------------------

Message: 3
Date: Wed, 10 Mar 2010 19:38:09 +0000
From: Yamil Bracho <yamilbracho at hotmail.com>
Subject: Re: [rules-users] Problems count and sumarizing data in facts
To: Drools UserList <rules-users at lists.jboss.org>
Message-ID: <SNT130-w419F987761CE0A1C882981AA330 at phx.gbl>
Content-Type: text/plain; charset="windows-1252"


Thanks Thomas.
I rewrote the rule as:
rule "Sumatoria de lineas detalle vs Header"  salience 10  when
Number( $total : doubleValue) from accumulate(
Map(this["_TYPE_"] == "D",               $monto :
eval(Double.parseDouble(this.get("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 

but I am getting errors in the parseDouble:
[828,29]: [ERR 101] Line 828:29 no viable alternative at input 'Double'
in rule "Sumatoria de lineas detalle vs Header" in pattern Map[828,67]:
[ERR 102] Line 828:67 mismatched input ')' expecting 'then' in rule
"Sumatoria de lineas detalle vs Header"
Any hint...


From: TSwindells at nds.com
To: rules-users at lists.jboss.org
Date: Wed, 10 Mar 2010 15:13:49 +0000
Subject: Re: [rules-users] Problems count and sumarizing data in facts













To convert from string to double you have to full back to java:
Something along the lines  of
$monto : eval(Double.parseDouble(this.get(?MONTO?)))
 
However even with doing this your rules are unlikely to work
consistently as you expect.  Using equality tests on doubles is
fundamentally unsafe as doubles
 aren?t represented exactly and may not exactly match the value you
think you have.  Force instance 0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1
!= 1.0 (dependent on floating point chipset etc).  If you are dealing
with currency then it is far simpler and safer
 to just operate with integers and divide by 100 when you want to
display the value.  The other alternative is to use BigDecimal which
will store an exact representation but will probably require more work
with getting your accumulate function correct.  Your
 last option is to use Math.abs(left-right) < 0.1 to see if they are
approximately equal.  More details can be found here
http://firstclassthoughts.co.uk/java/traps/java_double_traps.html
 
Thomas
 
 



From: rules-users-bounces at lists.jboss.org
[mailto:rules-users-bounces at lists.jboss.org]
On Behalf Of Yamil Bracho

Sent: 10 March 2010 14:27

To: Drools UserList

Subject: Re: [rules-users] Problems count and sumarizing data in facts


 
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

 



Compartir tus mejores FOTOS es f?cil en Messenger

?DESCUBRE c?mo!







************************************************************************
**************

This message is confidential and intended only for the addressee. If you
have received this message in error, please immediately notify the
postmaster at nds.com and delete it from your system as well as any copies.
The content of e-mails as well as traffic data
 may be monitored by NDS for employment and security purposes. To
protect the environment please do not print this e-mail unless
necessary.



NDS Limited. Registered Office: One London Road, Staines, Middlesex,
TW18 4EX, United Kingdom. A company registered in England and Wales.
Registered no. 3080780. VAT no. GB 603 8808 40-00

************************************************************************
**************




This message is confidential and intended only for the addressee. If you
have received this message in error, please immediately notify the
postmaster at nds.com and delete it from your system as well as any copies.
The
 content of e-mails as well as traffic data may be monitored by NDS for
employment and security purposes.

To protect the environment please do not print this e-mail unless
necessary.



An NDS Group Limited company. www.nds.com

 		 	   		  
_________________________________________________________________
Recibe en tu m?vil un SMS con tu Hotmail recibido. ?Date de alta ya!
http://serviciosmoviles.es.msn.com/
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
http://lists.jboss.org/pipermail/rules-users/attachments/20100310/014970
61/attachment.html 

------------------------------

_______________________________________________
rules-users mailing list
rules-users at lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users


End of rules-users Digest, Vol 40, Issue 41
*******************************************




More information about the rules-users mailing list