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">&lt;<a href="mailto:JNord@nds.com">JNord@nds.com</a>&gt;</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&#39;t make the 
rule only fire once (which is what I&#39;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 
  &quot;addPriorityPrefix&quot;<br> dialect &quot;java&quot;<br> no-loop 
  true<br> when<br>  $work : Work (priority &gt;= 
  200)<br> then<br>  modify($work) 
  {<br>   setTitle(&quot;!!! &quot; + 
  getTitle());<br>  };<br>end</font></span></div>
  <div> </div>
  <div><span><font size="2" face="Arial">rule &quot;re-assign 
  low priority tasks&quot;<br> dialect &quot;java&quot;<br> no-loop 
  true<br> when<br>  $work : Work (priority &lt; 
  -200)<br> then<br>  modify($work) 
  {<br>   setOwner(&quot;nobody&quot;);<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 &gt;= 200, 
!title.startWith(&quot;!!!&quot;))<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 &quot;interest 
  calculation&quot;<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 &gt; $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 &quot;gold 
  bonus&quot;<br>  no-loop<br>  when<br>    $account : 
  Account(type=&quot;gold&quot;, previousMonthDeposit &gt; 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>