<div><p class="MsoNormal" style="margin-bottom:12.0pt">Wolfgang,</p><p class="MsoNormal" style="margin-bottom:12.0pt">I have enclosed the template. For debugging purpose, I have removed all but one rule. </p><p class="MsoNormal" style="margin-bottom:12.0pt">
Thanks, </p><p class="MsoNormal" style="margin-bottom:12.0pt">Roger</p><p class="MsoNormal" style="margin-bottom:12.0pt"><br></p><p class="MsoNormal" style="margin-bottom:12.0pt">- O -</p><p class="MsoNormal" style="margin-bottom:12.0pt">
template header<br>
summerOnPeakPrimaryRate<br>
summerOnPeakSecondaryRate<br>
summerSemiPeakPrimaryRate<br>
summerSemiPeakSecondaryRate<br>
summerOffPeakPrimaryRate<br>
summerOffPeakSecondaryRate<br>
winterOnPeakPrimaryRate<br>
winterOnPeakSecondaryRate<br>
winterSemiPeakPrimaryRate<br>
winterSemiPeakSecondaryRate<br>
winterOffPeakPrimaryRate<br>
winterOffPeakSecondaryRate<br>
<br>
package tradex.contract.sde<br>
<br>
import tradex.process.ruler.server.ContractRule<br>
<br>
rule &quot;holiday july 4th&quot;<br>
when<br>
  $r : ContractRule( year == 2010 &amp;&amp; month == 7 &amp;&amp; day ==
4 &amp;&amp; holiday == false)<br>
then<br>
  modify($r){<br>
    setHoliday(true)<br>
  }<br>
end<br>
<br>
rule &quot;holiday xmas&quot;<br>
when<br>
  $r : ContractRule( year == 2010 &amp;&amp; month == 12 &amp;&amp; day ==
25 &amp;&amp; holiday == false)<br>
then<br>
  modify($r){<br>
    setHoliday(true)<br>
  }<br>
end<br>
<br>
rule &quot;Season summer&quot;<br>
when<br>
  $r : ContractRule( dayOfYear &gt;= 121 &amp;&amp; dayOfYear &lt;= 273
&amp;&amp; season == &quot;undefined&quot;)<br>
then<br>
  modify($r){<br>
    setSeason(&quot;summer&quot;)<br>
  }<br>
end<br>
<br>
rule &quot;Season winter&quot;<br>
when<br>
  $r : ContractRule( (dayOfYear &gt;= 274 || dayOfYear &lt;= 120)
&amp;&amp; season == &quot;undefined&quot;)<br>
then<br>
  modify($r){<br>
    setSeason(&quot;winter&quot;)<br>
  }<br>
end<br>
<br>
<br>
rule &quot;On peak hour&quot;<br>
when<br>
  $r : ContractRule( holiday == false &amp;&amp; dayOfWeek &gt;= 1
&amp;&amp; dayOfWeek &lt;= 6  &amp;&amp; hourOfDay &gt;= 1400 &amp;&amp;
hourOfDay &lt;= 2000 &amp;&amp; <br>
  hourType == &quot;undefined&quot;)<br>
then<br>
  modify($r){<br>
    setHourType(&quot;onPeak&quot;)<br>
  }<br>
<br>
end<br>
<br>
rule &quot;Semi peak hour&quot;<br>
when<br>
  $r : ContractRule( holiday == false &amp;&amp; dayOfWeek &gt;= 1
&amp;&amp; dayOfWeek &lt;= 6  &amp;&amp; (hourOfDay &gt;= 600 &amp;&amp;
hourOfDay &lt; 1400 ||  <br>
  hourOfDay &gt; 2000 &amp;&amp; hourOfDay &lt;= 2200) &amp;&amp; hourType
== &quot;undefined&quot;)<br>
then<br>
  modify($r){<br>
    setHourType(&quot;semiPeak&quot;)<br>
  }<br>
end<br>
<br>
rule &quot;Off peak hour&quot;<br>
when<br>
  $r : ContractRule( (holiday == true ||  dayOfWeek == 7  ||
hourOfDay &lt; 600 || hourOfDay &gt; 2200) &amp;&amp; hourType ==
&quot;undefined&quot; )<br>
then<br>
  modify($r){<br>
    setHourType(&quot;offPeak&quot;)<br>
  }<br>
end<br>
<br>
template contract_rate<br>
  rule &quot;Summer on peak primary rate&quot;<br>
  when<br>
    $r : ContractRule( season == &quot;summer&quot; &amp;&amp;
hourType == &quot;onPeak&quot; &amp;&amp; type == &quot;primary&quot;)<br>
  then<br>
    $r.setRate(@{summerOnPeakPrimaryRate});<br>
  end<br>
end template<br style="mso-special-character:line-break">
<br style="mso-special-character:line-break">
</p></div><div><br></div><br><br><div class="gmail_quote">2010/11/9 Wolfgang Laun <span dir="ltr">&lt;<a href="mailto:wolfgang.laun@gmail.com">wolfgang.laun@gmail.com</a>&gt;</span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Seeing the template .drl would help to resolve this. Are all @{parameter}s declared in the template header?<br>-W<br><br><div class="gmail_quote">2010/11/9 Roger Smith <span dir="ltr">&lt;<a href="mailto:rogersmith1711@gmail.com" target="_blank">rogersmith1711@gmail.com</a>&gt;</span><br>

<blockquote class="gmail_quote" style="border-left:1px solid rgb(204, 204, 204);margin:0pt 0pt 0pt 0.8ex;padding-left:1ex"><div><div></div><div class="h5"><div> </div>
<div><span style="font-family:&#39;Times New Roman&#39;,&#39;serif&#39;;font-size:12pt">All - </span></div>
<div><span style="font-family:&#39;Times New Roman&#39;,&#39;serif&#39;;font-size:12pt"></span> </div>
<div><span style="font-family:&#39;Times New Roman&#39;,&#39;serif&#39;;font-size:12pt">I tried out Drools rule template with a </span><span style="font-family:&#39;Times New Roman&#39;,&#39;serif&#39;;font-size:12pt">with a proptotype app. Drools is throwing NullPointerException as below. I would much appreciate if someone on this list can help.  </span></div>



<div><span style="font-family:&#39;Times New Roman&#39;,&#39;serif&#39;;font-size:12pt"><br>java.lang.NullPointerException<br>    at org.drools.template.parser.DefaultTemplateColumn.createCellCondition(DefaultTemplateColumn.java:68)<br>


    at org.drools.template.parser.DefaultTemplateColumn.addCondition(DefaultTemplateColumn.java:91)<br>    at org.drools.template.parser.DefaultTemplateRuleBase.createColumnConditions(DefaultTemplateRuleBase.java:105)<br>


    at org.drools.template.parser.DefaultTemplateRuleBase.createTemplateRule(DefaultTemplateRuleBase.java:98)<br>    at org.drools.template.parser.DefaultTemplateRuleBase.getDTRules(DefaultTemplateRuleBase.java:85)<br>    at org.drools.template.parser.DefaultTemplateRuleBase.&lt;init&gt;(DefaultTemplateRuleBase.java:64)<br>


    at org.drools.template.parser.TemplateDataListener.&lt;init&gt;(TemplateDataListener.java:76)<br>    at org.drools.template.parser.TemplateDataListener.&lt;init&gt;(TemplateDataListener.java:52)<br>    at org.drools.template.ObjectDataCompiler.compile(ObjectDataCompiler.java:44)<br>


 </span></div>
<div><span style="font-family:&#39;Times New Roman&#39;,&#39;serif&#39;;font-size:12pt"></span> </div>
<div><span style="font-family:&#39;Times New Roman&#39;,&#39;serif&#39;;font-size:12pt">Here is my code <br><br>        KnowledgeBuilder kBuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();<br>        ObjectDataCompiler converter = new ObjectDataCompiler();<br>


        InputStream dis = new FileInputStream( new File( &quot;/home/pranab/Projects/gridx/ct11_1.drl&quot; ) );<br>        if (null == dis){<br>          System.out.println(&quot;null rule template stream&quot;);<br>          return;<br>


        }<br><br>        Collection&lt;Map&lt;String,Object&gt;&gt; paramMaps = new ArrayList&lt;Map&lt;String,Object&gt;&gt;();<br><br>        Map&lt;String,Object&gt; params = new HashMap&lt;String,Object&gt;();<br><br>


        params.put(&quot;summerOnPeakPrimaryRate&quot;, new Integer(299));<br>        params.put(&quot;summerOnPeakSecondaryRate&quot;, new Integer(524));<br>        params.put(&quot;summerSemiPeakPrimaryRate&quot;, new Integer(176));<br>


        params.put(&quot;summerSemiPeakSecondaryRate&quot;, new Integer(305));<br>        params.put(&quot;summerOffPeakPrimaryRate&quot;, new Integer(139));<br>        params.put(&quot;summerOffPeakSecondaryRate&quot;, new Integer(243));<br>


        params.put(&quot;winterOnPeakPrimaryRate&quot;, new Integer(249));<br>        params.put(&quot;winterOnPeakSecondaryRate&quot;, new Integer(438));<br>        params.put(&quot;winterSemiPeakPrimaryRate&quot;, new Integer(176));<br>


        params.put(&quot;winterSemiPeakSecondaryRate&quot;, new Integer(305));<br>        params.put(&quot;winterOffPeakPrimaryRate&quot;, new Integer(139));<br>        params.put(&quot;winterOffPeakSecondaryRate&quot;, new Integer(243));<br>


        paramMaps.add(params);<br><br>        <span style="color:rgb(0, 0, 153)">String drl = converter.compile(paramMaps, dis);</span><br>        Reader rdr = new StringReader( drl );<br>        kBuilder.add( ResourceFactory.newReaderResource(rdr), ResourceType.DRL);<br>


<br><br>The line in blue is throwing the exception. This code is very similar to the example code in Drools Expert guide.</span></div>
<div><span style="font-family:&#39;Times New Roman&#39;,&#39;serif&#39;;font-size:12pt"></span> </div>
<div><span style="font-family:&#39;Times New Roman&#39;,&#39;serif&#39;;font-size:12pt">Best, </span></div>
<div><span style="font-family:&#39;Times New Roman&#39;,&#39;serif&#39;;font-size:12pt"></span> </div><font color="#888888">
<div><span style="font-family:&#39;Times New Roman&#39;,&#39;serif&#39;;font-size:12pt">Roger</span><span style="font-family:&#39;Times New Roman&#39;,&#39;serif&#39;;font-size:12pt"></span></div>
<div><br> </div>
</font><br></div></div>_______________________________________________<br>
rules-users mailing list<div class="im"><br>
<a href="mailto:rules-users@lists.jboss.org" target="_blank">rules-users@lists.jboss.org</a><br>
</div><a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
<br></blockquote></div><br>
<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><br>
<br></blockquote></div><br>