[rules-users] Creating objects in WHEN clause

David Boaz davidb at dbmotion.com
Wed Feb 25 14:02:32 EST 2009


Thanks,
These Quantity and Duration objects are commonly used in our application. My
concern is from the software-engineering prespective. Now, the rule author
(which is supposed to be a "domain expert") has to maintain the information
twice: once when inserting these objects to the working memory (at the
initialization), and then when writing the concrete rules.
Im looking for a trick to make the rule-aurhor life more convienient...

Greg Barton wrote:
> 
> I'd second this idea, and to get around the inconcenience of inserting the
> Quantity objects from the calling application, use a rule that fires once
> on initialization.
> 
> rule
> no-loop true
> when
> //No condition
> then 
>   insert(new Quantity("m", 2));
> end
> 
> This rule should fire first.  You could also put it in it's own
> agenda-group (call it "initialization" or some such) and set focus to that
> group when starting.
> 
> rule
> agenda-group "initialization"
> no-loop true
> when
> //No condition
> then 
>   insert(new Quantity("m", 2));
>   drools.setFocus("whatever_your_next_group_is");
> end
> 
> --- On Wed, 2/25/09, Mauricio Salatino <salaboy at gmail.com> wrote:
> 
>> From: Mauricio Salatino <salaboy at gmail.com>
>> Subject: Re: [rules-users] Creating objects in WHEN clause
>> To: "Rules Users List" <rules-users at lists.jboss.org>
>> Date: Wednesday, February 25, 2009, 11:40 AM
>> How about :
>>  WHEN
>> $quantity: Quantity(value == 2, unit == "m")
>> $Person($height == $quantity:)
>> then
>> ...
>> 
>> 
>> 
>> On Wed, Feb 25, 2009 at 2:27 PM, David Boaz
>> <davidb at dbmotion.com> wrote:
>> >
>> > In my application, we often compare the fact's
>> field values against a known
>> > object. For example:
>> > WHEN person(height> new Quantity(2, "m"))
>> // the height is greater than 2
>> > meters.
>> > will DROOLS create a "singleton" Quantity
>> object, or will it create one
>> > object for each fact evaluation?
>> >
>> > We consider using anoter approach, using GLOBALS.
>> Then, the Quantity object
>> > will be created applicatively, and passed by the API
>> to the engine.
>> > something like:
>> > GLOBAL Quantity 2meters
>> > WHEN person(height > 2meters)
>> > But this approach is combersom, because the rule
>> author has to define part
>> > of the information in the calling application, and
>> part in the rule.
>> >
>> > Do you have a good practice how to handle these
>> situations?
>> >
>> > Thanks, David
>> > --
>> > View this message in context:
>> http://www.nabble.com/Creating-objects-in-WHEN-clause-tp22207616p22207616.html
>> > Sent from the drools - user mailing list archive at
>> Nabble.com.
>> >
>> > _______________________________________________
>> > rules-users mailing list
>> > rules-users at lists.jboss.org
>> > https://lists.jboss.org/mailman/listinfo/rules-users
>> >
>> 
>> 
>> 
>> -- 
>>  - Salatino Mauricio -
>> _______________________________________________
>> rules-users mailing list
>> rules-users at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/rules-users
> 
> 
>       
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
> 
> 

-- 
View this message in context: http://www.nabble.com/Creating-objects-in-WHEN-clause-tp22207616p22209417.html
Sent from the drools - user mailing list archive at Nabble.com.




More information about the rules-users mailing list