<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:st1="urn:schemas-microsoft-com:office:smarttags" 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]--><o:SmartTagType
 namespaceuri="urn:schemas-microsoft-com:office:smarttags" name="PersonName"/>
<!--[if !mso]>
<style>
st1\:*{behavior:url(#default#ieooui) }
</style>
<![endif]-->
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@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>

<div>

<p class=MsoNormal><font size=3 color=navy face="Times New Roman"><span
style='font-size:12.0pt;color:navy'>Hi, Steve,<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=3 color=navy face="Times New Roman"><span
style='font-size:12.0pt;color:navy'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=3 color=navy face="Times New Roman"><span
style='font-size:12.0pt;color:navy'>---<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>I can certainly look at adding some extra config options to the
listeners to allow an end row/column to be specified. I'm not sure the other
things would be useful to many people (correct me if I'm wrong). <br>
---<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>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=3 color=navy face="Times New Roman"><span
style='font-size:12.0pt;color:navy'>That definitely would be useful. As to the &#8216;data
driven template selection&#8217;, I don&#8217;t know if many people ran into
such use cases or not. One thing for sure, the data model in Excel spreadsheet
can be simplified to a great degree for many applications if one can select
appropriate rule template for particular rule (meaning, the columns or
combination of columns can mean slightly different things for each row). It&#8217;s
somewhat similar to the MVC pattern, where Model &#8211; is data in Excel
spreadsheet, View &#8211; the rule tempaltes in drl file. The thing that is &#8216;missing&#8217;
(or not quite missing &#8211; it&#8217;s not very flexible and does not depend
on the data submitted) is the data driven Controller. Right now the &#8216;Controller&#8217;
is driven from the &#8216;outside&#8217; by &#8216;hardcoded&#8217; links between
data and template (hardcoded in a sense that someone has to define which
template goes with which model). The rule template &#8216;data&#8217; can not
be applied to any rule template, but just to the template it was supposed to be
used with. It seems like it might be good to maintain this dependency right
with the rule data.<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=3 color=navy face="Times New Roman"><span
style='font-size:12.0pt;color:navy'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=3 color=navy face="Times New Roman"><span
style='font-size:12.0pt;color:navy'>If you would have time to make the
modification (indicate end column/row) that would help to achieve such
functionality (I&#8217;ll write the preprocessing module and submit it here
when/if I eventually get to it). Yet even more powerful concept might be to be
able to define &#8216;rule template name&#8217; within the same &#8216;rule
template&#8217; file vs a separate rule template file. The implementation might
be a bit more involved though&#8230;<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=3 color=navy face="Times New Roman"><span
style='font-size:12.0pt;color:navy'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=3 color=navy face="Times New Roman"><span
style='font-size:12.0pt;color:navy'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=3 color=navy face="Times New Roman"><span
style='font-size:12.0pt;color:navy'>Thanks!<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=3 color=navy face="Times New Roman"><span
style='font-size:12.0pt;color:navy'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=3 color=navy face="Times New Roman"><span
style='font-size:12.0pt;color:navy'>Vlad<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=3 color=navy face="Times New Roman"><span
style='font-size:12.0pt;color:navy'>&nbsp;</span></font><o:p></o:p></p>

</div>

<div>

<div class=MsoNormal align=center style='margin-left:36.0pt;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 style='margin-left:36.0pt'><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> 20 February 2007 22:25<br>
<b><span style='font-weight:bold'>To:</span></b> <st1:PersonName w:st="on">Rules
 Users List</st1:PersonName><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 style='margin-left:36.0pt'><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='mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:36.0pt'><font size=3 face="Times New Roman"><span
style='font-size:12.0pt'>Hi Vlad,<br>
<br>
I can certainly look at adding some extra config options to the listeners to
allow an end row/column to be specified. I'm not sure the other things would be
useful to many people (correct me if I'm wrong). <br>
<br>
If you do go down the preprocessing option you could use JXL instead of POI as
you will already have a dependency on it for the drools decision table stuff.
I'm not sure why we changed from POI to JXL but I have found it very easy to
use. <br>
<br>
cheers<br>
Steve<o:p></o:p></span></font></p>

<div>

<p class=MsoNormal style='margin-left:36.0pt'><span class=gmailquote><font
size=3 face="Times New Roman"><span style='font-size:12.0pt'>On 2/21/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=blue>

<div>

<p style='margin-left:36.0pt'><font size=2 color=navy face=Arial><span
style='font-size:10.0pt;font-family:Arial;color:navy'>Hi, Steve.</span></font><o:p></o:p></p>

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

<p style='margin-left:36.0pt'><font size=2 color=navy face=Arial><span
style='font-size:10.0pt;font-family:Arial;color:navy'>That might help, though
will require one 'external' run over the spreadsheet (ie, open Excel through
POI and read some column with rule template names) or a separate config file
which matches rules with appropriate templates. Regarding the
ExternalSheetListener constructor, is there a way to set the number of records
to read? From what I see (the API call), the l1 will process the same data as
l2 does (when the compiler will get to row '30') and the data for the second
template might not be very applicable for the first template. Basically, the
thing is starting from row 30 the data merged with template 1 might generate
invalid rules which is not desirable. Any way to avoid it?</span></font><o:p></o:p></p>

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

<p style='margin-left:36.0pt'><font size=2 color=navy face=Arial><span
style='font-size:10.0pt;font-family:Arial;color:navy'>The main reason such
functionality is required in the first place (in our project at least) is that
for some use cases the same data can mean slightly different things and should
result in slightly different rules. The number of such 'groups' is quite large
to split the 'rule data' into separate spreadsheets and the differences between
the data interpretation are quite significant for coming up with some 'generic'
data format (which could suit all rule 'groups'). There is definitely a bunch of
workarounds that can be done, but most of them would require Excel spreadsheet
preprocessing.</span></font><o:p></o:p></p>

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

<p style='margin-left:36.0pt'><font size=2 color=navy face=Arial><span
style='font-size:10.0pt;font-family:Arial;color:navy'>Within the existing API
(from the example you attached) Excel preprocessing might be the easiest thing
to do. Unless there is some more low level API which allows to insert
'interceptor' which would monitor each record that is being read by compiler
and create new listener if appropriate entry is found in the particular column
(eg, one column in the spreadsheet might have template name entry which remains
the same for all records below unless changed to a new value)&#8230;.. Smth
along those lines </span></font><font size=2 color=navy face=Wingdings><span
style='font-size:10.0pt;font-family:Wingdings;color:navy'>J</span></font><font
size=2 color=navy face=Arial><span style='font-size:10.0pt;font-family:Arial;
color:navy'> .</span></font><o:p></o:p></p>

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

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

<p style='margin-left:36.0pt'><font size=2 color=navy face=Arial><span
style='font-size:10.0pt;font-family:Arial;color:navy'>Thanks, Steve.</span></font><o:p></o:p></p>

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

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

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

<div>

<div style='margin-left:36.0pt'>

<div class=MsoNormal align=center style='margin-left:36.0pt;text-align:center'><font
size=3 face="Times New Roman"><span style='font-size:12.0pt'>

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

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

</div>

<p style='margin-left:72.0pt'><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'> <a
href="mailto:rules-users-bounces@lists.jboss.org" target="_blank">rules-users-bounces@lists.jboss.org</a>
[mailto:<a href="mailto:rules-users-bounces@lists.jboss.org" target="_blank">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> 19 February 2007 18:54<o:p></o:p></span></font></p>

<div><span id="q_110dfbe9adfc8b88_1">

<p class=MsoNormal style='margin-left:36.0pt'><font size=2 face=Tahoma><span
style='font-size:10.0pt;font-family:Tahoma'><br>
<span class=e><b><span style='font-weight:bold'>To:</span></b> <st1:PersonName
w:st="on">Rules Users List</st1:PersonName></span><br>
<span class=e><b><span style='font-weight:bold'>Subject:</span></b> Re:
[rules-users] conditional insert of 'exist' or 'not' keywords in decision table
s</span></span><o:p></o:p></span></font></p>

</div>

</div>

<div><span id="q_110dfbe9adfc8b88_3">

<p style='margin-left:72.0pt'><font size=3 face="Times New Roman"><span
style='font-size:12.0pt'>&nbsp;<o:p></o:p></span></font></p>

<p style='mso-margin-top-alt:5.0pt;margin-right:0cm;margin-bottom:12.0pt;
margin-left:72.0pt'><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>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">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>
<o:p></o:p></span></font></p>

<div>

<p style='margin-left:72.0pt'><font size=3 face="Times New Roman"><span
style='font-size:12.0pt'>On 2/20/07, <b><span style='font-weight:bold'>Olenin,
Vladimir (MOH)</span></b> &lt;<a href="mailto:Vladimir.Olenin@moh.gov.on.ca"
target="_blank"> Vladimir.Olenin@moh.gov.on.ca</a> &gt; wrote:<o:p></o:p></span></font></p>

<div link=blue vlink=blue>

<div>

<p style='margin-left:72.0pt'><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?</span></font><o:p></o:p></p>

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

<p style='margin-left:72.0pt'><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
'types' of rules in the same 'rule' template and refer to these types from
'Excel' data fields (eg, have one column per rule where you can refer 'rule
template XXX' 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><o:p></o:p></p>

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

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

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

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

<div>

<div style='margin-left:36.0pt'>

<div class=MsoNormal align=center style='margin-left:36.0pt;text-align:center'><font
size=3 face="Times New Roman"><span style='font-size:12.0pt'>

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

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

</div>

<p style='margin-left:72.0pt'><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'> <a
href="mailto:rules-users-bounces@lists.jboss.org" target="_blank">rules-users-bounces@lists.jboss.org</a>
[mailto:<a href="mailto:rules-users-bounces@lists.jboss.org" target="_blank">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> <st1:PersonName w:st="on">Rules
 Users List</st1:PersonName><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>

<div>

<p style='margin-left:72.0pt'><font size=3 face="Times New Roman"><span
style='font-size:12.0pt'>&nbsp;<o:p></o:p></span></font></p>

<p style='mso-margin-top-alt:5.0pt;margin-right:0cm;margin-bottom:12.0pt;
margin-left:72.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 width=590
 style='width:442.8pt;margin-left:72.0pt;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 style='margin-left:72.0pt'><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 style='margin-left:72.0pt'><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 style='mso-margin-top-alt:5.0pt;margin-right:0cm;margin-bottom:12.0pt;
margin-left:72.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 style='margin-left:72.0pt'><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"
target="_blank"> Vladimir.Olenin@moh.gov.on.ca</a>&gt; wrote:<o:p></o:p></span></font></p>

<div link=blue vlink=purple>

<div>

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

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

<p style='margin-left:72.0pt'><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 style='margin-left:72.0pt'><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 width=590
 style='width:442.8pt;margin-left:72.0pt;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 style='margin-left:72.0pt'><font size=2 face=Arial><span style='font-size:
10.0pt;font-family:Arial'>&nbsp;</span></font><o:p></o:p></p>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

<p style='margin-left:72.0pt'><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 style='mso-margin-top-alt:5.0pt;margin-right:0cm;margin-bottom:12.0pt;
margin-left:72.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" target="_blank">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 style='margin-left:72.0pt'><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" target="_blank">stevenw@objectconsulting.com.au</a><br>
<a href="http://www.objectconsulting.com.au" target="_blank">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>

</div>

</div>

<p style='mso-margin-top-alt:5.0pt;margin-right:0cm;margin-bottom:12.0pt;
margin-left:72.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" target="_blank">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 style='margin-left:72.0pt'><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" target="_blank">stevenw@objectconsulting.com.au</a><br>
<a href="http://www.objectconsulting.com.au" target="_blank">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>

</div>

</div>

</span>

<p class=MsoNormal style='mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:
12.0pt;margin-left:36.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 style='margin-left:36.0pt'><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>