Hello James,
the rule attribute lock-on-active might be what you are looking for.
-W

2009/9/23 Nord, James <JNord@nds.com>
Hi all,
 
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)
 
e.g. consider the following two contrived simple rules:
 
rule "addPriorityPrefix"
 dialect "java"
 no-loop true
 when
  $work : Work (priority >= 200)
 then
  modify($work) {
   setTitle("!!! " + getTitle());
  };
end
 
rule "re-assign low priority tasks"
 dialect "java"
 no-loop true
 when
  $work : Work (priority < -200)
 then
  modify($work) {
   setOwner("nobody");
  };
end
 
What I end up with is an infinte loop. 
 
Whilst for the simple case I can re-write them like
    $work : Work (priority >= 200, !title.startWith("!!!"))
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?
 
How would you do the banking interest example?
rule "interest calculation"
  no-loop
  when
    $account : Account( )
  then
    modify($account) {
      setBalance((long)($account.getBalance() * 1.01) )
    };
end
 
if there was another rule that if you where a gold customer and payed in > $500 the previous month then you get $4 bonus?
rule "gold bonus"
  no-loop
  when
    $account : Account(type="gold", previousMonthDeposit > 500 )
  then
    modify($account) {
      setBalance((long)($account.getBalance() + 4) )
    };
end
 
Regards,
 
    /James

**************************************************************************************
This message is confidential and intended only for the addressee. If you have received this message in error, please immediately notify the postmaster@nds.com 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.

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
**************************************************************************************

_______________________________________________
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users