<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Verdana
}
--></style>
</head>
<body class='hmmessage'>
You are right, that was the problem !<br>Thank you very much for your help.<br>Regards,<br>Benoît<br><br><hr id="stopSpelling">Date: Wed, 10 Mar 2010 11:49:05 +0000<br>From: ejdiggins@gmail.com<br>To: rules-users@lists.jboss.org<br>Subject: Re: [rules-users] Template rules &amp; eval<br><br><br>You're getting a NullPointer in the predicate... is dDeb null?<br><br>Enda<br><br><div class="ecxgmail_quote">2010/3/10 Wolfgang Laun <span dir="ltr">&lt;<a>wolfgang.laun@gmail.com</a>&gt;</span><br>
<blockquote class="ecxgmail_quote" style="padding-left: 1ex;">All I can see is that the date string is the same in Periode1 and Periode2, so you must have the same date in lines 1 and 2, which won't work well, but is perhaps due to simplification? <br>
<div><div></div><div class="h5">-W<br><br><br><br><div class="ecxgmail_quote">
2010/3/10 Bertrand Grottier <span dir="ltr">&lt;<a>b_grottier@hotmail.com</a>&gt;</span><br><blockquote class="ecxgmail_quote" style="padding-left: 1ex;">





<div>
Here is the "drl generated string":<div><br><br>package com.tarification<br>import java.util.Date ;<br>import tarification.Produit ;<br>import java.text.SimpleDateFormat;<br><br>function Date getDate(String pStrDate)<br>

{<br>&nbsp;&nbsp;&nbsp; SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");<br>&nbsp;&nbsp;&nbsp; return sdf.parse(pStrDate) ;<br>}<br><br></div>rule "Periode2"<br>&nbsp;&nbsp;&nbsp; when<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $p : Produit(id == 1, eval( dDeb.before( getDate("01/06/2010") ) ) )<br>

&nbsp;&nbsp;&nbsp; then<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $p.setId(2) ; <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $p.setPrix(100) ;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; update( $p );&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>end<br><br>rule "Periode1"<br>&nbsp;&nbsp;&nbsp; when<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $p : Produit(id == 1, eval( dDeb.before( getDate("01/06/2010") ) ) )<br>

&nbsp;&nbsp;&nbsp; then<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $p.setId(2) ; <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $p.setPrix(50) ;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; update( $p );&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>end<br><br><br>&gt; Date: Wed, 10 Mar 2010 11:41:36 +0100<br>&gt; From: <a>wolfgang.laun@gmail.com</a><br>

&gt; To: <a>rules-users@lists.jboss.org</a><br>&gt; Subject: Re: [rules-users] Template rules &amp; eval<div><div></div><div><br>&gt; <br>&gt; Can you post the "drl generated string" you are referring to?<br>

&gt; -W<br>&gt; <br>&gt; 2010/3/10 Bertrand Grottier &lt;<a>b_grottier@hotmail.com</a>&gt;:<br>&gt; &gt; Hello,<br>&gt; &gt;<br>&gt; &gt; I want to use template rules. Here is my .drt file:<br>

&gt; &gt;<br>&gt; &gt; template header<br>&gt; &gt; ddeb<br>&gt; &gt; dfin<br>&gt; &gt; prix<br>&gt; &gt;<br>&gt; &gt; package com.tarification<br>&gt; &gt;<br>&gt; &gt; import java.util.Date ;<br>&gt; &gt;<br>&gt; &gt; import tarification.Produit ;<br>

&gt; &gt; import java.text.SimpleDateFormat;<br>&gt; &gt;<br>&gt; &gt; function Date getDate(String pStrDate)<br>&gt; &gt; {<br>&gt; &gt; &nbsp;&nbsp;&nbsp; SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");<br>&gt; &gt; &nbsp;&nbsp;&nbsp; return sdf.parse(pStrDate) ;<br>

&gt; &gt; }<br>&gt; &gt;<br>&gt; &gt; template "tarification_produit"<br>&gt; &gt;<br>&gt; &gt; rule "Periode@{row.rowNumber}"<br>&gt; &gt; &nbsp;&nbsp;&nbsp; when<br>&gt; &gt; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $p : Produit(id == 1, eval( dDeb.before( getDate("@{ddeb}") ) ) )<br>

&gt; &gt; &nbsp;&nbsp;&nbsp; then<br>&gt; &gt; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $p.setId(2) ;<br>&gt; &gt; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $p.setPrix(@{prix}) ;<br>&gt; &gt; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; update( $p );<br>&gt; &gt; end<br>&gt; &gt; end template<br>&gt; &gt;<br>&gt; &gt;<br>&gt; &gt; I modified an example provided with Drools but encounter the following<br>

&gt; &gt; exception:<br>&gt; &gt;<br>&gt; &gt; Exception in thread "main" org.drools.RuntimeDroolsException: Exception<br>&gt; &gt; executing predicate<br>&gt; &gt; com.tarification.Rule_Periode2_0Predicate0Invoker@2110b61d<br>

&gt; &gt; &nbsp;&nbsp;&nbsp; at<br>&gt; &gt; org.drools.rule.PredicateConstraint.isAllowed(PredicateConstraint.java:279)<br>&gt; &gt; &nbsp;&nbsp;&nbsp; at org.drools.reteoo.AlphaNode.assertObject(AlphaNode.java:143)<br>&gt; &gt; &nbsp;&nbsp;&nbsp; at<br>&gt; &gt; org.drools.reteoo.SingleObjectSinkAdapter.propagateAssertObject(SingleObjectSinkAdapter.java:42)<br>

&gt; &gt; &nbsp;&nbsp;&nbsp; at org.drools.reteoo.AlphaNode.assertObject(AlphaNode.java:147)<br>&gt; &gt; &nbsp;&nbsp;&nbsp; at<br>&gt; &gt; org.drools.reteoo.SingleObjectSinkAdapter.propagateAssertObject(SingleObjectSinkAdapter.java:42)<br>&gt; &gt; &nbsp;&nbsp;&nbsp; at<br>

&gt; &gt; org.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:185)<br>&gt; &gt; &nbsp;&nbsp;&nbsp; at<br>&gt; &gt; org.drools.reteoo.EntryPointNode.assertObject(EntryPointNode.java:146)<br>&gt; &gt; &nbsp;&nbsp;&nbsp; at<br>&gt; &gt; org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:1046)<br>

&gt; &gt; &nbsp;&nbsp;&nbsp; at<br>&gt; &gt; org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:1001)<br>&gt; &gt; &nbsp;&nbsp;&nbsp; at<br>&gt; &gt; org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:788)<br>

&gt; &gt; &nbsp;&nbsp;&nbsp; at tarification.TestTemplate.executeExample(TestTemplate.java:49)<br>&gt; &gt; &nbsp;&nbsp;&nbsp; at tarification.TestTemplate.main(TestTemplate.java:26)<br>&gt; &gt; Caused by: java.lang.NullPointerException<br>&gt; &gt; &nbsp;&nbsp;&nbsp; at com.tarification.Rule_Periode2_0.predicate0(Rule_Periode2_0.java:9)<br>

&gt; &gt; &nbsp;&nbsp;&nbsp; at<br>&gt; &gt; com.tarification.Rule_Periode2_0Predicate0Invoker.evaluate(Rule_Periode2_0Predicate0Invoker.java:23)<br>&gt; &gt; &nbsp;&nbsp;&nbsp; at<br>&gt; &gt; org.drools.rule.PredicateConstraint.isAllowed(PredicateConstraint.java:272)<br>

&gt; &gt; &nbsp;&nbsp;&nbsp; ... 11 more<br>&gt; &gt;<br>&gt; &gt; I am puzzle because when I copy the drl generated string in a drl file,<br>&gt; &gt; everything works fine.<br>&gt; &gt;<br>&gt; &gt; Any idea ? Thank you in advance.<br>

&gt; &gt;<br>&gt; &gt; Regards,<br>&gt; &gt; Benoît<br>&gt; &gt;<br>&gt; &gt;<br>&gt; &gt; ________________________________<br>&gt; &gt; Commander un cadeau en ligne discrètement? Voir la solution offerte par<br>&gt; &gt; Internet Explorer8<br>

&gt; &gt; _______________________________________________<br>&gt; &gt; rules-users mailing list<br>&gt; &gt; <a>rules-users@lists.jboss.org</a><br>&gt; &gt; <a>https://lists.jboss.org/mailman/listinfo/rules-users</a><br>

&gt; &gt;<br>&gt; &gt;<br>&gt; <br>&gt; _______________________________________________<br>&gt; rules-users mailing list<br>&gt; <a>rules-users@lists.jboss.org</a><br>

&gt; <a>https://lists.jboss.org/mailman/listinfo/rules-users</a><br>                                               <br></div></div><hr>Envie de naviguer sur Internet sans laisser de trace? <a>La solution avec Internet Explorer 8</a></div>


<br>_______________________________________________<br>
rules-users mailing list<br>
<a>rules-users@lists.jboss.org</a><br>
<a>https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
<br></blockquote></div><br>
</div></div><br>_______________________________________________<br>
rules-users mailing list<br>
<a>rules-users@lists.jboss.org</a><br>
<a>https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
<br></blockquote></div><br><br clear="all"><br>-- <br>Enda J Diggins<br>                                               <br /><hr />Commander un cadeau en ligne discrètement? <a href='http://clk.atdmt.com/FRM/go/207186971/direct/01/' target='_new'>Voir la solution offerte par Internet Explorer8</a></body>
</html>