Hi,

 

I’m new to Drools and currently trying to implement some examples using CEP / Fusion. I got stuck on a problem to which I can’t find any solution in the online documentation, so I’m hoping for your help.

I’m trying to write a rule, which is activated whenever a certain event occurs and no event of the same type occurred in the e.g. last 5 minutes (or just at the same time). I know how to do it if these are events of different types, but I can’t find any way for events of the same type. What I tried is something like that:

 

$error : RouterErrorEvent ( $name : routerName ) from entry-point "abc"

not ($otherError : RouterErrorEvent ( (this coincides $error) && (routerName == $name) ) from entry-point "abc")

 

First of all there’s the problem, that $error and $otherError will be the same instance if a “RouterEventError” has been inserted from the “abc” entry point. Adding a (this != $error) to the second, ($otherError) obviously is no solution to that as well.

If it were two different events something like in example 2.19 would work:

 

$error1 : ErrorOneEvent( $id : id )

not ($error2 : ErrorTwoEvent( id == $id, this coincides $error1 ))

 

I’m kinda sure I’m missing something pretty “easy” here… or is this approach completely wrong?

As I’m aware of the fact that I couldn’t be more of a newbie J I would appreciate any suggestions for nice tutorials or further reading as well!

 

Thanks in advance!

 

Georg