Variable e scope is the accumulate. You can't use it outside. But think
about it for a second, when your rule is activated, variable e (if it would
be possible to access it from the RHS) will have at least 6 different
values. Which value do you want to use?
One possible (of many) solution could be to 'collect' all your events
instead of counting them:
rule "Reset alarm"
when
a : Alarm()
c : Set( size > 5) from accumulate (
e : Event( level < 6) over window:time(10s) from
entry-point "queue",
collectSet(e)
)
then
//All the Event objects matching the LHS are going to be in the set.
channels["reset"].send("Alarm resolved.");
end
Regards,
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Esteban Aliverti
- Blog @
http://ilesteban.wordpress.com
On Tue, Nov 5, 2013 at 11:38 PM, webfrank <webfrank(a)tiscali.it> wrote:
Hi,
I have a rule with a "from accumulate" where I bind "e" variable
to
Event
object. I would like to pass "e" to
send method of channel like: channels["reset"].send(e); but I got a Rule
Compilation error with: "e cannot be resolved". Why I cannot access
variable
"e" when defined inside from accumulate?
rule "Reset alarm"
when
a : Alarm()
c : Number( intValue > 5) from accumulate (
e : Event( level < 6) over window:time(10s) from
entry-point "queue",
count(e)
)
then
channels["reset"].send("Alarm resolved.");
end
--
View this message in context:
http://drools.46999.n3.nabble.com/bound-variable-scope-tp4026652.html
Sent from the Drools: User forum mailing list archive at
Nabble.com.
_______________________________________________
rules-users mailing list
rules-users(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users