Here's one way:

rule "example"
when
    $fact: Type( someField != 42 )
then
    modify( $fact ){
         setSomeField( 42 )
    }
end

Did you read any of the Drools Expert documentation? The necessity of informing the inference engine about changes of fact objects is indeed  discussed, and all three techniques of doing that are covered.

-W




2011/2/25 Jon Gil <jonsprogrammingemail@gmail.com>
Can you please provide the syntax or point me in the direction of an example?


2011/2/25 Greg Barton <greg_barton@yahoo.com>
It's done in the rule action of the first rule.  If you don't inform the engine that the object has updated the second rule can't know about it.


--- On Fri, 2/25/11, Jon Gil <jonsprogrammingemail@gmail.com> wrote:
Subject: Re: [rules-users] Object updated as rules are running
To: "Rules Users List" <rules-users@lists.jboss.org>
Date: Friday, February 25, 2011, 10:14 AM


How do we do that?  Since we are using the rules server, all we are doing is calling with an HTTP call with the object and the rules flow we want to call. We then receive back the results as the HTTP response. 

2011/2/25 Greg Barton <greg_barton@yahoo.com>
Did you notify the engine that your data has been updated?


See section 3.3.3.1.3

--- On Fri, 2/25/11, Jon Gil <jonsprogrammingemail@gmail.com> wrote:

From: Jon Gil <jonsprogrammingemail@gmail.com>
Subject: [rules-users] Object updated as rules are running
To: rules-users@lists.jboss.org
Date: Friday, February 25, 2011, 9:16 AM


Hi, I have a very simple rules flow that I am getting odd results from.  For now, our project is planning on using spreadsheets  and a drools server.
 
The test project we are working on accepts a movie name from an external source and creates a Movie object that is passed to the rules.   The first rule looks at the movieName attribute and assigns it a movieStar using the Movie objects setMovieStar call.  We have printLn statements before and after this action to confirm that it does in fact work. 
 
The second rule, where things go wrong, checks the MovieStar attribute, but no matter what we've just set it to, it always uses the value ("NoStarYet") that was originally created when we create the Movie object in our Java code in the condition of our second rule.  We've tried using the getMovieStar call in the condition, but it has been throwing errors when we startup the Drools Server.
 
When we retreive the Movie object from the resultSet, the movieStar attribute is set correclty, but we can't get our flow to go as expected. 
 
This really seems like a simple issue, but we've had no luck with it.  Any thoughts?  Does the rules engine use the getter methods for conditions or does it use the values from the entityXML we pass in?  Is there a way to make the engine update the object between running each rule? 
 
Any help is appreciated greatly.

-----Inline Attachment Follows-----


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


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



-----Inline Attachment Follows-----

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


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



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