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(a)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_...
_______________________________________________
rules-users mailing list
rules-users(a)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