<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 "holiday july 4th"<br>
when<br>
� $r : ContractRule( year == 2010 && month == 7 && day ==
4 && holiday == false)<br>
then<br>
� modify($r){<br>
��� setHoliday(true)<br>
� }<br>
end<br>
<br>
rule "holiday xmas"<br>
when<br>
� $r : ContractRule( year == 2010 && month == 12 && day ==
25 && holiday == false)<br>
then<br>
� modify($r){<br>
��� setHoliday(true)<br>
� }<br>
end<br>
<br>
rule "Season summer"<br>
when<br>
� $r : ContractRule( dayOfYear >= 121 && dayOfYear <= 273
&& season == "undefined")<br>
then<br>
� modify($r){<br>
��� setSeason("summer")<br>
� }<br>
end<br>
<br>
rule "Season winter"<br>
when<br>
� $r : ContractRule( (dayOfYear >= 274 || dayOfYear <= 120)
&& season == "undefined")<br>
then<br>
� modify($r){<br>
��� setSeason("winter")<br>
� }<br>
end<br>
<br>
<br>
rule "On peak hour"<br>
when<br>
� $r : ContractRule( holiday == false && dayOfWeek >= 1
&& dayOfWeek <= 6� && hourOfDay >= 1400 &&
hourOfDay <= 2000 && <br>
� hourType == "undefined")<br>
then<br>
� modify($r){<br>
��� setHourType("onPeak")<br>
� }<br>
<br>
end<br>
<br>
rule "Semi peak hour"<br>
when<br>
� $r : ContractRule( holiday == false && dayOfWeek >= 1
&& dayOfWeek <= 6� && (hourOfDay >= 600 &&
hourOfDay < 1400 ||� <br>
� hourOfDay > 2000 && hourOfDay <= 2200) && hourType
== "undefined")<br>
then<br>
� modify($r){<br>
��� setHourType("semiPeak")<br>
� }<br>
end<br>
<br>
rule "Off peak hour"<br>
when<br>
� $r : ContractRule( (holiday == true ||� dayOfWeek == 7� ||
hourOfDay < 600 || hourOfDay > 2200) && hourType ==
"undefined" )<br>
then<br>
� modify($r){<br>
��� setHourType("offPeak")<br>
� }<br>
end<br>
<br>
template contract_rate<br>
� rule "Summer on peak primary rate"<br>
� when<br>
��� $r : ContractRule( season == "summer" &&
hourType == "onPeak" && type == "primary")<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"><<a href="mailto:wolfgang.laun@gmail.com">wolfgang.laun@gmail.com</a>></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"><<a href="mailto:rogersmith1711@gmail.com" target="_blank">rogersmith1711@gmail.com</a>></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:'Times New Roman','serif';font-size:12pt">All - </span></div>
<div><span style="font-family:'Times New Roman','serif';font-size:12pt"></span>�</div>
<div><span style="font-family:'Times New Roman','serif';font-size:12pt">I tried out Drools rule template with a </span><span style="font-family:'Times New Roman','serif';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:'Times New Roman','serif';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.<init>(DefaultTemplateRuleBase.java:64)<br>
��� at org.drools.template.parser.TemplateDataListener.<init>(TemplateDataListener.java:76)<br>��� at org.drools.template.parser.TemplateDataListener.<init>(TemplateDataListener.java:52)<br>��� at org.drools.template.ObjectDataCompiler.compile(ObjectDataCompiler.java:44)<br>
�</span></div>
<div><span style="font-family:'Times New Roman','serif';font-size:12pt"></span>�</div>
<div><span style="font-family:'Times New Roman','serif';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( "/home/pranab/Projects/gridx/ct11_1.drl" ) );<br>������� if (null == dis){<br>��������� System.out.println("null rule template stream");<br>��������� return;<br>
������� }<br><br>������� Collection<Map<String,Object>> paramMaps = new ArrayList<Map<String,Object>>();<br><br>������� Map<String,Object> params = new HashMap<String,Object>();<br><br>
������� params.put("summerOnPeakPrimaryRate", new Integer(299));<br>������� params.put("summerOnPeakSecondaryRate", new Integer(524));<br>������� params.put("summerSemiPeakPrimaryRate", new Integer(176));<br>
������� params.put("summerSemiPeakSecondaryRate", new Integer(305));<br>������� params.put("summerOffPeakPrimaryRate", new Integer(139));<br>������� params.put("summerOffPeakSecondaryRate", new Integer(243));<br>
������� params.put("winterOnPeakPrimaryRate", new Integer(249));<br>������� params.put("winterOnPeakSecondaryRate", new Integer(438));<br>������� params.put("winterSemiPeakPrimaryRate", new Integer(176));<br>
������� params.put("winterSemiPeakSecondaryRate", new Integer(305));<br>������� params.put("winterOffPeakPrimaryRate", new Integer(139));<br>������� params.put("winterOffPeakSecondaryRate", 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:'Times New Roman','serif';font-size:12pt"></span>�</div>
<div><span style="font-family:'Times New Roman','serif';font-size:12pt">Best, </span></div>
<div><span style="font-family:'Times New Roman','serif';font-size:12pt"></span>�</div><font color="#888888">
<div><span style="font-family:'Times New Roman','serif';font-size:12pt">Roger</span><span style="font-family:'Times New Roman','serif';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>