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@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@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-dev