<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<META content="MSHTML 6.00.2900.2873" name=GENERATOR></HEAD>
<BODY>
<DIV dir=ltr align=left><SPAN class=388515515-05072007><FONT face=Arial 
color=#0000ff size=2>Hi Smitha,</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=388515515-05072007><FONT face=Arial 
color=#0000ff size=2></FONT></SPAN>&nbsp;</DIV>
<DIV dir=ltr align=left><SPAN class=388515515-05072007><FONT face=Arial 
color=#0000ff size=2>The "when" part of rules causes activations to be created 
on an agenda <STRONG>at the time the facts are 
asserted</STRONG>.</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=388515515-05072007><FONT face=Arial 
color=#0000ff size=2></FONT></SPAN>&nbsp;</DIV>
<DIV dir=ltr align=left><SPAN class=388515515-05072007><FONT face=Arial 
color=#0000ff size=2>When a call to fireAllRules() is made, activations on the 
agenda are fired (the "then" part of the rule). The order in which the 
activations are executed is governed by "conflict resolution" 
strategies.</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=388515515-05072007><FONT face=Arial 
color=#0000ff size=2></FONT></SPAN>&nbsp;</DIV>
<DIV dir=ltr align=left><SPAN class=388515515-05072007><FONT face=Arial 
color=#0000ff size=2>If you want the "then" part of your rules to fire in a 
certain sequence look at "salience" (the simplest form), or Agenda Groups and 
RuleFlow (in increasing levels of complexity).</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=388515515-05072007><FONT face=Arial 
color=#0000ff size=2></FONT></SPAN>&nbsp;</DIV>
<DIV dir=ltr align=left><SPAN class=388515515-05072007><FONT face=Arial 
color=#0000ff size=2>Good luck - JBoss Rules (or whatever new name it might be 
given - Mark?) is an excellent product that I am sure you will enjoy 
using.</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=388515515-05072007><FONT face=Arial 
color=#0000ff size=2></FONT></SPAN>&nbsp;</DIV>
<DIV dir=ltr align=left><SPAN class=388515515-05072007><FONT face=Arial 
color=#0000ff size=2>With kind regards,</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=388515515-05072007><FONT face=Arial 
color=#0000ff size=2></FONT></SPAN>&nbsp;</DIV>
<DIV dir=ltr align=left><SPAN class=388515515-05072007><FONT face=Arial 
color=#0000ff size=2>Mike</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=388515515-05072007><FONT face=Arial 
color=#0000ff size=2></FONT></SPAN>&nbsp;</DIV><BR>
<BLOCKQUOTE style="MARGIN-RIGHT: 0px">
  <DIV class=OutlookMessageHeader lang=en-us dir=ltr align=left>
  <HR tabIndex=-1>
  <FONT face=Tahoma size=2><B>From:</B> rules-users-bounces@lists.jboss.org 
  [mailto:rules-users-bounces@lists.jboss.org] <B>On Behalf Of </B>Smitha 
  Bhat<BR><B>Sent:</B> 05 July 2007 16:43<BR><B>To:</B> 
  rules-users@lists.jboss.org<BR><B>Subject:</B> [rules-users] order of rules 
  firing<BR></FONT><BR></DIV>
  <DIV></DIV>
  <DIV>Hi,</DIV>
  <DIV>I am new to JBoss rules.</DIV>
  <DIV>My drl file is not resulting in the functionality that I am expecting. 
  </DIV>
  <DIV>I know that I shouldn't be counting on the rules firing in a particular 
  order, but I find that as I debug my code, the 'when' of the 3 rules are 
  evaluated first, and then the 'then's. For eg. the SetWatch gets called after 
  DistanceKm(Rule1), DistanceKm(Rule2) and CountWatching(rule3)&nbsp;are called. 
  I expected SetWatch to get called after DistanceKm of Rule2 got called i.e. I 
  expected the 'when' and the 'then' to get evaluated sequentially. Is my 
  understanding wrong? I tried setting the salience of the 3 rules, but I get 
  the same behaviour. Is there something else I need to do, to get the 
  functionality I need?</DIV>
  <DIV>&nbsp;</DIV>
  <DIV>Thanks</DIV>
  <DIV>&nbsp;</DIV>
  <DIV>The&nbsp;3 rules in my drl as given below.</DIV>
  <DIV>&nbsp;</DIV><FONT size=2>
  <DIV>rule "Rule1"</DIV>
  <DIV>when</DIV>
  <DIV>$GeoPosition1 : GeoPosition()</DIV>
  <DIV>$GeoPosition2 : GeoPosition()</DIV>
  <DIV>eval(util.StringEqual($GeoPosition1.getType(), "PRPT")) </DIV>
  <DIV>eval(util.StringEqual($GeoPosition2.getType(), "SI")) </DIV>
  <DIV>eval(util.DistanceKm($GeoPosition1, $GeoPosition2) &gt; 100.0) </DIV>
  <DIV>eval(util.Watching($GeoPosition1, $GeoPosition2))</DIV>
  <DIV>then</DIV>
  <DIV></DIV>
  <DIV>util.ClearWatch($GeoPosition1, $GeoPosition2);</DIV>
  <DIV>end</DIV>
  <DIV>&nbsp;</DIV>
  <DIV>rule "Rule2"</DIV>
  <DIV>when</DIV>
  <DIV>$GeoPosition1 : GeoPosition()</DIV>
  <DIV>$GeoPosition2 : GeoPosition()</DIV>
  <DIV>eval(util.StringEqual($GeoPosition1.getType(), "PRPT")) </DIV>
  <DIV>eval(util.StringEqual($GeoPosition2.getType(), "SI")) </DIV>
  <DIV>eval(util.DistanceKm($GeoPosition1, $GeoPosition2) &lt;= 100.0) </DIV>
  <DIV>eval(! util.Watching($GeoPosition1, $GeoPosition2))</DIV>
  <DIV>then</DIV>
  <DIV></DIV>
  <DIV>util.SetWatch($GeoPosition1, $GeoPosition2);</DIV>
  <DIV>end</DIV>
  <DIV>&nbsp;</DIV>
  <DIV>rule "Rule3"</DIV>
  <DIV>when</DIV>
  <DIV>$GeoPosition1 : GeoPosition()</DIV>
  <DIV>eval(util.StringEqual($GeoPosition1.getType(), "PRPT")) </DIV>
  <DIV>eval(util.CountWatching($GeoPosition1) &gt;= 1)</DIV>
  <DIV>then</DIV>
  <DIV></DIV>
  <DIV>util.SetThreat($GeoPosition1, 1.0);</DIV>
  <DIV>util.SetColor($GeoPosition1, "red");</DIV>
  <DIV>end</DIV></FONT>
  <P>
  <HR SIZE=1>
  Got a little couch potato? <BR>Check out fun <A 
  href="http://us.rd.yahoo.com/evt=48248/*http://search.yahoo.com/search?fr=oni_on_mail&amp;p=summer+activities+for+kids&amp;cs=bz">summer 
  activities for kids.</A></BLOCKQUOTE></BODY></HTML>