<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.2900.2873" name=GENERATOR></HEAD>
<BODY>
<DIV dir=ltr align=left><SPAN class=975421308-16042007><FONT face=Arial
color=#0000ff size=2>You need to remember that a rule runs every time the
patterns are matched. </FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=975421308-16042007></SPAN><SPAN
class=975421308-16042007><FONT face=Arial color=#0000ff
size=2></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=975421308-16042007><FONT face=Arial
color=#0000ff size=2>For example:-</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=975421308-16042007><FONT face=Arial
color=#0000ff size=2></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=975421308-16042007><FONT face=Arial
color=#0000ff size=2>rule "example"</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=975421308-16042007><FONT face=Arial
color=#0000ff size=2>when</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=975421308-16042007><FONT face=Arial
color=#0000ff size=2> $a : ObjectA()</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=975421308-16042007><FONT face=Arial
color=#0000ff size=2> $b : ObjectB()</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=975421308-16042007><FONT face=Arial
color=#0000ff size=2>then</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=975421308-16042007><FONT face=Arial
color=#0000ff size=2> System.out.println("Rule 'example'
ran");</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=975421308-16042007><FONT face=Arial
color=#0000ff size=2>end</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=975421308-16042007><FONT face=Arial
color=#0000ff size=2></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=975421308-16042007><FONT face=Arial
color=#0000ff size=2>Working Memory:-</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=975421308-16042007><FONT face=Arial
color=#0000ff size=2></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=975421308-16042007><FONT face=Arial
color=#0000ff size=2>1 - ObjectA</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=975421308-16042007><FONT face=Arial
color=#0000ff size=2>2 - ObjectA</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=975421308-16042007><FONT face=Arial
color=#0000ff size=2>3 - ObjectB</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=975421308-16042007><FONT face=Arial
color=#0000ff size=2>4 - ObjectB</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=975421308-16042007><FONT face=Arial
color=#0000ff size=2></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=975421308-16042007><FONT face=Arial
color=#0000ff size=2>The rule will run four times; once for each combination of
ObjectA and ObjectB (1, 3) (1, 4) (2, 3) and (2, 4).</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=975421308-16042007><FONT face=Arial
color=#0000ff size=2></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=975421308-16042007><FONT face=Arial
color=#0000ff size=2>Object models are flattened in Working Memory so if you
need to impose a relationship you need to add this to the rule.
</FONT></SPAN><SPAN class=975421308-16042007><FONT face=Arial color=#0000ff
size=2>For example:-</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=975421308-16042007><FONT face=Arial
color=#0000ff size=2></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=975421308-16042007><FONT face=Arial
color=#0000ff size=2>[one-to-one mapping] ObjectA has one child
ObjectB.</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=975421308-16042007><FONT face=Arial
color=#0000ff size=2>Method suggestion (returns an instance of ObjectB):
ObjectA.getObjectB();</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=975421308-16042007><FONT face=Arial
color=#0000ff size=2></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=975421308-16042007><FONT face=Arial
color=#0000ff size=2>
<DIV dir=ltr align=left><SPAN class=975421308-16042007><FONT face=Arial
color=#0000ff size=2>rule "example"</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=975421308-16042007><FONT face=Arial
color=#0000ff size=2>when</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=975421308-16042007><FONT face=Arial
color=#0000ff size=2>
<DIV dir=ltr align=left><SPAN class=975421308-16042007><FONT face=Arial
color=#0000ff size=2> $b :
ObjectB()</FONT></SPAN></DIV> $a : ObjectA(objectB ==
$b)</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=975421308-16042007><FONT face=Arial
color=#0000ff size=2>then</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=975421308-16042007><FONT face=Arial
color=#0000ff size=2> System.out.println("Rule 'example'
ran");</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=975421308-16042007><FONT face=Arial
color=#0000ff size=2>end</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN
class=975421308-16042007></SPAN></FONT></SPAN><SPAN
class=975421308-16042007><FONT face=Arial color=#0000ff
size=2></FONT></SPAN> </DIV></DIV>
<DIV dir=ltr align=left><SPAN class=975421308-16042007><FONT face=Arial
color=#0000ff size=2>[one-to-many mapping] ObjectA has many child
ObjectB.</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=975421308-16042007><FONT face=Arial
color=#0000ff size=2>Method suggestion (returns a List): ObjectA.getObjectBs();
</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=975421308-16042007><FONT face=Arial
color=#0000ff size=2></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=975421308-16042007><FONT face=Arial
color=#0000ff size=2><SPAN class=975421308-16042007><FONT face=Arial
color=#0000ff size=2>
<DIV dir=ltr align=left><SPAN class=975421308-16042007><FONT face=Arial
color=#0000ff size=2>rule "example"</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=975421308-16042007><FONT face=Arial
color=#0000ff size=2>when</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=975421308-16042007><FONT face=Arial
color=#0000ff size=2>
<DIV dir=ltr align=left><SPAN class=975421308-16042007><FONT face=Arial
color=#0000ff size=2> $b :
ObjectB()</FONT></SPAN></DIV> $a : ObjectA(objectBs contains
$b)</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=975421308-16042007><FONT face=Arial
color=#0000ff size=2>then</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=975421308-16042007><FONT face=Arial
color=#0000ff size=2> System.out.println("Rule 'example'
ran");</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=975421308-16042007><FONT face=Arial
color=#0000ff size=2>end</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=975421308-16042007></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=975421308-16042007>Check that this is not
the cause of your multiple unexpected executions.</SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=975421308-16042007></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=975421308-16042007>With kind
regards,</SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=975421308-16042007></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=975421308-16042007>Mike</SPAN></DIV>
<DIV dir=ltr align=left><SPAN
class=975421308-16042007></SPAN></FONT></SPAN> </DIV></FONT></SPAN></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>fakhfakh
ismail<BR><B>Sent:</B> 13 April 2007 18:22<BR><B>To:</B> jboss
rules<BR><B>Subject:</B> [rules-users] many response<BR></FONT><BR></DIV>
<DIV></DIV>
<DIV>Hello,</DIV>
<DIV>First sorry for my bad english</DIV>
<DIV>when I execute a regle I get many response I don't know why?</DIV>
<DIV>Example:</DIV><B><FONT color=#960000 size=2>
<DIV align=left>rule</B></FONT><FONT size=2> </FONT><FONT color=#008000
size=2>"userrole"</DIV></FONT><FONT size=2>
<DIV align=left></DIV></FONT><B><FONT color=#960000 size=2>
<DIV align=left>when</DIV></B></FONT><FONT size=2>
<DIV align=left>user1: BnUserValue(nameuser : name)</DIV>
<DIV align=left>and</DIV>
<DIV align=left>Role : BnRoleValue()</DIV>
<DIV align=left>and</DIV>
<DIV align=left>ActiviteOut : BnNodeValue(bnRole == Role,executor == nameuser
)</DIV>
<DIV align=left>and</DIV>
<DIV align=left>ActiviteIn : BnNodeValue(bnRole == Role )</DIV>
<DIV align=left>and </DIV>
<DIV align=left>lien: BnEdgeValue(outBnNode == ActiviteOut,inBnNode
==ActiviteIn )</DIV>
<DIV align=left></DIV></FONT><B><FONT color=#960000 size=2>
<DIV align=left>then</DIV></B></FONT><FONT size=2>
<DIV align=left>System.out.println(</FONT><FONT color=#008000 size=2>"cette
personne "</FONT><FONT size=2>+user1.getName()+ </FONT><FONT color=#008000
size=2>" ne peut pas executer cette activiter"</FONT><FONT size=2>);</DIV>
<DIV align=left></DIV></FONT><B><FONT color=#960000 size=2>
<DIV>end</DIV></B></FONT>
<DIV><FONT face=Arial color=#0000ff size=2></FONT> </DIV>
<DIV>the execution result</DIV><FONT size=2>
<DIV align=left>cette personne ismail ne peut pas executer cette
activiter</DIV>
<DIV align=left>cette personne ismail ne peut pas executer cette
activiter</DIV>
<DIV align=left>cette personne ismail ne peut pas executer cette
activiter</DIV>
<DIV align=left>cette personne ismail ne peut pas executer cette
activiter</DIV>
<DIV align=left>cette personne ismail ne peut pas executer cette
activiter</DIV>
<DIV align=left>cette personne ismail ne peut pas executer cette
activiter</DIV>
<DIV align=left><FONT face=Arial color=#0000ff></FONT> </DIV>
<DIV align=left> </DIV>
<DIV align=left> </DIV>
<DIV align=left>so the result is repeat 6 I don't know why?</DIV>
<DIV align=left>thank for your help</DIV>
<DIV align=left>Ismail</DIV></FONT>
<DIV> </DIV>
<DIV> </DIV>
<DIV> </DIV>
<DIV> </DIV>
<DIV> </DIV>
<P>
<HR SIZE=1>
Découvrez une nouvelle façon d'obtenir des réponses à toutes vos questions !
Profitez des connaissances, des opinions et des expériences des internautes
sur <A
href="http://fr.rd.yahoo.com/evt=42054/*http://fr.answers.yahoo.com">Yahoo!
Questions/Réponses</A>.</BLOCKQUOTE></BODY></HTML>