[rules-dev] eval problem

Nico ROEDERER ino.nicolas at gmail.com
Tue Mar 1 04:15:41 EST 2011


(1) -> yes because when I print the value, the value is correct ( = 2 ). 
Not the eval.
(2) -> yes, true. My list is in alphabtic mode...
(3) -> Every test I make made the wrong result

eval( $patient.getNbFactRisque() == 0)
or $patient : PatientDto( nbFactRisque == 0 ) ...
---> Why does those test are true dispite nbFactRisque = 2 ????

*It works fine when I run x time drools (one call for one rule) but it 
doesn't work when I run one time with a List of rules.*

Can you tell me the right mailing list for those problems ?


Le 01/03/2011 10:03, Wolfgang Laun a écrit :
> Please do not use this list for simple questions - it is reserved for 
> discussion Drools development itself.
>
> (1) Did you inform the Drools engine about incrementing nbFactRisque?
> (2) There is no such thing as "alphabetic mode" for rule execution.
> (3) Why do you use eval when you can test the fact field?
>
> Indication: Drools Expert manual, three times per day ;-)
> -W
>
>
> On 1 March 2011 09:17, Nico ROEDERER <ino.nicolas at gmail.com 
> <mailto:ino.nicolas at gmail.com>> wrote:
>
>     Hi,
>
>     I've got an other problem with an eval function.
>     I will try to discribe the path to the error.
>
>     I've got a repository where some people can put rules with .drl
>     extension.
>     My program is listing this repository and execute every rule in
>     this repository.
>
>     At the begining, I've got a 'PatientDto' who have a property :
>     int nbFactRisque;
>     (with getters and setters)
>
>     Some rules increments this number.
>
>     In the last rule (the rules are executed in alphabetic mode) I'm
>     testing this number like this :
>
>     rule "RisqueNormal"
>         when
>             $patient : PatientDto()
>             eval( $patient.getNbFactRisque() == 0)
>         then
>             $patient.addDonnees( Constants.CLE_RISQUEPATIENT,
>     Constants.RISQUE_NORMAL );
>             System.out.println("RisqueNormal vérifié." +
>     $patient.getNbFactRisque() + "Facteurs.");
>     end
>
>     Here's my problem :
>     The 'Then' traitement is always executed so the eval always think
>     that $patient.getNbFactRisque() is equal to 0.
>     But the system.out.println() show me that
>     $patient.getNbFactRisque()  = 2 !
>
>     Here's the output : "RisqueNormal vérifié.2Facteurs.".
>
>     Perhaps I did something wrong ? Can someone help me ?
>     Thank you.
>
>     _______________________________________________
>     rules-dev mailing list
>     rules-dev at lists.jboss.org <mailto:rules-dev at lists.jboss.org>
>     https://lists.jboss.org/mailman/listinfo/rules-dev
>
>
>
> _______________________________________________
> rules-dev mailing list
> rules-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-dev/attachments/20110301/afd90e6a/attachment-0001.html 


More information about the rules-dev mailing list