You say that the first rule is working, but then you also write that
if the first event is a RawEvent neither one works. Isn't this a
contradiction?
According to the definition and using "t" for "timestamp", we have
A after[x,y] B
equalling, by definition
x <= A.t - B.t <= y
or
B.t + x <= A.t <= B.t + y
and with [x,y] set to [0,90s] we have
B.t <= A.t <= B.t + 90
(A before[x,y] B is the same except for exchanging the roles of A and B.)
However, any RawEvent R inhibits both rules from firing, since it matches
both the pattern after $start and the pattern after "not": its "id"
is
necessarily the same and clearly
R.t <= R.t <= R.t + 90
Try adding
not RawEvent( this != $start, id == $start.id,...
-W
On 1 September 2012 17:28, Rob21 <rob.perrez(a)gmail.com> wrote:
Hi all,
I try to detect the beginning of a scenario which is characterized by an
event happening after no other event of the same type has happened in the
last 90sec.
I can't understand why only the first of those two rules is working.
rule "Detect Scenario beginning"
when
$start : RawEvent()
not RawEvent(id == $start.id, $start after[0ms, 90s] this)
then
System.out.println($start);
end
rule "Detect Scenario beginning alt"
when
$start : RawEvent()
not RawEvent(id == $start.id, this before[0ms, 90s] $start)
then
System.out.println($start);
end
Moreover if the first sent event is a rawEvent none of them will detect it.
Where am i wrong ? (still a beginner with drools)
PS : I already posted it on the forum, but i forgot to complete all the
subscription steps so it was rejected. Sorry for the double post.
--
View this message in context:
http://drools.46999.n3.nabble.com/before-after-behavior-for-negative-patt...
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