<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 11 (filtered medium)">
<style>
<!--
 /* 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;}
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.EmailStyle17
        {mso-style-type:personal;
        font-family:Arial;
        color:windowtext;}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:Arial;
        color:navy;}
@page Section1
        {size:595.3pt 841.9pt;
        margin:2.0cm 42.5pt 2.0cm 3.0cm;}
div.Section1
        {page:Section1;}
-->
</style>

</head>

<body lang=RU link=blue vlink=purple>

<div class=Section1>

<p class=MsoNormal><font size=2 face=Arial><span lang=EN-US style='font-size:
10.0pt;font-family:Arial'>Hello,<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span lang=EN-US style='font-size:
10.0pt;font-family:Arial'>I have a problem with running ruleflow with ForEach
node<font color=navy><span style='color:navy'> </span></font>(Drools 5.0.1):
ForEach node contains two action nodes(let&#8217;s say A1 and A2) and one rule
set node(let&#8217;s say R1). I have one object, that is inserted into working
memory (let&#8217;s call it O1), and passed to process instance as a process
variable. The collection expression in ForEach node contains collection of
parameters. The nodes inside ForEach node are connected as <o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span lang=EN-US style='font-size:
10.0pt;font-family:Arial'>A1 -&gt; R1 -&gt; A2 so for each parameter from the
collection the following sequence is performed: in A1 the parameter is set to
O1 via setter and update(O1) is called, then the rule set R1 is activated,
where some actions are done with the object. And then, in A2, some data, which
was changed during &#8216;R1&#8217; stage, is extracted from object.<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span lang=EN-US style='font-size:
10.0pt;font-family:Arial'>The problem is that actions are not called in right
consequence. For example, for 4 elements in the collection, the sequence, in
which the nodes are triggered is following: A1,A1,A1,A1,R1,A2,A2,A2,A2<font
color=navy><span style='color:navy'> </span></font><font color="#333333"><span
style='color:#333333'>instead of</span></font><font color=navy><span
style='color:navy'> &nbsp;</span></font>A1, R1, A2, A1, R1, A2, A1, R1, A2, A1,
R1, A2<o:p></o:p></span></font></p>

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

<p class=MsoNormal><font size=2 face=Arial><span lang=EN-US style='font-size:
10.0pt;font-family:Arial'>The code, used to run drools is:<o:p></o:p></span></font></p>

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

<p class=MsoNormal style='margin-left:70.8pt;text-indent:35.4pt;text-autospace:
none'><font size=2 color=black face="Courier New"><span lang=EN-US
style='font-size:10.0pt;font-family:"Courier New";color:black'>Map variables = </span></font><b><font
size=2 color="#7f0055" face="Courier New"><span lang=EN-US style='font-size:
10.0pt;font-family:"Courier New";color:#7F0055;font-weight:bold'>new</span></font></b><font
size=2 color=black face="Courier New"><span lang=EN-US style='font-size:10.0pt;
font-family:"Courier New";color:black'> <span style='background:silver'>HashMap</span>();</span></font><font
size=2 face="Courier New"><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'><o:p></o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 color=black
face="Courier New"><span lang=EN-US style='font-size:10.0pt;font-family:"Courier New";
color:black'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
variables.put(</span></font><i><font size=2 color="#0000c0" face="Courier New"><span
lang=EN-US style='font-size:10.0pt;font-family:"Courier New";color:#0000C0;
font-style:italic'>OBJECT_VARIABLE_NAME</span></font></i><font size=2
color=black face="Courier New"><span lang=EN-US style='font-size:10.0pt;
font-family:"Courier New";color:black'>, object);</span></font><font size=2
face="Courier New"><span lang=EN-US style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 color=black
face="Courier New"><span lang=EN-US style='font-size:10.0pt;font-family:"Courier New";
color:black'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></font><font size=2 color="#0000c0" face="Courier New"><span lang=EN-US
style='font-size:10.0pt;font-family:"Courier New";color:#0000C0'>ksession</span></font><font
size=2 color=black face="Courier New"><span lang=EN-US style='font-size:10.0pt;
font-family:"Courier New";color:black'>.insert(object);</span></font><font
size=2 face="Courier New"><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'><o:p></o:p></span></font></p>

<p class=MsoNormal style='text-autospace:none'><font size=2 color=black
face="Courier New"><span lang=EN-US style='font-size:10.0pt;font-family:"Courier New";
color:black'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></font><font size=2 color="#0000c0" face="Courier New"><span lang=EN-US
style='font-size:10.0pt;font-family:"Courier New";color:#0000C0'>ksession</span></font><font
size=2 color=black face="Courier New"><span lang=EN-US style='font-size:10.0pt;
font-family:"Courier New";color:black'>.startProcess(</span></font><font
size=2 color="#0000c0" face="Courier New"><span lang=EN-US style='font-size:
10.0pt;font-family:"Courier New";color:#0000C0'>processId</span></font><font
size=2 color=black face="Courier New"><span lang=EN-US style='font-size:10.0pt;
font-family:"Courier New";color:black'>, variables);</span></font><font size=2
face="Courier New"><span lang=EN-US 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-US style='font-size:10.0pt;font-family:"Courier New";color:black'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></font><font size=2 color="#0000c0" face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New";color:#0000C0'>ksession</span></font><font
size=2 color=black face="Courier New"><span style='font-size:10.0pt;font-family:
"Courier New";color:black'>.fireAllRules();</span></font><font size=2
color=black face="Courier New"><span lang=EN-US style='font-size:10.0pt;
font-family:"Courier New";color:black'><o:p></o:p></span></font></p>

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

<p class=MsoNormal><font size=2 color=black face=Arial><span lang=EN-US
style='font-size:10.0pt;font-family:Arial;color:black'>Can you explain such
behavior?<o:p></o:p></span></font></p>

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

<p class=MsoNormal><font size=2 color=black face=Arial><span lang=EN-US
style='font-size:10.0pt;font-family:Arial;color:black'>Thank you.</span></font><font
size=2 color=navy face=Arial><span lang=EN-US style='font-size:10.0pt;
font-family:Arial;color:navy'> </span></font><font size=2 face=Arial><span
lang=EN-US style='font-size:10.0pt;font-family:Arial'><o:p></o:p></span></font></p>

</div>

</body>

</html>