<div dir="ltr">thanks.. that worked :-)</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Mar 12, 2014 at 12:20 AM, Davide Sottara <span dir="ltr"><<a href="mailto:dsotty@gmail.com" target="_blank">dsotty@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
<div>No, the combination of accumulate/count
+ over should be fine (I didn't check though).<br>
The problem is that you are simply creating the Events, but not
inserting them in the wm.<br>
You need to add insert(event) to your rules<div><div class="h5"><br>
<br>
<br>
On 03/11/2014 07:39 PM, grules wrote:<br>
</div></div></div>
<blockquote type="cite"><div><div class="h5">
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">I
think you have to follow the structure of accumulate
function. Like
<u></u><u></u></span></p>
<p class="MsoNormal" style="line-height:13.65pt;background:whitesmoke;vertical-align:baseline"><b><i><span><result pattern></span></i></b><span> from accumulate(
</span><b><i><span><source pattern></span></i></b><span>,<u></u><u></u></span></p>
<p class="MsoNormal" style="line-height:13.65pt;background:whitesmoke;vertical-align:baseline"><span>
init(
</span><b><i><span><init code></span></i></b><span> ),<u></u><u></u></span></p>
<p class="MsoNormal" style="line-height:13.65pt;background:whitesmoke;vertical-align:baseline"><span>
action(
</span><b><i><span><action code></span></i></b><span> ),<u></u><u></u></span></p>
<p class="MsoNormal" style="line-height:13.65pt;background:whitesmoke;vertical-align:baseline"><span>
reverse(
</span><b><i><span><reverse code></span></i></b><span> ), (optional)<u></u><u></u></span></p>
<p class="MsoNormal" style="line-height:13.65pt;background:whitesmoke;vertical-align:baseline"><span>
result(
</span><b><i><span><result expression></span></i></b><span> ) )<u></u><u></u></span></p>
<p class="MsoNormal" style="line-height:13.65pt;background:whitesmoke;vertical-align:baseline"><span><u></u> <u></u></span></p>
<p class="MsoNormal" style="line-height:13.65pt;background:whitesmoke;vertical-align:baseline"><span>examples are:<u></u><u></u></span></p>
<p class="MsoNormal" style="line-height:13.65pt;background:whitesmoke;vertical-align:baseline"><span>when<u></u><u></u></span></p>
<p class="MsoNormal" style="line-height:13.65pt;background:whitesmoke;vertical-align:baseline"><span> $order : Order()<u></u><u></u></span></p>
<p class="MsoNormal" style="line-height:13.65pt;background:whitesmoke;vertical-align:baseline"><span> $total : Number( doubleValue
> 100 )
<u></u><u></u></span></p>
<p class="MsoNormal" style="line-height:13.65pt;background:whitesmoke;vertical-align:baseline"><span> from accumulate(
OrderItem( order == $order, $value : value ),<u></u><u></u></span></p>
<p class="MsoNormal" style="line-height:13.65pt;background:whitesmoke;vertical-align:baseline"><span> init(
double total = 0; ),<u></u><u></u></span></p>
<p class="MsoNormal" style="line-height:13.65pt;background:whitesmoke;vertical-align:baseline"><span>
action( total += $value; ),<u></u><u></u></span></p>
<p class="MsoNormal" style="line-height:13.65pt;background:whitesmoke;vertical-align:baseline"><span>
result( total ) )<u></u><u></u></span></p>
<p class="MsoNormal" style="line-height:13.65pt;background:whitesmoke;vertical-align:baseline"><span>then<u></u><u></u></span></p>
<p class="MsoNormal" style="line-height:13.65pt;background:whitesmoke;vertical-align:baseline"><span> # apply discount to $order<u></u><u></u></span></p>
<p class="MsoNormal" style="line-height:13.65pt;background:whitesmoke;vertical-align:baseline"><span>end<u></u><u></u></span></p>
<p class="MsoNormal" style="line-height:13.65pt;background:whitesmoke;vertical-align:baseline"><span><u></u> <u></u></span></p>
<p class="MsoNormal" style="line-height:13.65pt;background:whitesmoke;vertical-align:baseline"><span>As I understand from your code,
<u></u><u></u></span></p>
<p style="line-height:13.65pt;background:whitesmoke;vertical-align:baseline">
<span><span>1.<span style="font:7.0pt "Times New Roman"">
</span></span></span><span>Make List for Event class, because
accumulate will loop through the elements of
List<Event><u></u><u></u></span></p>
<p style="line-height:13.65pt;background:whitesmoke;vertical-align:baseline">
<span><span>2.<span style="font:7.0pt "Times New Roman"">
</span></span></span><span>Init (write action codes, i.e.
initialize value so you will find how many time it got
looped)<u></u><u></u></span></p>
<p style="line-height:13.65pt;background:whitesmoke;vertical-align:baseline">
<span><span>3.<span style="font:7.0pt "Times New Roman"">
</span></span></span><span>Write code inside the block of
action(//code here) and
<u></u><u></u></span></p>
<p style="line-height:13.65pt;background:whitesmoke;vertical-align:baseline">
<span><span>4.<span style="font:7.0pt "Times New Roman"">
</span></span></span><span>Update it in result block i.e.
result(//update here);<u></u><u></u></span></p>
<p class="MsoNormal" style="line-height:13.65pt;background:whitesmoke;vertical-align:baseline"><span><u></u> <u></u></span></p>
<p class="MsoNormal" style="line-height:13.65pt;background:whitesmoke;vertical-align:baseline"><span>Being said, follow the structure 1)
init, 2) action, 3) result as above..<u></u><u></u></span></p>
<p class="MsoNormal" style="line-height:13.65pt;background:whitesmoke;vertical-align:baseline"><span><u></u> <u></u></span></p>
<p class="MsoNormal" style="line-height:13.65pt;background:whitesmoke;vertical-align:baseline"><span><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">From:</span></b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">
Sandhya Sree [via Drools] [<a href="mailto:ml-node+" target="_blank">mailto:ml-node+</a><a href="http://user/SendEmail.jtp?type=node&node=4028640&i=0" rel="nofollow" link="external" target="_blank">[hidden
email]</a>]
<br>
<b>Sent:</b> Tuesday, March 11, 2014 1:51 PM<br>
<b>To:</b> Gopu Shrestha<br>
<b>Subject:</b> [rules-users] sliding window problem<u></u><u></u></span></p>
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<p style="margin-right:0in;margin-bottom:12.0pt;margin-left:0in;line-height:13.35pt;vertical-align:baseline"><span style="font-size:10.5pt;font-family:"Arial","sans-serif"">i
have a class called Event which has the following members
{ name, source, timestamp } with getters ,setters and
constructor. i have a rule file which creates Event
objects whenever a file is added / deleted in a particular
folder. the rule file is as follows<u></u><u></u></span></p>
<pre style="margin-bottom:7.5pt;line-height:13.35pt;background:#eeeeee;vertical-align:baseline;max-height:600px;word-wrap:normal;overflow:auto"><span style="font-size:10.5pt;font-family:Consolas"><u></u> <u></u></span></pre>
<pre style="line-height:13.35pt;background:#eeeeee;vertical-align:baseline"><code><span style="font-family:Consolas;padding:0in;border:none windowtext 1.0pt">rule "new file"<u></u><u></u></span></code></pre>
<pre style="line-height:13.35pt;background:#eeeeee;vertical-align:baseline"><code><span style="font-family:Consolas;padding:0in;border:none windowtext 1.0pt">when<u></u><u></u></span></code></pre>
<pre style="line-height:13.35pt;background:#eeeeee;vertical-align:baseline"><code><span style="font-family:Consolas;padding:0in;border:none windowtext 1.0pt">$p: RuleContext( $old : getOldContext().getContainedFiles(), $new :getNewContext().getContainedFiles())<u></u><u></u></span></code></pre>
<pre style="line-height:13.35pt;background:#eeeeee;vertical-align:baseline"><code><span style="font-family:Consolas;padding:0in;border:none windowtext 1.0pt">RuleContext( $old != $new)<u></u><u></u></span></code></pre>
<pre style="line-height:13.35pt;background:#eeeeee;vertical-align:baseline"><code><span style="font-family:Consolas;padding:0in;border:none windowtext 1.0pt">accumulate( $s : Object( this not memberOf $old ) from $new, $plus : collectList( $s ) ) <u></u><u></u></span></code></pre>
<pre style="line-height:13.35pt;background:#eeeeee;vertical-align:baseline"><code><span style="font-family:Consolas;padding:0in;border:none windowtext 1.0pt">events : Object() from $plus;<u></u><u></u></span></code></pre>
<pre style="line-height:13.35pt;background:#eeeeee;vertical-align:baseline"><code><span style="font-family:Consolas;padding:0in;border:none windowtext 1.0pt">then<u></u><u></u></span></code></pre>
<pre style="line-height:13.35pt;background:#eeeeee;vertical-align:baseline"><code><span style="font-family:Consolas;padding:0in;border:none windowtext 1.0pt">Event event = new Event("new file added",$p.getOldContext().getParent(),new Date());<u></u><u></u></span></code></pre>
<pre style="line-height:13.35pt;background:#eeeeee;vertical-align:baseline"><code><span style="font-family:Consolas;padding:0in;border:none windowtext 1.0pt">end<u></u><u></u></span></code></pre>
<pre style="line-height:13.35pt;background:#eeeeee;vertical-align:baseline"><code><span style="font-family:Consolas;padding:0in;border:none windowtext 1.0pt"><u></u> <u></u></span></code></pre>
<pre style="line-height:13.35pt;background:#eeeeee;vertical-align:baseline"><code><span style="font-family:Consolas;padding:0in;border:none windowtext 1.0pt"><u></u> <u></u></span></code></pre>
<pre style="line-height:13.35pt;background:#eeeeee;vertical-align:baseline"><code><span style="font-family:Consolas;padding:0in;border:none windowtext 1.0pt">rule " file deleted"<u></u><u></u></span></code></pre>
<pre style="line-height:13.35pt;background:#eeeeee;vertical-align:baseline"><code><span style="font-family:Consolas;padding:0in;border:none windowtext 1.0pt">when<u></u><u></u></span></code></pre>
<pre style="line-height:13.35pt;background:#eeeeee;vertical-align:baseline"><code><span style="font-family:Consolas;padding:0in;border:none windowtext 1.0pt">$p: RuleContext( $old : getOldContext().getContainedFiles(), $new:getNewContext().getContainedFiles())<u></u><u></u></span></code></pre>
<pre style="line-height:13.35pt;background:#eeeeee;vertical-align:baseline"><code><span style="font-family:Consolas;padding:0in;border:none windowtext 1.0pt">RuleContext( $old != $new)<u></u><u></u></span></code></pre>
<pre style="line-height:13.35pt;background:#eeeeee;vertical-align:baseline"><code><span style="font-family:Consolas;padding:0in;border:none windowtext 1.0pt">accumulate( $t : Object( this not memberOf $new ) from $old, $mins : collectList( $t ) )<u></u><u></u></span></code></pre>
<pre style="line-height:13.35pt;background:#eeeeee;vertical-align:baseline"><code><span style="font-family:Consolas;padding:0in;border:none windowtext 1.0pt">events : Object() from $mins; <u></u><u></u></span></code></pre>
<pre style="line-height:13.35pt;background:#eeeeee;vertical-align:baseline"><code><span style="font-family:Consolas;padding:0in;border:none windowtext 1.0pt">then<u></u><u></u></span></code></pre>
<pre style="line-height:13.35pt;background:#eeeeee;vertical-align:baseline"><code><span style="font-family:Consolas;padding:0in;border:none windowtext 1.0pt">Event event = new Event("file deleted",$p.getOldContext().getParent(),new Date());<u></u><u></u></span></code></pre>
<pre style="line-height:13.35pt;background:#eeeeee;vertical-align:baseline"><code><span style="font-family:Consolas;padding:0in;border:none windowtext 1.0pt">end <u></u><u></u></span></code></pre>
<p style="margin-right:0in;margin-bottom:12.0pt;margin-left:0in;line-height:13.35pt;vertical-align:baseline"><span style="font-size:10.5pt;font-family:"Arial","sans-serif"">(do
not confuse with RuleContext and other unknown
identifiers.. they r just related with other classes in
the project.. these two rules just works fine )..i need to
use a sliding time window and create another event if the
number of file additions are > 5 over the past 1
minute. my rule file is :<u></u><u></u></span></p>
<pre style="margin-bottom:7.5pt;line-height:13.35pt;background:#eeeeee;vertical-align:baseline;max-height:600px;word-wrap:normal;overflow:auto"><span style="font-size:10.5pt;font-family:Consolas"><u></u> <u></u></span></pre>
<pre style="line-height:13.35pt;background:#eeeeee;vertical-align:baseline"><code><span style="font-family:Consolas;padding:0in;border:none windowtext 1.0pt">declare Event <u></u><u></u></span></code></pre>
<pre style="line-height:13.35pt;background:#eeeeee;vertical-align:baseline"><code><span style="font-family:Consolas;padding:0in;border:none windowtext 1.0pt">@role( event ) <u></u><u></u></span></code></pre>
<pre style="line-height:13.35pt;background:#eeeeee;vertical-align:baseline"><code><span style="font-family:Consolas;padding:0in;border:none windowtext 1.0pt">end <u></u><u></u></span></code></pre>
<pre style="line-height:13.35pt;background:#eeeeee;vertical-align:baseline"><code><span style="font-family:Consolas;padding:0in;border:none windowtext 1.0pt"><u></u> <u></u></span></code></pre>
<pre style="line-height:13.35pt;background:#eeeeee;vertical-align:baseline"><code><span style="font-family:Consolas;padding:0in;border:none windowtext 1.0pt"><u></u> <u></u></span></code></pre>
<pre style="line-height:13.35pt;background:#eeeeee;vertical-align:baseline"><code><span style="font-family:Consolas;padding:0in;border:none windowtext 1.0pt">rule "More than 5 additions"<u></u><u></u></span></code></pre>
<pre style="line-height:13.35pt;background:#eeeeee;vertical-align:baseline"><code><span style="font-family:Consolas;padding:0in;border:none windowtext 1.0pt">when <u></u><u></u></span></code></pre>
<pre style="line-height:13.35pt;background:#eeeeee;vertical-align:baseline"><code><span style="font-family:Consolas;padding:0in;border:none windowtext 1.0pt">Number(intValue > 5) <u></u><u></u></span></code></pre>
<pre style="line-height:13.35pt;background:#eeeeee;vertical-align:baseline"><code><span style="font-family:Consolas;padding:0in;border:none windowtext 1.0pt">from accumulate( $tick : Event ( name == "new file added" ) over window:time( 1m ),</span></code><span style="font-family:Consolas;padding:0in;border:none windowtext 1.0pt">
<code><span style="font-family:Consolas"> count( $tick ) ) )<u></u><u></u></span></code></span></pre>
<pre style="line-height:13.35pt;background:#eeeeee;vertical-align:baseline"><code><span style="font-family:Consolas;padding:0in;border:none windowtext 1.0pt">then <u></u><u></u></span></code></pre>
<pre style="line-height:13.35pt;background:#eeeeee;vertical-align:baseline"><code><span style="font-family:Consolas;padding:0in;border:none windowtext 1.0pt"> System.out.println("too many additions"); <u></u><u></u></span></code></pre>
<pre style="line-height:13.35pt;background:#eeeeee;vertical-align:baseline"><code><span style="font-family:Consolas;padding:0in;border:none windowtext 1.0pt">end <u></u><u></u></span></code></pre>
<p style="margin-right:0in;margin-bottom:12.0pt;margin-left:0in;line-height:13.35pt;vertical-align:baseline"><span style="font-size:10.5pt;font-family:"Arial","sans-serif"">i
have enabled stream mode processing too.. but it doesnt
seem to work. what could be the problem?<u></u><u></u></span></p>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><br>
_______________________________________________ <br>
rules-users mailing list <br>
<a href="http://user/SendEmail.jtp?type=node&node=4028639&i=0" rel="nofollow" link="external" target="_blank">[hidden email]</a>
<br>
<a href="https://lists.jboss.org/mailman/listinfo/rules-users" rel="nofollow" link="external" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a>
<u></u><u></u></p>
<div class="MsoNormal" style="text-align:center" align="center">
<hr style="color:#cccccc" align="center" noshade size="1" width="100%">
</div>
<div>
<div>
<p class="MsoNormal"><b><span style="font-size:9.0pt;font-family:"Tahoma","sans-serif";color:#444444">If
you reply to this email, your message will be added to
the discussion below:<u></u><u></u></span></b></p>
</div>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Tahoma","sans-serif";color:#444444"><a href="http://drools.46999.n3.nabble.com/rules-users-sliding-window-problem-tp4028639.html" rel="nofollow" link="external" target="_blank">http://drools.46999.n3.nabble.com/rules-users-sliding-window-problem-tp4028639.html</a>
<u></u><u></u></span></p>
</div>
<div style="margin-top:4.8pt">
<p class="MsoNormal" style="line-height:18.0pt"><span style="font-size:8.5pt;font-family:"Tahoma","sans-serif";color:#666666">To
start a new topic under Drools: User forum, email
<a href="http://user/SendEmail.jtp?type=node&node=4028640&i=1" rel="nofollow" link="external" target="_blank">[hidden
email]</a>
<br>
To unsubscribe from Drools, <a rel="nofollow" link="external">
click here</a>.<br>
<a href="http://drools.46999.n3.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml" rel="nofollow" link="external" target="_blank"><span>NAML</span></a>
<u></u><u></u></span></p>
</div>
</div>
<br>
<hr align="left" width="300">
View this message in context: <a href="http://drools.46999.n3.nabble.com/RE-rules-users-sliding-window-problem-tp4028640.html" target="_blank">RE:
[rules-users] sliding window problem</a><br>
Sent from the <a href="http://drools.46999.n3.nabble.com/Drools-User-forum-f47000.html" target="_blank">Drools:
User forum mailing list archive</a> at Nabble.com.<br>
<br>
<fieldset></fieldset>
<br>
</div></div><pre>_______________________________________________
rules-users mailing list
<a href="mailto:rules-users@lists.jboss.org" target="_blank">rules-users@lists.jboss.org</a>
<a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a></pre>
</blockquote>
<br>
</div>
<br>_______________________________________________<br>
rules-users mailing list<br>
<a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br></blockquote></div><br></div>