<HTML >
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name=Generator content="Microsoft Word 11 (filtered medium)">
<style>
<!--
/* Font Definitions */
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:"MS Mincho";
        panose-1:2 2 6 9 4 2 5 8 3 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:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:Verdana;
        color:windowtext;
        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:908618385;
        mso-list-type:hybrid;
        mso-list-template-ids:92689466 67895311 67895321 67895323 67895311 67895321 67895323 67895311 67895321 67895323;}
@list l0:level1
        {mso-level-tab-stop:36.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l0:level2
        {mso-level-tab-stop:72.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l0:level3
        {mso-level-tab-stop:108.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l0:level4
        {mso-level-tab-stop:144.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l0:level5
        {mso-level-tab-stop:180.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l0:level6
        {mso-level-tab-stop:216.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l0:level7
        {mso-level-tab-stop:252.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l0:level8
        {mso-level-tab-stop:288.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l0:level9
        {mso-level-tab-stop:324.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l1
        {mso-list-id:1034890504;
        mso-list-type:hybrid;
        mso-list-template-ids:1395793154 185352624 67895299 67895301 67895297 67895299 67895301 67895297 67895299 67895301;}
@list l1:level1
        {mso-level-start-at:0;
        mso-level-number-format:bullet;
        mso-level-text:-;
        mso-level-tab-stop:36.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Verdana;
        mso-fareast-font-family:"MS Mincho";
        mso-bidi-font-family:"Times New Roman";
        color:windowtext;}
@list l2
        {mso-list-id:1731999546;
        mso-list-type:hybrid;
        mso-list-template-ids:-832129226 67895311 67895299 67895301 67895297 67895299 67895301 67895297 67895299 67895301;}
@list l2:level1
        {mso-level-tab-stop:36.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        color:windowtext;}
ol
        {margin-bottom:0cm;}
ul
        {margin-bottom:0cm;}
-->
</style>
</HEAD>
<BODY lang=FR link=blue vlink=purple>
<DIV>
<DIV>
<div class=Section1>
<p class=MsoNormal><font size=2 face=Verdana><span lang=EN-GB style='font-size:
10.0pt;font-family:Verdana'>Hello,<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Verdana><span lang=EN-GB style='font-size:
10.0pt;font-family:Verdana'><o:p> </o:p></span></font></p>
<p class=MsoNormal><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’m still
drools newbie ;-)<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Verdana><span lang=EN-GB style='font-size:
10.0pt;font-family:Verdana'><o:p> </o:p></span></font></p>
<p class=MsoNormal><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’m wondering if my solution is not too
costful on a performance point of view.<o:p></o:p></span></font></p>
<p class=MsoNormal><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’m gonna expose you right now.<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Verdana><span lang=EN-GB style='font-size:
10.0pt;font-family:Verdana'><o:p> </o:p></span></font></p>
<p class=MsoNormal><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 :<o:p></o:p></span></font></p>
<p class=MsoNormal><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
“booking process”.<o:p></o:p></span></font></p>
<p class=MsoNormal><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 … <o:p></o:p></span></font></p>
<p class=MsoNormal><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. <o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Verdana><span lang=EN-GB style='font-size:
10.0pt;font-family:Verdana'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Verdana><span lang=EN-GB style='font-size:
10.0pt;font-family:Verdana'>The guilty rule’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).  <o:p></o:p></span></font></p>
<p class=MsoNormal><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.<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Verdana><span lang=EN-GB style='font-size:
10.0pt;font-family:Verdana'><o:p> </o:p></span></font></p>
<p class=MsoNormal><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’s my understanding of
the problem <o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Verdana><span lang=EN-GB style='font-size:
10.0pt;font-family:Verdana'>Facts inserted in the session : <o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l1 level1 lfo2'><![if !supportLists]><font
size=2 face=Verdana><span lang=EN-GB style='font-size:10.0pt;font-family:Verdana'><span
style='mso-list:Ignore'>-<font size=1 face="Times New Roman"><span
style='font:7.0pt "Times New Roman"'>
</span></font></span></span></font><![endif]><font size=2 face=Verdana><span
lang=EN-GB style='font-size:10.0pt;font-family:Verdana'>dmbr1 (instance of DealMatchingBookingRule)
referencing a deal<o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l1 level1 lfo2'><![if !supportLists]><font
size=2 face=Verdana><span lang=EN-GB style='font-size:10.0pt;font-family:Verdana'><span
style='mso-list:Ignore'>-<font size=1 face="Times New Roman"><span
style='font:7.0pt "Times New Roman"'>
</span></font></span></span></font><![endif]><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<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Verdana><span lang=EN-GB style='font-size:
10.0pt;font-family:Verdana'>Results : <o:p></o:p></span></font></p>
<ol style='margin-top:0cm' start=1 type=1>
<li class=MsoNormal style='mso-list:l2 level1 lfo3'><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<o:p></o:p></span></font></li>
<li class=MsoNormal style='mso-list:l2 level1 lfo3'><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<o:p></o:p></span></font></li>
<li class=MsoNormal style='mso-list:l2 level1 lfo3'><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<o:p></o:p></span></font></li>
<li class=MsoNormal style='mso-list:l2 level1 lfo3'><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<o:p></o:p></span></font></li>
<li class=MsoNormal style='mso-list:l2 level1 lfo3'><font size=2 face=Verdana><span
lang=EN-GB style='font-size:10.0pt;font-family:Verdana'>infinite loop on
step1 & step 2<o:p></o:p></span></font></li>
</ol>
<p class=MsoNormal><font size=2 face=Verdana><span lang=EN-GB style='font-size:
10.0pt;font-family:Verdana'><o:p> </o:p></span></font></p>
<p class=MsoNormal><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.<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Verdana><span lang=EN-GB style='font-size:
10.0pt;font-family:Verdana'><o:p> </o:p></span></font></p>
<p class=MsoNormal><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 ?<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Verdana><span lang=EN-GB style='font-size:
10.0pt;font-family:Verdana'>Feel free to make comments, I’m really open
to any suggestion/enhancement.   <o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Verdana><span lang=EN-GB style='font-size:
10.0pt;font-family:Verdana'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Verdana><span lang=EN-GB style='font-size:
10.0pt;font-family:Verdana'>Regards,<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Verdana><span lang=EN-GB style='font-size:
10.0pt;font-family:Verdana'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Verdana><span style='font-size:10.0pt;
font-family:Verdana'>Joël Costigliola</span></font><o:p></o:p></p>
<p class=MsoNormal><font size=2 face=Verdana><span lang=EN-GB style='font-size:
10.0pt;font-family:Verdana'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Verdana><span lang=EN-GB style='font-size:
10.0pt;font-family:Verdana'><o:p> </o:p></span></font></p>
<p class=MsoNormal><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'>"Find
matching level 1 booking rules by deal"</span></font><font size=2
face="Courier New"><span lang=EN-GB style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></font></p>
<p class=MsoNormal><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><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><font size=2 face="Courier New"><span lang=EN-GB
style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></font></p>
<p class=MsoNormal><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><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><font size=2 face="Courier New"><span lang=EN-GB
style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></font></p>
<p class=MsoNormal><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><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'>"Find
level 1 matching booking rules by deal group"</span></font><font size=2
face="Courier New"><span lang=EN-GB style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></font></p>
<p class=MsoNormal><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 face="Courier New"><span lang=EN-GB
style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></font></p>
<p class=MsoNormal><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><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><font size=2 face="Courier New"><span
lang=EN-GB style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 color=black face="Courier New"><span
lang=EN-GB style='font-size:10.0pt;font-family:"Courier New";color:black'>
$dealMatchingBookingRules : DealMatchingBookingRules($dealModel : deal,
$dealProductRelatedIndexes : dealProductRelatedIndexes)</span></font><font
size=2 face="Courier New"><span lang=EN-GB style='font-size:10.0pt;font-family:
"Courier New"'><o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 color=black face="Courier New"><span
lang=EN-GB style='font-size:10.0pt;font-family:"Courier New";color:black'>
$bookingRule : BTExecutionBookingRuleModel (</span></font><font size=2
face="Courier New"><span lang=EN-GB style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 color=black face="Courier New"><span
lang=EN-GB style='font-size:10.0pt;font-family:"Courier New";color:black'>
priority == 1</span></font><font size=2 face="Courier New"><span lang=EN-GB
style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></font></p>
<p class=MsoNormal><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=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><font
size=2 face="Courier New"><span lang=EN-GB style='font-size:10.0pt;font-family:
"Courier New"'><o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 color=black face="Courier New"><span
lang=EN-GB style='font-size:10.0pt;font-family:"Courier New";color:black'>
&& (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><font
size=2 face="Courier New"><span lang=EN-GB style='font-size:10.0pt;font-family:
"Courier New"'><o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 color=black face="Courier New"><span
lang=EN-GB style='font-size:10.0pt;font-family:"Courier New";color:black'>
&& (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><font
size=2 face="Courier New"><span lang=EN-GB style='font-size:10.0pt;font-family:
"Courier New"'><o:p></o:p></span></font></p>
<p class=MsoNormal><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=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><font size=2 face="Courier New"><span
lang=EN-GB style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 color=black face="Courier New"><span
lang=EN-GB style='font-size:10.0pt;font-family:"Courier New";color:black'>
&& (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 </span></font><font size=2 face="Courier New"><span
lang=EN-GB style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 color=black face="Courier New"><span
lang=EN-GB style='font-size:10.0pt;font-family:"Courier New";color:black'>
|| $dealModel.product.productType == productTypeCriterion) </span></font><font
size=2 face="Courier New"><span lang=EN-GB style='font-size:10.0pt;font-family:
"Courier New"'><o:p></o:p></span></font></p>
<p class=MsoNormal><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><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><font size=2 face="Courier New"><span
lang=EN-GB style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></font></p>
<p class=MsoNormal><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 face="Courier New"><span lang=EN-GB
style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></font></p>
<p class=MsoNormal><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><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><font size=2 face="Courier New"><span
lang=EN-GB style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 color=black face="Courier New"><span
lang=EN-GB style='font-size:10.0pt;font-family:"Courier New";color:black'>
$dealMatchingBookingRules.addMatchingBookingRule($bookingRule);<o:p></o:p></span></font></p>
<p class=MsoNormal><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=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><font
size=2 face="Courier New"><span lang=EN-GB style='font-size:10.0pt;font-family:
"Courier New"'><o:p></o:p></span></font></p>
<p class=MsoNormal><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><font size=2 face="Courier New"><span
lang=EN-GB style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face="Courier New"><span lang=EN-GB
style='font-size:10.0pt;font-family:"Courier New"'><o:p> </o:p></span></font></p>
<p class=MsoNormal><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><font
size=2 face="Courier New"><span lang=EN-GB style='font-size:10.0pt;font-family:
"Courier New"'><o:p></o:p></span></font></p>
<p class=MsoNormal><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'>"Refresh
facts in level 1 booking rule process"</span></font><font size=2
face="Courier New"><span lang=EN-GB style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></font></p>
<p class=MsoNormal><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><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><font size=2 face="Courier New"><span lang=EN-GB
style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></font></p>
<p class=MsoNormal><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><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><font size=2 face="Courier New"><span lang=EN-GB
style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></font></p>
<p class=MsoNormal><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><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'>"Refresh
facts in level 1 booking rule process group"</span></font><font size=2
face="Courier New"><span lang=EN-GB style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></font></p>
<p class=MsoNormal><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 face="Courier New"><span lang=EN-GB
style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></font></p>
<p class=MsoNormal><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><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><font size=2 face="Courier New"><span
lang=EN-GB style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 color=black face="Courier New"><span
lang=EN-GB style='font-size:10.0pt;font-family:"Courier New";color:black'>
$dealMatchingBookingRules : DealMatchingBookingRules()</span></font><font
size=2 face="Courier New"><span lang=EN-GB style='font-size:10.0pt;font-family:
"Courier New"'><o:p></o:p></span></font></p>
<p class=MsoNormal><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><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><font size=2 face="Courier New"><span
lang=EN-GB style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></font></p>
<p class=MsoNormal><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><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><font size=2
face="Courier New"><span lang=EN-GB style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></font></p>
<p class=MsoNormal><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><font size=2 face="Courier New"><span
lang=EN-GB style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Verdana><span lang=EN-GB style='font-size:
10.0pt;font-family:Verdana'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Verdana><span lang=EN-GB style='font-size:
10.0pt;font-family:Verdana'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p> </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> </DIV>
<DIV ALIGN="justify">
<FONT COLOR="gray"><SPAN STYLE="FONT-SIZE: 12pt"><FONT COLOR="#000000" SIZE="2">Ce courriel et toutes les pièces jointes sont confidentiels et peuvent être couverts par un privilège ou une protection légale. Il est établi à l’attention exclusive de ses destinataires. Toute utilisation de ce courriel non conforme à sa destination, toute diffusion ou toute publication, totale ou partielle, est interdite, sauf autorisation expresse préalable. Toutes opinions exprimées dans ce courriel ne sauraient nécessairement refléter celle de Natixis, de ses filiales. Elles sont aussi susceptibles de modification sans notification préalable. Si vous recevez ce courriel par erreur, merci de le détruire et d’en avertir immédiatement l’expéditeur. L’Internet ne permettant pas d’assurer l’intégrité de ce courriel, Natixis décline toute responsabilité s’il a été altéré, déformé ou falsifié et chaque destinataire qui utilise ce mode de communication est supposé en accepter les risques.</FONT></SPAN></FONT>
</DIV>
<DIV ALIGN="justify">
<FONT COLOR="gray"><SPAN STYLE="FONT-SIZE: 12pt"></SPAN></FONT> </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>