<html xmlns:v="urn:schemas-microsoft-com:vml" 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)">
<!--[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]-->
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 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.EmailStyle20
        {mso-style-type:personal-reply;
        font-family:Arial;
        color:navy;}
@page Section1
        {size:612.0pt 792.0pt;
        margin:72.0pt 90.0pt 72.0pt 90.0pt;}
div.Section1
        {page:Section1;}
-->
</style>

</head>

<body lang=EN-US link=blue vlink=blue>

<div class=Section1>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;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?<o:p></o:p></span></font></p>

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

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>I also wonder what other functionality the
new templating engine has? Is it possible to define different &#8216;types&#8217;
of rules in the same &#8216;rule&#8217; template and refer to these types from &#8216;Excel&#8217;
data fields (eg, have one column per rule where you can refer &#8216;rule
template XXX&#8217; 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?)<o:p></o:p></span></font></p>

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

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>Thanks,<o:p></o:p></span></font></p>

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

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>Vlad<o:p></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'>From:</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'>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 'exist' or 'not' keywords in decision table s</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'>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:<o:p></o:p></span></font></p>

<table class=MsoNormalTable border=0 cellspacing=0 cellpadding=0
 style='border-collapse:collapse'>
 <tr>
  <td width=295 valign=top style='width:221.4pt;border:solid windowtext 1.0pt;
  border-top:none;padding:0cm 5.4pt 0cm 5.4pt;border-color:-moz-use-text-color windowtext windowtext'>
  <p><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>exists,
  21, 25</span></font><o:p></o:p></p>
  </td>
  <td width=295 valign=top style='width:221.4pt;border-top:none;border-left:
  none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
  padding:0cm 5.4pt 0cm 5.4pt;border-color:-moz-use-text-color windowtext windowtext -moz-use-text-color'>
  <p><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>,
  comprehensive</span></font><o:p></o:p></p>
  </td>
 </tr>
 <tr>
  <td width=295 valign=top style='width:221.4pt;border:solid windowtext 1.0pt;
  border-top:none;padding:0cm 5.4pt 0cm 5.4pt;border-color:-moz-use-text-color windowtext windowtext'>
  <p><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>not,
  64, 100</span></font><o:p></o:p></p>
  </td>
  <td width=295 valign=top style='width:221.4pt;border-top:none;border-left:
  none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
  padding:0cm 5.4pt 0cm 5.4pt;border-color:-moz-use-text-color windowtext windowtext -moz-use-text-color'>
  <p><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>exists,
  comprehensive</span></font><o:p></o:p></p>
  </td>
 </tr>
</table>

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

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

<div>

<p class=MsoNormal><span class=gmailquote><font size=3 face="Times New Roman"><span
style='font-size:12.0pt'>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">
Vladimir.Olenin@moh.gov.on.ca</a>&gt; wrote:</span></font></span><o:p></o:p></p>

<div link=blue vlink=purple>

<div>

<p><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>Hi,</span></font><o:p></o:p></p>

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

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

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

<table class=MsoNormalTable border=0 cellspacing=0 cellpadding=0
 style='border-collapse:collapse'>
 <tr>
  <td width=295 valign=top style='width:221.4pt;border:solid windowtext 1.0pt;
  padding:0cm 5.4pt 0cm 5.4pt'>
  <p><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>Condition</span></font><o:p></o:p></p>
  </td>
  <td width=295 valign=top style='width:221.4pt;border:solid windowtext 1.0pt;
  border-left:none;padding:0cm 5.4pt 0cm 5.4pt;border-color:-moz-use-text-color'>
  <p><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>Condition</span></font><o:p></o:p></p>
  </td>
 </tr>
 <tr>
  <td width=295 valign=top style='width:221.4pt;border:solid windowtext 1.0pt;
  border-top:none;padding:0cm 5.4pt 0cm 5.4pt;border-color:-moz-use-text-color windowtext windowtext'>
  <p><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>$1
  Driver</span></font><o:p></o:p></p>
  </td>
  <td width=295 valign=top style='width:221.4pt;border-top:none;border-left:
  none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
  padding:0cm 5.4pt 0cm 5.4pt;border-color:-moz-use-text-color windowtext windowtext -moz-use-text-color'>
  <p><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>$1
  Policy</span></font><o:p></o:p></p>
  </td>
 </tr>
 <tr>
  <td width=295 valign=top style='width:221.4pt;border:solid windowtext 1.0pt;
  border-top:none;padding:0cm 5.4pt 0cm 5.4pt;border-color:-moz-use-text-color windowtext windowtext'>
  <p><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>age
  &gt;= $2, age &lt;= $3</span></font><o:p></o:p></p>
  </td>
  <td width=295 valign=top style='width:221.4pt;border-top:none;border-left:
  none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
  padding:0cm 5.4pt 0cm 5.4pt;border-color:-moz-use-text-color windowtext windowtext -moz-use-text-color'>
  <p><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>type</span></font><o:p></o:p></p>
  </td>
 </tr>
 <tr>
  <td width=295 valign=top style='width:221.4pt;border:solid windowtext 1.0pt;
  border-top:none;padding:0cm 5.4pt 0cm 5.4pt;border-color:-moz-use-text-color windowtext windowtext'>
  <p><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>exists,
  21, 25</span></font><o:p></o:p></p>
  </td>
  <td width=295 valign=top style='width:221.4pt;border-top:none;border-left:
  none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
  padding:0cm 5.4pt 0cm 5.4pt;border-color:-moz-use-text-color windowtext windowtext -moz-use-text-color'>
  <p><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>,
  comprehensive</span></font><o:p></o:p></p>
  </td>
 </tr>
 <tr>
  <td width=295 valign=top style='width:221.4pt;border:solid windowtext 1.0pt;
  border-top:none;padding:0cm 5.4pt 0cm 5.4pt;border-color:-moz-use-text-color windowtext windowtext'>
  <p><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>not,
  64, 100</span></font><o:p></o:p></p>
  </td>
  <td width=295 valign=top style='width:221.4pt;border-top:none;border-left:
  none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
  padding:0cm 5.4pt 0cm 5.4pt;border-color:-moz-use-text-color windowtext windowtext -moz-use-text-color'>
  <p><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>exists,
  comprehensive</span></font><o:p></o:p></p>
  </td>
 </tr>
</table>

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

<p><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>I'd
expect the above table would generate two rules like:</span></font><o:p></o:p></p>

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

<p><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>Rule
1</span></font><o:p></o:p></p>

<p><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>When</span></font><o:p></o:p></p>

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

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

<p><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>Then</span></font><o:p></o:p></p>

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

<p><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>End</span></font><o:p></o:p></p>

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

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

<p><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>Rule
2</span></font><o:p></o:p></p>

<p><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>When</span></font><o:p></o:p></p>

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

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

<p><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>then</span></font><o:p></o:p></p>

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

<p><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>End</span></font><o:p></o:p></p>

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

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

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

<p><font size=2 face=Arial><span style='font-size:10.0pt;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><o:p></o:p></p>

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

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

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

<p><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>Thanks,</span></font><o:p></o:p></p>

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

<p><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>Vlad</span></font><o:p></o:p></p>

</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'><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">stevenw@objectconsulting.com.au</a><br>
<a href="http://www.objectconsulting.com.au">www.objectconsulting.com.au</a><br>
<br>
consulting | development | training | support <br>
our experience makes the difference <o:p></o:p></span></font></p>

</div>

</body>

</html>