<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>