Hello James,<br>the rule attribute <span class="term"><a id="d0e3448">lock-on-active might be what you are looking for.</a></span><br>-W<br><br><div class="gmail_quote">2009/9/23 Nord, James <span dir="ltr"><<a href="mailto:JNord@nds.com">JNord@nds.com</a>></span><br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div>
<div><span><font size="2" face="Arial">Hi
all,</font></span></div>
<div><span><font size="2" face="Arial"></font></span> </div>
<div><span><font size="2" face="Arial">It seems to me that
the no-loop only prevents a rule from triggering itself - and doesn't make the
rule only fire once (which is what I'm after)</font></span></div>
<div><span><font size="2" face="Arial"></font></span> </div>
<div><span><font size="2" face="Arial">e.g. consider the
following two contrived simple rules:</font></span></div>
<div><span><font size="2" face="Arial"></font></span> </div>
<blockquote dir="ltr" style="margin-right: 0px;">
<div><span><font size="2" face="Arial">rule
"addPriorityPrefix"<br> dialect "java"<br> no-loop
true<br> when<br> $work : Work (priority >=
200)<br> then<br> modify($work)
{<br> setTitle("!!! " +
getTitle());<br> };<br>end</font></span></div>
<div> </div>
<div><span><font size="2" face="Arial">rule "re-assign
low priority tasks"<br> dialect "java"<br> no-loop
true<br> when<br> $work : Work (priority <
-200)<br> then<br> modify($work)
{<br> setOwner("nobody");<br> };<br>end</font></span><span><font size="2" face="Arial"></font></span></div></blockquote>
<div><span><font size="2" face="Arial"></font></span> </div>
<div><span><font size="2" face="Arial">What I end up with
is an infinte loop. </font></span></div>
<div><span><font size="2" face="Arial"></font></span> </div>
<div><span><font size="2" face="Arial">Whilst for the
simple case I can re-write them like </font></span></div>
<div><span><font size="2" face="Arial">
$work : Work (priority >= 200,
!title.startWith("!!!"))<br></font></span></div>
<div><span><font size="2" face="Arial">however with the
more complex rules this makes the rules get very complex quickly and less easy
to write. Is there a way to prevent these loops - have I misunderstood or do you
really need to check everything in the rule that you may
set?</font></span></div>
<div><span><font size="2" face="Arial"></font></span> </div>
<div><span><font size="2" face="Arial">How would you do the
banking interest example?</font></span></div>
<blockquote dir="ltr" style="margin-right: 0px;">
<div><span><font size="2" face="Arial">rule "interest
calculation"<br> no-loop<br> when<br> $account :
Account( )<br> then<br> modify($account)
{<br> setBalance((long)($account.getBalance() *
1.01) )<br> };<br>end</font></span></div></blockquote>
<div><span><font size="2" face="Arial"></font></span> </div>
<div><span><font size="2" face="Arial">if there was another
rule that if you where a gold customer and payed in > $500 the previous month
then you get $4 bonus?</font></span></div>
<blockquote dir="ltr" style="margin-right: 0px;">
<div><span><font size="2" face="Arial">rule "gold
bonus"<br> no-loop<br> when<br> $account :
Account(type="gold", previousMonthDeposit > 500 )<br>
then<br> modify($account)
{<br> setBalance((long)($account.getBalance() +
4) )<br> };<br>end</font></span></div></blockquote>
<div><span></span> </div>
<div><span><font size="2" face="Arial">Regards,</font></span></div>
<div><span><font size="2" face="Arial"></font></span> </div>
<div><span><font size="2" face="Arial">
/James</font></span></div><br>**************************************************************************************<br>This message is confidential and intended only for the addressee. If you have received this message in error, please immediately notify the <a href="mailto:postmaster@nds.com" target="_blank">postmaster@nds.com</a> and delete it from your system as well as any copies. The content of e-mails as well as traffic data may be monitored by NDS for employment and security purposes. To protect the environment please do not print this e-mail unless necessary.<br>
<br>NDS Limited. Registered Office: One London Road, Staines, Middlesex, TW18 4EX, United Kingdom. A company registered in England and Wales. Registered no. 3080780. VAT no. GB 603 8808 40-00<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>
<br></blockquote></div><br>