[rules-users] How to check for a variable number of "conditions" ina rule?

Edson Tirelli tirelli at post.com
Wed Jul 23 14:40:24 EDT 2008


   Ron, if your global is set before ***asserting facts**** to the working
memory and not changed anymore, you can use it.
   Also, make sure your array or whatever is an attribute of a class, and so
has some semantic to it.

   You can do things like this:

when
    MyArrayContainer( $flags : flags )
    Number( intValue >= SOME_GLOBAL_THRESHOLD ) from
          accumulate( $f : Flag( value == SOME_GLOBAL_VALUE ) from $flags,
                             count( $f ) )
then
   // threshold met
end

    Another options is just create a holder class for your globals and
assert it as a fact instead of using globals:

when
    MyParameters( $threshold : threshold, $value : value )
    MyArrayContainer( $flags : flags )
    Number( intValue >= $threshold ) from
          accumulate( $f : Flag( value == $flags ) from $flags,
                             count( $f ) )
then
   // threshold met
end


    Hope it helps,
       Edson


2008/7/23 Ron Kneusel <oneelkruns at hotmail.com>:

>
> Mike,
>
> I think the collect will work, I'll have to look at it more closely because
> the ordering of elements in the array is significant so I'm not sure I can
> just break the elements up into facts and let collect group them however it
> will.
>
> As a follow up, while my solution of using a global in the LHS works, is
> the problem with changing the global simply that the engine will not see the
> changes?  For my case, the global is set before the rules engine is called
> and it will not change while the engine runs.
>
> Ron
>
> Mike wrote:
>
> >Have a look at the "Alarms" example for "Collect" in the (4.0.5) manual.
> >
> >This should give you a good starting point.
> >
> >Cheers,
> >
> >Mike
>
> _________________________________________________________________
> With Windows Live for mobile, your contacts travel with you.
>
> http://www.windowslive.com/mobile/overview.html?ocid=TXT_TAGLM_WL_mobile_072008
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>



-- 
Edson Tirelli
JBoss Drools Core Development
JBoss, a division of Red Hat @ www.jboss.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20080723/bc5ba246/attachment.html 


More information about the rules-users mailing list