I don't quite get your drift. If I modify N orders, each order with 1 item, I have to activate my rule N*N times. That's really costly.
Regards, Alan -----Original Message----- From: Michael Neale [mailto:[EMAIL PROTECTED] Sent: Wednesday, February 08, 2006 3:39 PM To: [email protected] Subject: Re: [drools-user] How do I control firing of rules ? so you are asserting into working memories orders, and items as "exploded" apart from each other? (if you get my drift). Michael. On 2/9/06, Ho, Alan <[EMAIL PROTECTED]> wrote: > > Hi, > > I'm fairly new to drools, and was curious if there is a way to reduce > the firing of rules. > > Whenever a fact is modified, drools fires all rules who's parameter ( > is the same class type of the fact. > > e. g. > > <rule name="Order Level" salience="1" > > <parameter identifier="order"> > <class>com.blah.shipping.ruleengine.Order</class> > </parameter > > <parameter identifier="item"> > <class>com.blah.shipping.ruleengine.Item</class> > </parameter > > : > : > : > </rule> > > Whenever we modify any fact of type object Item or type Order, this > above rule will fire. > > > Can we somehow specify a parameter based a sub-field of an object. > Something like > > <rule name="Order Level" salience="1" > > <parameter identifier="order"> > <class>com.blah.shipping.ruleengine.Order</class> > </parameter > > <parameter identifier="Item"> > <instance>order.orderItem</instance> > </parameter > > : > : > : > </rule> > > Where order.orderItem is of type Item. In this scenario, the rule will > only fire when an order fact or order.orderItem is modifed. > > Right now, to emulate the behaviour I am looking for, I am doing a > check in a rule condition: > > > <rule name="Order Level" salience="1" > > <parameter identifier="order"> > <class>com.blah.shipping.ruleengine.Order</class> > </parameter > > <parameter identifier="item"> > <class>com.blah.shipping.ruleengine.Item</class> > </parameter > > > <java:condition>order.orderItem == item</java:condition> > > : > : > : > </rule> > > Thanks, > Alan Ho > >
