Hi Vlad,<br><br>There is a very basic wiki page on it (<a href="http://wiki.jboss.org/wiki/Wiki.jsp?page=DecisionTableTemplates" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://wiki.jboss.org/wiki/Wiki.jsp?page=DecisionTableTemplates
</a>).<br><br>In terms of the functionality you mention you have your data having knowledge of the rule templates whereas the current implementation is such that the data has no knowledge of the templates. You can apply multiple rule templates to the same data however (as in ExternalSpreadsheetCompilerIntegrationTest):
<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; final ExternalSpreadsheetCompiler converter = new ExternalSpreadsheetCompiler();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; final List listeners = new ArrayList();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ExternalSheetListener l1 = new ExternalSheetListener(10, 3, &quot;/templates/test_pricing1.drl&quot;);
<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; listeners.add(l1);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ExternalSheetListener l2 = new ExternalSheetListener(30, 3, &quot;/templates/test_pricing2.drl&quot;);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; listeners.add(l2);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; converter.compile(&quot;/data/ExamplePolicyPricing.xls&quot;, 
InputType.XLS, listeners);<br><br>This example assumes two sets of data in the one sheet, however they could both have been applied to the same set (ie. the second listener could also point to row 10, column 3). Would that accomplish what you need?
<br><br>Steve<br><br><br><br><div><span class="gmail_quote">
On 2/20/07, <b class="gmail_sendername">Olenin, Vladimir (MOH)</b> &lt;<a href="mailto:Vladimir.Olenin@moh.gov.on.ca" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">Vladimir.Olenin@moh.gov.on.ca</a>

&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">












<div link="blue" vlink="blue" lang="EN-US">

<div>

<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;">Thanks, Steve. That really seems to do the
trick. Are there any wiki pages on this new functionality? Or for now one
should refer to the source code &amp; unit tests?</span></font></p>

<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;">&nbsp;</span></font></p>

<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;">I also wonder what other functionality the
new templating engine has? Is it possible to define different &#39;types&#39;
of rules in the same &#39;rule&#39; template and refer to these types from &#39;Excel&#39;
data fields (eg, have one column per rule where you can refer &#39;rule
template XXX&#39; from drl file; this value can override some default value
for example). If not, how such situations can be handled? (ie, when one needs
several type of rules driven by the same data?)</span></font></p>

<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;">&nbsp;</span></font></p>

<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;">Thanks,</span></font></p>

<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;">&nbsp;</span></font></p>

<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;">Vlad</span></font></p>

<div>

<div style="text-align: center;" align="center"><font face="Times New Roman" size="3"><span style="font-size: 12pt;">

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

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

<p><b><font face="Tahoma" size="2"><span style="font-size: 10pt; font-family: Tahoma; font-weight: bold;">From:</span></font></b><font face="Tahoma" size="2"><span style="font-size: 10pt; font-family: Tahoma;">
<a href="mailto:rules-users-bounces@lists.jboss.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">rules-users-bounces@lists.jboss.org</a>
[mailto:<a href="mailto:rules-users-bounces@lists.jboss.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">rules-users-bounces@lists.jboss.org</a>] <b><span style="font-weight: bold;">On
Behalf Of </span></b>Steven Williams<br>
<b><span style="font-weight: bold;">Sent:</span></b> 17 February 2007 04:25<br>
<b><span style="font-weight: bold;">To:</span></b> Rules Users List<br>
<b><span style="font-weight: bold;">Subject:</span></b> Re: [rules-users]
conditional insert of &#39;exist&#39; or &#39;not&#39; keywords in decision table s</span></font></p>

</div><div><span>

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

<p style="margin-bottom: 12pt;"><font face="Times New Roman" size="3"><span style="font-size: 12pt;">Hi Vlad,<br>
<br>
With the new decision table handling you could use the following template to do
it:<br>
<br>
Given a table as follows:</span></font></p>

<table style="border-collapse: collapse;" border="0" cellpadding="0" cellspacing="0">
 <tbody><tr>
  <td style="border-style: none solid solid; border-color: -moz-use-text-color windowtext windowtext; border-width: medium 1pt 1pt; padding: 0cm 5.4pt; width: 221.4pt;" valign="top" width="295">
  <p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">exists,
  21, 25</span></font></p>
  </td>
  <td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 221.4pt;" valign="top" width="295">



  <p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">,
  comprehensive</span></font></p>
  </td>
 </tr>
 <tr>
  <td style="border-style: none solid solid; border-color: -moz-use-text-color windowtext windowtext; border-width: medium 1pt 1pt; padding: 0cm 5.4pt; width: 221.4pt;" valign="top" width="295">
  <p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">not,
  64, 100</span></font></p>
  </td>
  <td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 221.4pt;" valign="top" width="295">



  <p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">exists,
  comprehensive</span></font></p>
  </td>
 </tr>
</tbody></table>

<p><font face="Times New Roman" size="3"><span style="font-size: 12pt;">the
following template does what you want:</span></font></p>

<p><font face="Times New Roman" size="3"><span style="font-size: 12pt;">template
header<br>
driver[]<br>
policy[]<br>
<br>
package This_is_a_ruleset;<br>
#generated from Decision Table<br>
import example.model.Driver;<br>
import example.model.Policy ;<br>
<br>
template &quot;Driver policy&quot;<br>
driver<br>
policy<br>
<br>
rule &quot;driver policy $row.rowNumber$&quot;<br>
&nbsp;&nbsp; &nbsp;when<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;$driver0$<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;Driver(age &gt;= $driver1$, age &lt;=
$driver2$)<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;$policy0$ <br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;Policy(type = &quot;$policy1$&quot;)<br>
then<br>
&nbsp;&nbsp; &nbsp;//do smth<br>
end<br>
end template</span></font></p>

<p style="margin-bottom: 12pt;"><font face="Times New Roman" size="3"><span style="font-size: 12pt;">the code to call it was:<br>
&nbsp;&nbsp;&nbsp; public void testColumnKeywords() {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; final ExternalSpreadsheetCompiler
converter = new ExternalSpreadsheetCompiler(); <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; final String drl =
converter.compile( &quot;/data/TestWorkbook.xls&quot;,
&quot;/templates/test_keywords.drl&quot;,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
InputType.XLS, 1, 1 ); // DT starts at Row 1, Column 1 <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(drl);<br>
&nbsp;&nbsp;&nbsp; }<br>
<br>
cheers<br>
Steve</span></font></p>

<div>

<p><span><font face="Times New Roman" size="3"><span style="font-size: 12pt;">On 2/17/07, <b><span style="font-weight: bold;">Olenin,
Vladimir (MOH)</span></b> &lt;<a href="mailto:Vladimir.Olenin@moh.gov.on.ca" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
Vladimir.Olenin@moh.gov.on.ca</a>&gt; wrote:</span></font></span></p>

<div link="blue" vlink="purple">

<div>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">Hi,</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">&nbsp;</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">I
wonder if it&#39;s possible to pass some Column keywords as parameters from template
values, eg:</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">&nbsp;</span></font></p>

<table style="border-collapse: collapse;" border="0" cellpadding="0" cellspacing="0">
 <tbody><tr>
  <td style="border: 1pt solid windowtext; padding: 0cm 5.4pt; width: 221.4pt;" valign="top" width="295">
  <p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">Condition</span></font></p>
  </td>
  <td style="border-style: solid solid solid none; border-color: -moz-use-text-color; border-width: 1pt 1pt 1pt medium; padding: 0cm 5.4pt; width: 221.4pt;" valign="top" width="295">
  <p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">Condition</span></font></p>
  </td>
 </tr>
 <tr>
  <td style="border-style: none solid solid; border-color: -moz-use-text-color windowtext windowtext; border-width: medium 1pt 1pt; padding: 0cm 5.4pt; width: 221.4pt;" valign="top" width="295">
  <p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">$1
  Driver</span></font></p>
  </td>
  <td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 221.4pt;" valign="top" width="295">



  <p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">$1
  Policy</span></font></p>
  </td>
 </tr>
 <tr>
  <td style="border-style: none solid solid; border-color: -moz-use-text-color windowtext windowtext; border-width: medium 1pt 1pt; padding: 0cm 5.4pt; width: 221.4pt;" valign="top" width="295">
  <p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">age
  &gt;= $2, age &lt;= $3</span></font></p>
  </td>
  <td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 221.4pt;" valign="top" width="295">



  <p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">type</span></font></p>
  </td>
 </tr>
 <tr>
  <td style="border-style: none solid solid; border-color: -moz-use-text-color windowtext windowtext; border-width: medium 1pt 1pt; padding: 0cm 5.4pt; width: 221.4pt;" valign="top" width="295">
  <p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">exists,
  21, 25</span></font></p>
  </td>
  <td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 221.4pt;" valign="top" width="295">



  <p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">,
  comprehensive</span></font></p>
  </td>
 </tr>
 <tr>
  <td style="border-style: none solid solid; border-color: -moz-use-text-color windowtext windowtext; border-width: medium 1pt 1pt; padding: 0cm 5.4pt; width: 221.4pt;" valign="top" width="295">
  <p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">not,
  64, 100</span></font></p>
  </td>
  <td style="border-style: none solid solid none; border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0cm 5.4pt; width: 221.4pt;" valign="top" width="295">



  <p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">exists,
  comprehensive</span></font></p>
  </td>
 </tr>
</tbody></table>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">&nbsp;</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">I&#39;d
expect the above table would generate two rules like:</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">&nbsp;</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">Rule
1</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">When</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
exists Driver (age &gt;= 21, age &lt;= 25)</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Policy(type == &quot;comprehensive&quot;)</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">Then</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// do smth</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">End</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">&nbsp;</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">&nbsp;</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">Rule
2</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">When</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
not Driver (age &gt;= 64, age &lt;= 100)</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
exists Policy (type == &quot;comprehensive&quot;)</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">then</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// do smth</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">End</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">&nbsp;</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">&nbsp;</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">&nbsp;</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">The
above example is just a mock up derived from one of the examples in the
documentation to demonstrate the point (meaning, the rules themselves might not
make sense from business point of view or can be implemented differently for
this particular case).</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">&nbsp;</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">So,
any way to achieve this? Whether in current version (3.0.x) or the upcoming
release (3.2)</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">&nbsp;</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">Thanks,</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">&nbsp;</span></font></p>

<p><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">Vlad</span></font></p>

</div>

</div>

<p style="margin-bottom: 12pt;"><font face="Times New Roman" size="3"><span style="font-size: 12pt;"><br>
_______________________________________________<br>
rules-users mailing list<br>
<a href="mailto:rules-users@lists.jboss.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">rules-users@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">https://lists.jboss.org/mailman/listinfo/rules-users</a></span></font></p>

</div>

<p><font face="Times New Roman" size="3"><span style="font-size: 12pt;"><br>
<br clear="all">
<br>
-- <br>
Steven Williams<br>
<br>
Supervising Consultant<br>
<br>
Object Consulting<br>
Office: 8615 4500 Mob: 0439 898 668 Fax: 8615 4501 <br>
<a href="mailto:stevenw@objectconsulting.com.au" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">stevenw@objectconsulting.com.au</a><br>
<a href="http://www.objectconsulting.com.au" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">www.objectconsulting.com.au</a><br>
<br>
consulting | development | training | support <br>
our experience makes the difference </span></font></p>

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

</div>


<br>_______________________________________________<br>rules-users mailing list<br><a href="mailto:rules-users@lists.jboss.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">rules-users@lists.jboss.org
</a><br><a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
https://lists.jboss.org/mailman/listinfo/rules-users</a><br><br></blockquote></div><br><br clear="all"><br>-- <br>Steven Williams<br><br>Supervising Consultant<br><br>Object Consulting<br>Office: 8615 4500 Mob: 0439 898 668 Fax: 8615 4501
<br><a href="mailto:stevenw@objectconsulting.com.au" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">stevenw@objectconsulting.com.au</a><br><a href="http://www.objectconsulting.com.au" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">

www.objectconsulting.com.au</a><br><br>consulting | development | training | support
<br>our experience makes the difference