<HTML >
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=us-ascii">



<meta name=Generator content="Microsoft Word 11 (filtered medium)">
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]--><o:SmartTagType
 namespaceuri="urn:schemas-microsoft-com:office:smarttags" name="PersonName"/>
<!--[if !mso]>
<style>
st1\:*{behavior:url(#default#ieooui) }
</style>
<![endif]-->
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:"MS Mincho";
        panose-1:2 2 6 9 4 2 5 8 3 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:Verdana;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:"\@MS Mincho";
        panose-1:2 2 6 9 4 2 5 8 3 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman";}
a:link, span.MsoHyperlink
        {color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {color:blue;
        text-decoration:underline;}
p
        {mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:12.0pt;
        font-family:"Times New Roman";}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:Verdana;
        color:blue;
        font-weight:normal;
        font-style:normal;
        text-decoration:none none;}
@page Section1
        {size:595.3pt 841.9pt;
        margin:70.85pt 70.85pt 70.85pt 70.85pt;}
div.Section1
        {page:Section1;}
 /* List Definitions */
 @list l0
        {mso-list-id:1022171762;
        mso-list-template-ids:1600390480;}
ol
        {margin-bottom:0cm;}
ul
        {margin-bottom:0cm;}
-->
</style>

</HEAD>
<BODY lang=FR link=blue vlink=blue>
<DIV>
<DIV>

<div class=Section1>

<p class=MsoNormal><font size=2 color=blue face=Verdana><span lang=EN-GB
style='font-size:10.0pt;font-family:Verdana;color:blue'>Nice suggestion for
removing the update&nbsp;! <o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=blue face=Verdana><span lang=EN-GB
style='font-size:10.0pt;font-family:Verdana;color:blue'>I also will remove the
&amp;&amp; for constraint group, another user of this mailing list has given me
the same advice on my previous mail (it was Greg Barton by the way). <o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=blue face=Verdana><span lang=EN-GB
style='font-size:10.0pt;font-family:Verdana;color:blue'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 color=blue face=Verdana><span lang=EN-GB
style='font-size:10.0pt;font-family:Verdana;color:blue'>Many thanks,<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=blue face=Verdana><span lang=EN-GB
style='font-size:10.0pt;font-family:Verdana;color:blue'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 color=blue face=Verdana><span lang=EN-GB
style='font-size:10.0pt;font-family:Verdana;color:blue'>Joel<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=blue face=Verdana><span lang=EN-GB
style='font-size:10.0pt;font-family:Verdana;color:blue'><o:p>&nbsp;</o:p></span></font></p>

<div>

<div class=MsoNormal align=center style='text-align:center'><font size=3
face="Times New Roman"><span style='font-size:12.0pt'>

<hr size=2 width="100%" align=center tabindex=-1>

</span></font></div>

<p class=MsoNormal><b><font size=2 face=Tahoma><span style='font-size:10.0pt;
font-family:Tahoma;font-weight:bold'>De&nbsp;:</span></font></b><font size=2
face=Tahoma><span style='font-size:10.0pt;font-family:Tahoma'>
rules-users-bounces@lists.jboss.org
[mailto:rules-users-bounces@lists.jboss.org] <b><span style='font-weight:bold'>De
la part de</span></b> Wolfgang Laun<br>
<b><span style='font-weight:bold'>Envoy&#233;&nbsp;:</span></b> lundi 28 septembre
2009 19:37<br>
<b><span style='font-weight:bold'>&#192;&nbsp;:</span></b> <st1:PersonName w:st="on">Rules
 Users List</st1:PersonName><br>
<b><span style='font-weight:bold'>Objet&nbsp;:</span></b> Re: [rules-users]
infinite loop rules problem</span></font><o:p></o:p></p>

</div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal style='margin-bottom:12.0pt'><font size=3
face="Times New Roman"><span style='font-size:12.0pt'>Collecting stuff from
several matches into a single Collector fact is best done<br>
by letting matches occur with rules at salience N. Then, put a single rule<br>
matching the Collector, without any constraints, at salience &lt; N.<br>
This matches any Collector fact, and, in the consequence you should<br>
remove this fact, which has done its duty. To distinguish (as in your case)<br>
the successful case (one match) from others, you might just use an if<br>
statement in the consequence. (Well, yes, this isn't quite comme-il-faut,<br>
but it'll get the job done.) So, don't bother with updates on the Collector
fact.<br>
<br>
As for the frequently used &amp;&amp; to connect the constraints, it is
preferred<br>
to use individual constraint groups, separated by a comma, for matches<br>
with different fact attributes. Constraint groups can be shared among<br>
rules (in the Rete node network) which is the essence of Rete being<br>
fast enough to cope with the many-many pattern matching effort.<br>
<br>
-W<br>
&nbsp;<o:p></o:p></span></font></p>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>2009/9/28 Costigliola Joel (EXT) &lt;<a
href="mailto:joel.costigliola-ext@natixis.com">joel.costigliola-ext@natixis.com</a>&gt;<o:p></o:p></span></font></p>

<div link=blue vlink=purple>

<div>

<div>

<div>

<p><font size=2 face=Verdana><span lang=EN-GB style='font-size:10.0pt;
font-family:Verdana'>Hello,</span></font><o:p></o:p></p>

<p><font size=2 face=Verdana><span lang=EN-GB style='font-size:10.0pt;
font-family:Verdana'>&nbsp;</span></font><o:p></o:p></p>

<p><font size=2 face=Verdana><span lang=EN-GB style='font-size:10.0pt;
font-family:Verdana'>Me again and no it is not spamming, and I&#8217;m still drools
newbie ;-)</span></font><o:p></o:p></p>

<p><font size=2 face=Verdana><span lang=EN-GB style='font-size:10.0pt;
font-family:Verdana'>&nbsp;</span></font><o:p></o:p></p>

<p><font size=2 face=Verdana><span lang=EN-GB style='font-size:10.0pt;
font-family:Verdana'>I was facing a problem of infinite loop with one of my
rule, I have solved it but I&#8217;m wondering if my solution is not too costful on a
performance point of view.</span></font><o:p></o:p></p>

<p><font size=2 face=Verdana><span lang=EN-GB style='font-size:10.0pt;
font-family:Verdana'>So my question is really on the most efficient way of
solving the infinite loop problem I&#8217;m gonna expose you right now.</span></font><o:p></o:p></p>

<p><font size=2 face=Verdana><span lang=EN-GB style='font-size:10.0pt;
font-family:Verdana'>&nbsp;</span></font><o:p></o:p></p>

<p><font size=2 face=Verdana><span lang=EN-GB style='font-size:10.0pt;
font-family:Verdana'>First of all, a few words the problem I want to solve with
Drools :</span></font><o:p></o:p></p>

<p><font size=2 face=Verdana><span lang=EN-GB style='font-size:10.0pt;
font-family:Verdana'>My company is a bank where traders are making deals on
markets, these deals must be classified in book, this is what we call &#8220;booking
process&#8221;.</span></font><o:p></o:p></p>

<p><font size=2 face=Verdana><span lang=EN-GB style='font-size:10.0pt;
font-family:Verdana'>Booking is done according to booking criteria : which
trader has made the deal ? on which product ? etc &#8230; </span></font><o:p></o:p></p>

<p><font size=2 face=Verdana><span lang=EN-GB style='font-size:10.0pt;
font-family:Verdana'>A booking rule defines a set of criteria and the target
book where the deal will classified. </span></font><o:p></o:p></p>

<p><font size=2 face=Verdana><span lang=EN-GB style='font-size:10.0pt;
font-family:Verdana'>&nbsp;</span></font><o:p></o:p></p>

<p><font size=2 face=Verdana><span lang=EN-GB style='font-size:10.0pt;
font-family:Verdana'>The guilty rule&#8217;s job was to fill </span></font><font
size=2 color=black face="Courier New"><span lang=EN-GB style='font-size:10.0pt;
font-family:"Courier New";color:black'>DealMatchingBookingRules</span></font><font
size=2 face=Verdana><span lang=EN-GB style='font-size:10.0pt;font-family:Verdana'>
with the booking rules applicable on a deal, (</span></font><font size=2
color=black face="Courier New"><span lang=EN-GB style='font-size:10.0pt;
font-family:"Courier New";color:black'>DealMatchingBookingRules</span></font><font
size=2 face=Verdana><span lang=EN-GB style='font-size:10.0pt;font-family:Verdana'>
references a unique deal). &nbsp;</span></font><o:p></o:p></p>

<p><font size=2 face=Verdana><span lang=EN-GB style='font-size:10.0pt;
font-family:Verdana'>I have put below a corrected version by commenting the
update</span></font><font size=2 color=olive face="Courier New"><span
lang=EN-GB style='font-size:10.0pt;font-family:"Courier New";color:olive'>(</span></font><font
size=2 color=black face="Courier New"><span lang=EN-GB style='font-size:10.0pt;
font-family:"Courier New";color:black'>$dealMatchingBookingRules</span></font><font
size=2 color=olive face="Courier New"><span lang=EN-GB style='font-size:10.0pt;
font-family:"Courier New";color:olive'>)</span></font><font size=2
face=Verdana><span lang=EN-GB style='font-size:10.0pt;font-family:Verdana'>
instruction of the RHS.</span></font><o:p></o:p></p>

<p><font size=2 face=Verdana><span lang=EN-GB style='font-size:10.0pt;
font-family:Verdana'>&nbsp;</span></font><o:p></o:p></p>

<p><font size=2 face=Verdana><span lang=EN-GB style='font-size:10.0pt;
font-family:Verdana'>With update uncommented, the problem occurred when 2
booking rule were matching the same deal in here&#8217;s my understanding of the
problem </span></font><o:p></o:p></p>

<p><font size=2 face=Verdana><span lang=EN-GB style='font-size:10.0pt;
font-family:Verdana'>Facts inserted in the session : </span></font><o:p></o:p></p>

<p style='margin-left:36.0pt'><font size=2 face=Verdana><span lang=EN-GB
style='font-size:10.0pt;font-family:Verdana'>-</span></font><font size=1><span
style='font-size-adjust: none;font-stretch: normal'><span lang=EN-GB
style='font-size:7.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></font><font
size=2 face=Verdana><span lang=EN-GB style='font-size:10.0pt;font-family:Verdana'>dmbr1
(instance of DealMatchingBookingRule) referencing a deal</span></font><o:p></o:p></p>

<p style='margin-left:36.0pt'><font size=2 face=Verdana><span lang=EN-GB
style='font-size:10.0pt;font-family:Verdana'>-</span></font><font size=1><span
style='font-size-adjust: none;font-stretch: normal'><span lang=EN-GB
style='font-size:7.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></font><font
size=2 face=Verdana><span lang=EN-GB style='font-size:10.0pt;font-family:Verdana'>br1
and br2 matching the deal referenced in dmr1</span></font><o:p></o:p></p>

<p><font size=2 face=Verdana><span lang=EN-GB style='font-size:10.0pt;
font-family:Verdana'>Results : </span></font><o:p></o:p></p>

<ol start=1 type=1>
 <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
     mso-list:l0 level1 lfo1'><font size=2 face=Verdana><span lang=EN-GB
     style='font-size:10.0pt;font-family:Verdana'>rule is activated with
     (dmbr1, br1), dmbr1 is updated</span></font><o:p></o:p></li>
 <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
     mso-list:l0 level1 lfo1'><font size=2 face=Verdana><span lang=EN-GB
     style='font-size:10.0pt;font-family:Verdana'>rule is activated with (dmbr1,
     br2), dmbr1 is updated - (dmbr1, br1) does not activate the rule because
     of no-loop rule attribute</span></font><o:p></o:p></li>
 <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
     mso-list:l0 level1 lfo1'><font size=2 face=Verdana><span lang=EN-GB
     style='font-size:10.0pt;font-family:Verdana'>rule is activated AGAIN with
     (dmbr1, br1), dmbr1 is updated : back to step 1</span></font><o:p></o:p></li>
 <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
     mso-list:l0 level1 lfo1'><font size=2 face=Verdana><span lang=EN-GB
     style='font-size:10.0pt;font-family:Verdana'>rule is activated AGAIN with
     (dmbr1, br2), dmbr1 is updated : back to step 2</span></font><o:p></o:p></li>
 <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
     mso-list:l0 level1 lfo1'><font size=2 face=Verdana><span lang=EN-GB
     style='font-size:10.0pt;font-family:Verdana'>infinite loop on step1 &amp;
     step 2</span></font><o:p></o:p></li>
</ol>

<p><font size=2 face=Verdana><span lang=EN-GB style='font-size:10.0pt;
font-family:Verdana'>&nbsp;</span></font><o:p></o:p></p>

<p><font size=2 face=Verdana><span lang=EN-GB style='font-size:10.0pt;
font-family:Verdana'>I have fixed the problem by removing the call to update,
but for the next steps of my process (not shown here) Drools need to aware of
the modified </span></font><font size=2 color=black face="Courier New"><span
lang=EN-GB style='font-size:10.0pt;font-family:"Courier New";color:black'>DealMatchingBookingRules.
</span></font><font size=2 face=Verdana><span lang=EN-GB style='font-size:10.0pt;
font-family:Verdana'>I thus have written a rule which only update all
DealMatchingBookingRules.</span></font><o:p></o:p></p>

<p><font size=2 face=Verdana><span lang=EN-GB style='font-size:10.0pt;
font-family:Verdana'>&nbsp;</span></font><o:p></o:p></p>

<p><font size=2 face=Verdana><span lang=EN-GB style='font-size:10.0pt;
font-family:Verdana'>Is there a better way to solve this infinite loop ?</span></font><o:p></o:p></p>

<p><font size=2 face=Verdana><span lang=EN-GB style='font-size:10.0pt;
font-family:Verdana'>Feel free to make comments, I&#8217;m really open to any
suggestion/enhancement. &nbsp;&nbsp;</span></font><o:p></o:p></p>

<p><font size=2 face=Verdana><span lang=EN-GB style='font-size:10.0pt;
font-family:Verdana'>&nbsp;</span></font><o:p></o:p></p>

<p><font size=2 face=Verdana><span lang=EN-GB style='font-size:10.0pt;
font-family:Verdana'>Regards,</span></font><o:p></o:p></p>

<p><font size=2 face=Verdana><span lang=EN-GB style='font-size:10.0pt;
font-family:Verdana'>&nbsp;</span></font><o:p></o:p></p>

<p><font size=2 face=Verdana><span style='font-size:10.0pt;font-family:Verdana'>Jo&#235;l
Costigliola</span></font><o:p></o:p></p>

<p><font size=2 face=Verdana><span lang=EN-GB style='font-size:10.0pt;
font-family:Verdana'>&nbsp;</span></font><o:p></o:p></p>

<p><font size=2 face=Verdana><span lang=EN-GB style='font-size:10.0pt;
font-family:Verdana'>&nbsp;</span></font><o:p></o:p></p>

<p><b><font size=2 color="#960000" face="Courier New"><span lang=EN-GB
style='font-size:10.0pt;font-family:"Courier New";color:#960000;font-weight:
bold'>rule</span></font></b><font size=2 color=black face="Courier New"><span
lang=EN-GB style='font-size:10.0pt;font-family:"Courier New";color:black'> </span></font><font
size=2 color=green face="Courier New"><span lang=EN-GB style='font-size:10.0pt;
font-family:"Courier New";color:green'>&quot;Find matching level 1 booking
rules by deal&quot;</span></font><o:p></o:p></p>

<p><font size=2 color=black face="Courier New"><span lang=EN-GB
style='font-size:10.0pt;font-family:"Courier New";color:black'>&nbsp; </span></font><b><font
size=2 color="#960000" face="Courier New"><span lang=EN-GB style='font-size:
10.0pt;font-family:"Courier New";color:#960000;font-weight:bold'>salience</span></font></b><font
size=2 color=black face="Courier New"><span lang=EN-GB style='font-size:10.0pt;
font-family:"Courier New";color:black'> 10</span></font><o:p></o:p></p>

<p><font size=2 color=black face="Courier New"><span lang=EN-GB
style='font-size:10.0pt;font-family:"Courier New";color:black'>&nbsp; </span></font><b><font
size=2 color="#960000" face="Courier New"><span lang=EN-GB style='font-size:
10.0pt;font-family:"Courier New";color:#960000;font-weight:bold'>no-loop</span></font></b><font
size=2 color=black face="Courier New"><span lang=EN-GB style='font-size:10.0pt;
font-family:"Courier New";color:black'> </span></font><o:p></o:p></p>

<p><font size=2 color=black face="Courier New"><span lang=EN-GB
style='font-size:10.0pt;font-family:"Courier New";color:black'>&nbsp; </span></font><b><font
size=2 color="#960000" face="Courier New"><span lang=EN-GB style='font-size:
10.0pt;font-family:"Courier New";color:#960000;font-weight:bold'>ruleflow-group</span></font></b><font
size=2 color=black face="Courier New"><span lang=EN-GB style='font-size:10.0pt;
font-family:"Courier New";color:black'> </span></font><font size=2 color=green
face="Courier New"><span lang=EN-GB style='font-size:10.0pt;font-family:"Courier New";
color:green'>&quot;Find level 1 matching booking rules by deal group&quot;</span></font><o:p></o:p></p>

<p><font size=2 color=black face="Courier New"><span lang=EN-GB
style='font-size:10.0pt;font-family:"Courier New";color:black'>&nbsp; </span></font><o:p></o:p></p>

<p><font size=2 color=black face="Courier New"><span lang=EN-GB
style='font-size:10.0pt;font-family:"Courier New";color:black'>&nbsp; </span></font><b><font
size=2 color="#960000" face="Courier New"><span lang=EN-GB style='font-size:
10.0pt;font-family:"Courier New";color:#960000;font-weight:bold'>when</span></font></b><o:p></o:p></p>

<p><font size=2 color=black face="Courier New"><span lang=EN-GB
style='font-size:10.0pt;font-family:"Courier New";color:black'>&nbsp;&nbsp;&nbsp;
$dealMatchingBookingRules : DealMatchingBookingRules($dealModel : deal,
$dealProductRelatedIndexes : dealProductRelatedIndexes)</span></font><o:p></o:p></p>

<p><font size=2 color=black face="Courier New"><span lang=EN-GB
style='font-size:10.0pt;font-family:"Courier New";color:black'>&nbsp;&nbsp;&nbsp;
$bookingRule : BTExecutionBookingRuleModel (</span></font><o:p></o:p></p>

<p><font size=2 color=black face="Courier New"><span lang=EN-GB
style='font-size:10.0pt;font-family:"Courier New";color:black'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
priority == 1</span></font><o:p></o:p></p>

<p><font size=2 color=black face="Courier New"><span lang=EN-GB
style='font-size:10.0pt;font-family:"Courier New";color:black'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></font><font size=2 color=olive face="Courier New"><span lang=EN-GB
style='font-size:10.0pt;font-family:"Courier New";color:olive'>// when a
criterion is not set, it is considered as satisfied. </span></font><o:p></o:p></p>

<p><font size=2 color=black face="Courier New"><span lang=EN-GB
style='font-size:10.0pt;font-family:"Courier New";color:black'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&amp;&amp; (traderCriterion == </span></font><b><font size=2 color="#960000"
face="Courier New"><span lang=EN-GB style='font-size:10.0pt;font-family:"Courier New";
color:#960000;font-weight:bold'>null</span></font></b><font size=2 color=black
face="Courier New"><span lang=EN-GB style='font-size:10.0pt;font-family:"Courier New";
color:black'> || $dealModel.trader == traderCriterion)</span></font><o:p></o:p></p>

<p><font size=2 color=black face="Courier New"><span lang=EN-GB
style='font-size:10.0pt;font-family:"Courier New";color:black'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&amp;&amp; (portfolioCriterion == </span></font><b><font size=2 color="#960000"
face="Courier New"><span lang=EN-GB style='font-size:10.0pt;font-family:"Courier New";
color:#960000;font-weight:bold'>null</span></font></b><font size=2 color=black
face="Courier New"><span lang=EN-GB style='font-size:10.0pt;font-family:"Courier New";
color:black'> || $dealModel.portfolio == portfolioCriterion)</span></font><o:p></o:p></p>

<p><font size=2 color=black face="Courier New"><span lang=EN-GB
style='font-size:10.0pt;font-family:"Courier New";color:black'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></font><font size=2 color=olive face="Courier New"><span lang=EN-GB
style='font-size:10.0pt;font-family:"Courier New";color:olive'>// when a
product type criterion is set to unknown, it is considered as satisfied
whatever deal product type is. </span></font><o:p></o:p></p>

<p><font size=2 color=black face="Courier New"><span lang=EN-GB
style='font-size:10.0pt;font-family:"Courier New";color:black'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&amp;&amp; (productTypeStringCriterion == </span></font><b><font size=2
color="#960000" face="Courier New"><span lang=EN-GB style='font-size:10.0pt;
font-family:"Courier New";color:#960000;font-weight:bold'>null</span></font></b><font
size=2 color=black face="Courier New"><span lang=EN-GB style='font-size:10.0pt;
font-family:"Courier New";color:black'> || productTypeCriterion ==
ProductType.Unknown&nbsp; </span></font><o:p></o:p></p>

<p><font size=2 color=black face="Courier New"><span lang=EN-GB
style='font-size:10.0pt;font-family:"Courier New";color:black'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
|| $dealModel.product.productType == productTypeCriterion)&nbsp; </span></font><o:p></o:p></p>

<p><font size=2 color=black face="Courier New"><span lang=EN-GB
style='font-size:10.0pt;font-family:"Courier New";color:black'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&amp;&amp; (listedIndexCriterion == </span></font><b><font size=2
color="#960000" face="Courier New"><span lang=EN-GB style='font-size:10.0pt;
font-family:"Courier New";color:#960000;font-weight:bold'>null</span></font></b><font
size=2 color=black face="Courier New"><span lang=EN-GB style='font-size:10.0pt;
font-family:"Courier New";color:black'> ||
$dealProductRelatedIndexes.relatedIndexes </span></font><b><font size=2
color="#960000" face="Courier New"><span lang=EN-GB style='font-size:10.0pt;
font-family:"Courier New";color:#960000;font-weight:bold'>contains</span></font></b><font
size=2 color=black face="Courier New"><span lang=EN-GB style='font-size:10.0pt;
font-family:"Courier New";color:black'> listedIndexCriterion)</span></font><o:p></o:p></p>

<p><font size=2 color=black face="Courier New"><span lang=EN-GB
style='font-size:10.0pt;font-family:"Courier New";color:black'>&nbsp;&nbsp;&nbsp;
)</span></font><o:p></o:p></p>

<p><font size=2 color=black face="Courier New"><span lang=EN-GB
style='font-size:10.0pt;font-family:"Courier New";color:black'>&nbsp; </span></font><b><font
size=2 color="#960000" face="Courier New"><span lang=EN-GB style='font-size:
10.0pt;font-family:"Courier New";color:#960000;font-weight:bold'>then</span></font></b><o:p></o:p></p>

<p><font size=2 color=black face="Courier New"><span lang=EN-GB
style='font-size:10.0pt;font-family:"Courier New";color:black'>&nbsp;&nbsp;&nbsp;
$dealMatchingBookingRules.addMatchingBookingRule($bookingRule);</span></font><o:p></o:p></p>

<p><font size=2 color=black face="Courier New"><span lang=EN-GB
style='font-size:10.0pt;font-family:"Courier New";color:black'>&nbsp;&nbsp;&nbsp;
</span></font><font size=2 color=olive face="Courier New"><span lang=EN-GB
style='font-size:10.0pt;font-family:"Courier New";color:olive'>// update(</span></font><font
size=2 color=black face="Courier New"><span lang=EN-GB style='font-size:10.0pt;
font-family:"Courier New";color:black'>$dealMatchingBookingRules</span></font><font
size=2 color=olive face="Courier New"><span lang=EN-GB style='font-size:10.0pt;
font-family:"Courier New";color:olive'>) : COMMENTED BECAUSE WAS CAUSING
INFINITE LOOP !</span></font><font size=2 color=black face="Courier New"><span
lang=EN-GB style='font-size:10.0pt;font-family:"Courier New";color:black'> </span></font><o:p></o:p></p>

<p><b><font size=2 color="#960000" face="Courier New"><span lang=EN-GB
style='font-size:10.0pt;font-family:"Courier New";color:#960000;font-weight:
bold'>end</span></font></b><o:p></o:p></p>

<p><font size=2 face="Courier New"><span lang=EN-GB style='font-size:10.0pt;
font-family:"Courier New"'>&nbsp;</span></font><o:p></o:p></p>

<p><font size=2 color=olive face="Courier New"><span lang=EN-GB
style='font-size:10.0pt;font-family:"Courier New";color:olive'>// Does the job
of update(</span></font><font size=2 color=black face="Courier New"><span
lang=EN-GB style='font-size:10.0pt;font-family:"Courier New";color:black'>$dealMatchingBookingRules</span></font><font
size=2 color=olive face="Courier New"><span lang=EN-GB style='font-size:10.0pt;
font-family:"Courier New";color:olive'>) but without INFINITE LOOP.</span></font><o:p></o:p></p>

<p><b><font size=2 color="#960000" face="Courier New"><span lang=EN-GB
style='font-size:10.0pt;font-family:"Courier New";color:#960000;font-weight:
bold'>rule</span></font></b><font size=2 color=black face="Courier New"><span
lang=EN-GB style='font-size:10.0pt;font-family:"Courier New";color:black'> </span></font><font
size=2 color=green face="Courier New"><span lang=EN-GB style='font-size:10.0pt;
font-family:"Courier New";color:green'>&quot;Refresh facts in level 1 booking
rule process&quot;</span></font><o:p></o:p></p>

<p><font size=2 color=black face="Courier New"><span lang=EN-GB
style='font-size:10.0pt;font-family:"Courier New";color:black'>&nbsp; </span></font><b><font
size=2 color="#960000" face="Courier New"><span lang=EN-GB style='font-size:
10.0pt;font-family:"Courier New";color:#960000;font-weight:bold'>salience</span></font></b><font
size=2 color=black face="Courier New"><span lang=EN-GB style='font-size:10.0pt;
font-family:"Courier New";color:black'> 5</span></font><o:p></o:p></p>

<p><font size=2 color=black face="Courier New"><span lang=EN-GB
style='font-size:10.0pt;font-family:"Courier New";color:black'>&nbsp; </span></font><b><font
size=2 color="#960000" face="Courier New"><span lang=EN-GB style='font-size:
10.0pt;font-family:"Courier New";color:#960000;font-weight:bold'>no-loop</span></font></b><font
size=2 color=black face="Courier New"><span lang=EN-GB style='font-size:10.0pt;
font-family:"Courier New";color:black'> </span></font><o:p></o:p></p>

<p><font size=2 color=black face="Courier New"><span lang=EN-GB
style='font-size:10.0pt;font-family:"Courier New";color:black'>&nbsp; </span></font><b><font
size=2 color="#960000" face="Courier New"><span lang=EN-GB style='font-size:
10.0pt;font-family:"Courier New";color:#960000;font-weight:bold'>ruleflow-group</span></font></b><font
size=2 color=black face="Courier New"><span lang=EN-GB style='font-size:10.0pt;
font-family:"Courier New";color:black'> </span></font><font size=2 color=green
face="Courier New"><span lang=EN-GB style='font-size:10.0pt;font-family:"Courier New";
color:green'>&quot;Refresh facts in level 1 booking rule process group&quot;</span></font><o:p></o:p></p>

<p><font size=2 color=black face="Courier New"><span lang=EN-GB
style='font-size:10.0pt;font-family:"Courier New";color:black'>&nbsp; </span></font><o:p></o:p></p>

<p><font size=2 color=black face="Courier New"><span lang=EN-GB
style='font-size:10.0pt;font-family:"Courier New";color:black'>&nbsp; </span></font><b><font
size=2 color="#960000" face="Courier New"><span lang=EN-GB style='font-size:
10.0pt;font-family:"Courier New";color:#960000;font-weight:bold'>when</span></font></b><o:p></o:p></p>

<p><font size=2 color=black face="Courier New"><span lang=EN-GB
style='font-size:10.0pt;font-family:"Courier New";color:black'>&nbsp;&nbsp;&nbsp;
$dealMatchingBookingRules : DealMatchingBookingRules()</span></font><o:p></o:p></p>

<p><font size=2 color=black face="Courier New"><span lang=EN-GB
style='font-size:10.0pt;font-family:"Courier New";color:black'>&nbsp; </span></font><b><font
size=2 color="#960000" face="Courier New"><span lang=EN-GB style='font-size:
10.0pt;font-family:"Courier New";color:#960000;font-weight:bold'>then</span></font></b><o:p></o:p></p>

<p><font size=2 color=black face="Courier New"><span lang=EN-GB
style='font-size:10.0pt;font-family:"Courier New";color:black'>&nbsp;&nbsp;&nbsp;
</span></font><b><font size=2 color="#960000" face="Courier New"><span
lang=EN-GB style='font-size:10.0pt;font-family:"Courier New";color:#960000;
font-weight:bold'>update</span></font></b><font size=2 color=black
face="Courier New"><span lang=EN-GB style='font-size:10.0pt;font-family:"Courier New";
color:black'>($dealMatchingBookingRules);</span></font><o:p></o:p></p>

<p><b><font size=2 color="#960000" face="Courier New"><span lang=EN-GB
style='font-size:10.0pt;font-family:"Courier New";color:#960000;font-weight:
bold'>end</span></font></b><o:p></o:p></p>

<p><font size=2 face=Verdana><span lang=EN-GB style='font-size:10.0pt;
font-family:Verdana'>&nbsp;</span></font><o:p></o:p></p>

<p><font size=2 face=Verdana><span lang=EN-GB style='font-size:10.0pt;
font-family:Verdana'>&nbsp;</span></font><o:p></o:p></p>

<p><font size=3 face="Times New Roman"><span style='font-size:12.0pt'>&nbsp;<o:p></o:p></span></font></p>

</div>

</div>

<div>

<div class=MsoNormal align=center style='text-align:center'><font size=3
face="Times New Roman"><span style='font-size:12.0pt'>

<hr size=2 width="100%" align=center>

</span></font></div>

</div>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>&nbsp;<o:p></o:p></span></font></p>

</div>

<div>

<p class=MsoNormal><font size=2 color=black face="Times New Roman"><span
style='font-size:10.0pt;color:black'>Ce courriel et toutes les pi&#232;ces jointes
sont confidentiels et peuvent &#234;tre couverts par un privil&#232;ge ou une protection
l&#233;gale. Il est &#233;tabli &#224; l&#8217;attention exclusive de ses destinataires. Toute
utilisation de ce courriel non conforme &#224; sa destination, toute diffusion ou
toute publication, totale ou partielle, est interdite, sauf autorisation
expresse pr&#233;alable. Toutes opinions exprim&#233;es dans ce courriel ne sauraient
n&#233;cessairement refl&#233;ter celle de Natixis, de ses filiales. Elles sont aussi
susceptibles de modification sans notification pr&#233;alable. Si vous recevez ce
courriel par erreur, merci de le d&#233;truire et d&#8217;en avertir imm&#233;diatement
l&#8217;exp&#233;diteur. L&#8217;Internet ne permettant pas d&#8217;assurer l&#8217;int&#233;grit&#233; de ce
courriel, Natixis d&#233;cline toute responsabilit&#233; s&#8217;il a &#233;t&#233; alt&#233;r&#233;, d&#233;form&#233; ou
falsifi&#233; et chaque destinataire qui utilise ce mode de communication est
suppos&#233; en accepter les risques.</span></font> <o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>&nbsp;<o:p></o:p></span></font></p>

</div>

<div>

<p class=MsoNormal><font size=2 color=black face="Times New Roman"><span
style='font-size:10.0pt;color:black'>This email and any attachment are
confidential and may be legally privileged or otherwise protected from
disclosure. It is intended only for the stated addressee(s) and access to it by
any other person(s) is unauthorised. Any use, dissemination or disclosure not
in accordance with its purpose, either in whole or in part, is prohibited
without our prior formal approval. Any opinion expressed in this email may not
necessarily reflect the opinion of Natixis, its affiliates. It may also be
subject to change without prior notice. If you are not an addressee, you must
not disclose, copy, circulate or in any other way use or rely on the
information contained in this email. If you have received it in error, please
inform us immediately and delete all copies. The Internet can not guarantee the
integrity of this email therefore Natixis shall not be liable for the email if
altered, changed or falsified and anyone who communicates with us by e-mail is
taken to accept these risks.</span></font> <o:p></o:p></p>

</div>

<div class=MsoNormal align=center style='text-align:center'><font size=3
face="Times New Roman"><span style='font-size:12.0pt'>

<hr size=2 width="100%" align=center>

</span></font></div>

</div>

</div>

<p class=MsoNormal style='margin-bottom:12.0pt'><font size=3
face="Times New Roman"><span style='font-size:12.0pt'><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><o:p></o:p></span></font></p>

</div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

</div>

 </DIV>
<DIV>
</DIV>
<DIV>
<HR>
</DIV>
<DIV ALIGN="justify">
<FONT FACE="Arial" COLOR="gray" SIZE="1"><SPAN STYLE="FONT-SIZE: 12pt"><FONT FACE="Arial">
<FONT FACE="Times New Roman" COLOR="#000000" SIZE="3">
</FONT>
</FONT></SPAN></FONT>&nbsp;</DIV>
<DIV ALIGN="justify">
<FONT COLOR="gray"><SPAN STYLE="FONT-SIZE: 12pt"><FONT COLOR="#000000" SIZE="2">Ce courriel et toutes les pi&#232;ces jointes sont confidentiels et peuvent &#234;tre couverts par un privil&#232;ge ou une protection l&#233;gale. Il est &#233;tabli &#224; l&#8217;attention exclusive de ses destinataires. Toute utilisation de ce courriel non conforme &#224; sa destination, toute diffusion ou toute publication, totale ou partielle, est interdite, sauf autorisation expresse pr&#233;alable. Toutes opinions exprim&#233;es dans ce courriel ne sauraient n&#233;cessairement refl&#233;ter celle de Natixis, de ses filiales. Elles sont aussi susceptibles de modification sans notification pr&#233;alable. Si vous recevez ce courriel par erreur, merci de le d&#233;truire et d&#8217;en avertir imm&#233;diatement l&#8217;exp&#233;diteur. L&#8217;Internet ne permettant pas d&#8217;assurer l&#8217;int&#233;grit&#233; de ce courriel, Natixis d&#233;cline toute responsabilit&#233; s&#8217;il a &#233;t&#233; alt&#233;r&#233;, d&#233;form&#233; ou falsifi&#233; et chaque destinataire qui utilise ce mode de communication est suppos&#233; en accepter les risques.</FONT></SPAN></FONT>
</DIV>
<DIV ALIGN="justify">
<FONT COLOR="gray"><SPAN STYLE="FONT-SIZE: 12pt"></SPAN></FONT>&nbsp;</DIV>
<DIV ALIGN="justify">
<FONT COLOR="gray"><SPAN STYLE="FONT-SIZE: 12pt"></SPAN></FONT>
<FONT COLOR="gray"><SPAN STYLE="FONT-SIZE: 12pt"><FONT COLOR="#000000" SIZE="2">This email and any attachment are confidential and may be legally privileged or otherwise protected from disclosure. It is intended only for the stated addressee(s) and access to it by any other person(s) is unauthorised. Any use, dissemination or disclosure not in accordance with its purpose, either in whole or in part, is prohibited without our prior formal approval. Any opinion expressed in this email may not necessarily reflect the opinion of Natixis, its affiliates. It may also be subject to change without prior notice. If you are not an addressee, you must not disclose, copy, circulate or in any other way use or rely on the information contained in this email. If you have received it in error, please inform us immediately and delete all copies. The Internet can not guarantee the integrity of this email therefore Natixis shall not be liable for the email if altered, changed or falsified and anyone who communicates with us by e-mail is taken to accept these risks.</FONT></SPAN></FONT>
</DIV>
<P CLASS="MsoNormal" ALIGN="justify">
<HR>

<P>
</P>
<P>
</P>
</P>
</DIV></BODY></HTML>