You must notify the inference engine that a fact has changed.

  modify( $testDrools ){ setMyValue("1") }

or some other way. Please check the documentation ("Expert"), section "The Right Hand Side (then)" and other places.

-W



2011/5/12 Nico ROEDERER <ino.nicolas@gmail.com>
Hi,

I've got a little question. I've got a drl file which contains two rules :

rule "FirstRule"
    salience 99
    when
        $testDrools : TestDroolsDto()       
        eval ( 1 == 1 )
    then
        System.out.println("Set my value to 1");
        $testDrools.setMyValue("1");
       
end

rule "SecondRule"
    salience 1
    when
        $testDrools : TestDroolsDto()       
        eval( $testDrools.getMyValue().equals("") )
    then
        System.out.println("My Value : " + $testDrools.getMyValue() );
end

Is it normal that in my second rule is verified ?
->
eval( $testDrools.getMyValue().equals("") ) is true
but :
System.out.println("My Value : " + $testDrools.getMyValue() ); show me that myValue == 1

Perhaps I did something wrong ?

Thanks for your helping me.
N.



PS : Here is me TestDroolsDto :
public class TestDroolsDto {
    private String myValue;

    public TestDroolsDto() {
        myValue="";
    }
   
    public String toString() {
        return " --> " + myValue;
    }
   
    /**
    * @return the myValue
    */
   public String getMyValue() {
       if ( myValue == null ) {
           myValue = "";
       }
       return myValue;
   }

    /**
    * @param myValue the myValue to set
    */
   public void setMyValue( String myValue ) {
       this.myValue = myValue;
   }
}


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