Chris, Not sure what you mean. If you want to know what is in there for debug purposes, I guess the best way is to implement your own average() accumulate function that prints out (or do whatever you want) with the bound variables/facts.
For regular use, it does not makes sense to allow access to such variable because it is bound to multiple values. For instance: $tot : Number() from accumulate( Order( $value : value ), sum( $value ) ) This pattern will sum all the values from all the Order facts in the working memory. Lets imagine that it would be possible to access the $value variable outside the accumulate, what Order would it be bound to? So, it makes no sense... []s Edson 2009/6/17 Chris Richmond <crichm...@referentia.com> > So how can I access variables that I have populated from within that > scope delimiter(accumulate)? For instance if I did want to access the > delayTime, what strategy should be used? > > > > Thanks, > > > Chris > ------------------------------ > > *From:* rules-users-boun...@lists.jboss.org [mailto: > rules-users-boun...@lists.jboss.org] *On Behalf Of *Edson Tirelli > *Sent:* Wednesday, June 17, 2009 11:49 AM > *To:* Rules Users List > *Subject:* Re: [rules-users] averages on different data types > > > > > Chris, > > Remember that accumulate is a scope delimiter, meaning variables bound > inside accumulate are not visible outside of it. The error message you see > is the MVEL way of saying: non-existing variable (I guess you are using mvel > as the dialect for the consequence). > > If you want to know what data objects are being inserted/expired from > the working memory, use a working memory listener. > > []s > Edson > > 2009/6/17 Chris Richmond <crichm...@referentia.com> > > Hi guys, > > > > Building from the stockticker sample, I have been running my own average > aggregates over time and window length and I have the following ruleā¦it > simply runs a last 10 average and outputs the average(in theory). > > > > rule "show averages" > > when > > > > $n : Number( doubleValue > 0 ) from accumulate ( > > > > > > > > $mdo : MyDataObject($tm: delayTime) over window:length(10) from > entry-point "DataObject stream", > > average( $tm ) > > > > ) > > > > > > then > > > > System.err.println($tm); > > > > End > > > > I have set the limit to 0 for the average because I simply want to have it > fire every time, no matter the average(they are all positive) > > > > > > However I get this error: > > > > Unable to build expression for 'consequence': Failed to compile: 1 > compilation error(s): > > - (1,3) unqualified type in strict mode for: $tm ' > > System.err.println($tm); > > ' : [Rule name='show averages'] > > > > > > If I have the consequence > > > > System.err.println($n); > > > > Then it outputs the average no problem, but I am trying to simply output > that indifidual value, delayTime which I have stored in $tm is an integer, > so I cannot figure out why I cannot output this value. Similarly if I > simply try as a consequence: > > > > System.err.println($ mdo.delayTime); > > > > I get a similar error. > > > > What am I doing wrong? > > > > Thanks, > > > Chris > > > _______________________________________________ > rules-users mailing list > rules-users@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 > > _______________________________________________ > rules-users mailing list > rules-users@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
_______________________________________________ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users