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
>
>

Reply via email to