Think about the logic you have written.
length(3) does not mean that it must have 3, but that it is the last
three. So it could be 0, 1, 2 or 3 in length.
As soon s you have 1, 2, or 3 insertions if any one of those creates an
average of > 30 the rule fires.
So you are inserting a ZZZBean that creates an average, even if it's an
average with a count of 1, over 30.
Mark
On 18/10/2011 07:20, eskomk wrote:
Hi all,
Here is the rule:
CLIP -->
rule "ZZZOver30" dialect "mvel"
when
$tsb : ZZZBean($prof : profileID)
$avg : Number( doubleValue> 30 ) from accumulate(
ZZZBean( $tempr : temperature, profileID == $prof) over
window:length( 3 ),
average( $tempr ) )
then
// do something
end
CLIP<--
The intention as you can see is that the rule fires if the average
temperature rises above 30 degrees (of Celsius) in some measuring period.
For testing purposes the rule takes a specific number of temperatures
(window:length), in production environment the window will be time
(window:time(Xm)).
My question is, why this rule fires immediately after drools-expert is
started ?
Is there something wrong in syntax ?
In startup there are obviously no objects of this kind (ZZZBean) in Working
Set's memory, so it really shouldn't fire.
We are running Drools ver. 5.1.1 as a web service on top of apache, and the
facts (events) are fed to Drools via REST interface as XML.
thanks and regards,
Esko
-----
Esko Hujanen
www.ebsolut.fi
--
View this message in context:
http://drools.46999.n3.nabble.com/Why-this-rule-fires-immediately-tp34304...
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