<div dir="ltr">Hi,<div><br></div><div>I am attempting to compile a rule template and expecting the resulting rules</div><div>to preserve the ordering of the template and of the rows in the CSV file.</div><div>However, it doesn&#39;t appear that ordering is preserved. Is this a bug, or is there a workaround?</div><div>I would like to rely on the implicit top-down salience by having rules in a specified order within the same file. (I&#39;m aware that mutually exclusive rules are preferred, but this greatly complicates maintaining the rules for my use case, as does maintaining salience values.)</div><div><br></div><div>Using the (slightly-modified) cheese example, this template...</div><div><br></div><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div><div><font face="monospace, monospace" size="1">template header</font></div></div><div><div><font face="monospace, monospace" size="1">age</font></div></div><div><div><font face="monospace, monospace" size="1">type</font></div></div><div><div><font face="monospace, monospace" size="1">log</font></div></div><div><div><font face="monospace, monospace" size="1"><br></font></div></div><div><div><font face="monospace, monospace" size="1">package org.drools.examples.templates;</font></div></div><div><div><font face="monospace, monospace" size="1"><br></font></div></div><div><div><font face="monospace, monospace" size="1">global java.util.List list;</font></div></div><div><div><font face="monospace, monospace" size="1"><br></font></div></div><div><div><font face="monospace, monospace" size="1">rule &quot;first rule&quot;</font></div></div><div><div><font face="monospace, monospace" size="1">when</font></div></div><div><div><font face="monospace, monospace" size="1"><span class="gmail-Apple-tab-span" style="white-space:pre">        </span>eval(true)</font></div></div><div><div><font face="monospace, monospace" size="1">then</font></div></div><div><div><font face="monospace, monospace" size="1"><span class="gmail-Apple-tab-span" style="white-space:pre">        </span>System.out.println(&quot;first rule&quot;);</font></div></div><div><div><font face="monospace, monospace" size="1">end</font></div></div><div><div><br></div></div><div><div><font face="monospace, monospace" size="1">template &quot;cheesefans&quot;</font></div></div><div><div><font face="monospace, monospace" size="1">rule &quot;Cheese fans_@{row.rowNumber}&quot;</font></div></div><div><div><font face="monospace, monospace" size="1">    when</font></div></div><div><div><font face="monospace, monospace" size="1">        Person(age == @{age})</font></div></div><div><div><font face="monospace, monospace" size="1">        Cheese(type == &quot;@{type}&quot;)</font></div></div><div><div><font face="monospace, monospace" size="1">    then</font></div></div><div><div><font face="monospace, monospace" size="1">        list.add(&quot;@{log}&quot;);</font></div></div><div><div><font face="monospace, monospace" size="1">end</font></div></div><div><div><font face="monospace, monospace" size="1">end template</font></div></div><div><div><font face="monospace, monospace" size="1"><br></font></div></div><div><div><font face="monospace, monospace" size="1">rule &quot;last rule&quot;</font></div></div><div><div><font face="monospace, monospace" size="1">when</font></div></div><div><div><font face="monospace, monospace" size="1"><span class="gmail-Apple-tab-span" style="white-space:pre">        </span>eval(true)</font></div></div><div><div><font face="monospace, monospace" size="1">then</font></div></div><div><div><font face="monospace, monospace" size="1"><span class="gmail-Apple-tab-span" style="white-space:pre">        </span>System.out.print(&quot;last rule&quot;);</font></div></div><div><div><font face="monospace, monospace" size="1">end</font></div></div></blockquote><font face="monospace, monospace" size="1"><div><font face="monospace, monospace" size="1"><br></font></div><div><span style="font-family:arial,sans-serif;font-size:small"> ...results in the following output, where the first and last rule appear at the top followed</span><br></div><div><span style="font-family:arial,sans-serif;font-size:small">by the template rules in <i>reverse </i>row order. Any suggestions to achieve the desired order?</span></div></font><div><br></div><div><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div><br></div><div><div><font face="monospace, monospace" size="1">package org.drools.examples.templates;</font></div></div><div><div><font face="monospace, monospace" size="1">global java.util.List list;</font></div></div><div><div><font face="monospace, monospace" size="1">rule &quot;first rule&quot;</font></div></div><div><div><font face="monospace, monospace" size="1">when</font></div></div><div><div><font face="monospace, monospace" size="1"><span class="gmail-Apple-tab-span" style="white-space:pre">        </span>eval(true)</font></div></div><div><div><font face="monospace, monospace" size="1">then</font></div></div><div><div><font face="monospace, monospace" size="1"><span class="gmail-Apple-tab-span" style="white-space:pre">        </span>System.out.println(&quot;first rule&quot;);</font></div></div><div><div><font face="monospace, monospace" size="1">end</font></div></div><div><div><font face="monospace, monospace" size="1">rule &quot;last rule&quot;</font></div></div><div><div><font face="monospace, monospace" size="1">when</font></div></div><div><div><font face="monospace, monospace" size="1"><span class="gmail-Apple-tab-span" style="white-space:pre">        </span>eval(true)</font></div></div><div><div><font face="monospace, monospace" size="1">then</font></div></div><div><div><font face="monospace, monospace" size="1"><span class="gmail-Apple-tab-span" style="white-space:pre">        </span>System.out.print(&quot;last rule&quot;);</font></div></div><div><div><font face="monospace, monospace" size="1">end</font></div></div><div><div><font face="monospace, monospace" size="1"><br></font></div></div><div><div><font face="monospace, monospace" size="1">rule &quot;Cheese fans_3&quot;</font></div></div><div><div><font face="monospace, monospace" size="1">    when</font></div></div><div><div><font face="monospace, monospace" size="1">        Person(age == Really old guy)</font></div></div><div><div><font face="monospace, monospace" size="1">        Cheese(type == &quot;65&quot;)</font></div></div><div><div><font face="monospace, monospace" size="1">    then</font></div></div><div><div><font face="monospace, monospace" size="1">        list.add(&quot;provolone&quot;);</font></div></div><div><div><font face="monospace, monospace" size="1">end</font></div></div><div><div><font face="monospace, monospace" size="1"><br></font></div></div><div><div><font face="monospace, monospace" size="1">rule &quot;Cheese fans_2&quot;</font></div></div><div><div><font face="monospace, monospace" size="1">    when</font></div></div><div><div><font face="monospace, monospace" size="1">        Person(age == Young guy)</font></div></div><div><div><font face="monospace, monospace" size="1">        Cheese(type == &quot;21&quot;)</font></div></div><div><div><font face="monospace, monospace" size="1">    then</font></div></div><div><div><font face="monospace, monospace" size="1">        list.add(&quot;cheddar&quot;);</font></div></div><div><div><font face="monospace, monospace" size="1">end</font></div></div><div><div><font face="monospace, monospace" size="1"><br></font></div></div><div><div><font face="monospace, monospace" size="1">rule &quot;Cheese fans_1&quot;</font></div></div><div><div><font face="monospace, monospace" size="1">    when</font></div></div><div><div><font face="monospace, monospace" size="1">        Person(age == Old guy)</font></div></div><div><div><font face="monospace, monospace" size="1">        Cheese(type == &quot;42&quot;)</font></div></div><div><div><font face="monospace, monospace" size="1">    then</font></div></div><div><div><font face="monospace, monospace" size="1">        list.add(&quot;stilton&quot;);</font></div></div><div><div><font face="monospace, monospace" size="1">end</font></div></div><div><font face="monospace, monospace" size="1"><br></font></div></blockquote>Cheers,<font face="monospace, monospace" size="1"><br></font></div><div>Patrick</div></div>