<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 & 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"><<a>wolfgang.laun@gmail.com</a>></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"><<a>b_grottier@hotmail.com</a>></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> SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");<br> return sdf.parse(pStrDate) ;<br>}<br><br></div>rule "Periode2"<br> when<br> $p : Produit(id == 1, eval( dDeb.before( getDate("01/06/2010") ) ) )<br>
then<br> $p.setId(2) ; <br> $p.setPrix(100) ;<br> update( $p ); <br>end<br><br>rule "Periode1"<br> when<br> $p : Produit(id == 1, eval( dDeb.before( getDate("01/06/2010") ) ) )<br>
then<br> $p.setId(2) ; <br> $p.setPrix(50) ;<br> update( $p ); <br>end<br><br><br>> Date: Wed, 10 Mar 2010 11:41:36 +0100<br>> From: <a>wolfgang.laun@gmail.com</a><br>
> To: <a>rules-users@lists.jboss.org</a><br>> Subject: Re: [rules-users] Template rules & eval<div><div></div><div><br>> <br>> Can you post the "drl generated string" you are referring to?<br>
> -W<br>> <br>> 2010/3/10 Bertrand Grottier <<a>b_grottier@hotmail.com</a>>:<br>> > Hello,<br>> ><br>> > I want to use template rules. Here is my .drt file:<br>
> ><br>> > template header<br>> > ddeb<br>> > dfin<br>> > prix<br>> ><br>> > package com.tarification<br>> ><br>> > import java.util.Date ;<br>> ><br>> > import tarification.Produit ;<br>
> > import java.text.SimpleDateFormat;<br>> ><br>> > function Date getDate(String pStrDate)<br>> > {<br>> > SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");<br>> > return sdf.parse(pStrDate) ;<br>
> > }<br>> ><br>> > template "tarification_produit"<br>> ><br>> > rule "Periode@{row.rowNumber}"<br>> > when<br>> > $p : Produit(id == 1, eval( dDeb.before( getDate("@{ddeb}") ) ) )<br>
> > then<br>> > $p.setId(2) ;<br>> > $p.setPrix(@{prix}) ;<br>> > update( $p );<br>> > end<br>> > end template<br>> ><br>> ><br>> > I modified an example provided with Drools but encounter the following<br>
> > exception:<br>> ><br>> > Exception in thread "main" org.drools.RuntimeDroolsException: Exception<br>> > executing predicate<br>> > com.tarification.Rule_Periode2_0Predicate0Invoker@2110b61d<br>
> > at<br>> > org.drools.rule.PredicateConstraint.isAllowed(PredicateConstraint.java:279)<br>> > at org.drools.reteoo.AlphaNode.assertObject(AlphaNode.java:143)<br>> > at<br>> > org.drools.reteoo.SingleObjectSinkAdapter.propagateAssertObject(SingleObjectSinkAdapter.java:42)<br>
> > at org.drools.reteoo.AlphaNode.assertObject(AlphaNode.java:147)<br>> > at<br>> > org.drools.reteoo.SingleObjectSinkAdapter.propagateAssertObject(SingleObjectSinkAdapter.java:42)<br>> > at<br>
> > org.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:185)<br>> > at<br>> > org.drools.reteoo.EntryPointNode.assertObject(EntryPointNode.java:146)<br>> > at<br>> > org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:1046)<br>
> > at<br>> > org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:1001)<br>> > at<br>> > org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:788)<br>
> > at tarification.TestTemplate.executeExample(TestTemplate.java:49)<br>> > at tarification.TestTemplate.main(TestTemplate.java:26)<br>> > Caused by: java.lang.NullPointerException<br>> > at com.tarification.Rule_Periode2_0.predicate0(Rule_Periode2_0.java:9)<br>
> > at<br>> > com.tarification.Rule_Periode2_0Predicate0Invoker.evaluate(Rule_Periode2_0Predicate0Invoker.java:23)<br>> > at<br>> > org.drools.rule.PredicateConstraint.isAllowed(PredicateConstraint.java:272)<br>
> > ... 11 more<br>> ><br>> > I am puzzle because when I copy the drl generated string in a drl file,<br>> > everything works fine.<br>> ><br>> > Any idea ? Thank you in advance.<br>
> ><br>> > Regards,<br>> > Benoît<br>> ><br>> ><br>> > ________________________________<br>> > Commander un cadeau en ligne discrètement? Voir la solution offerte par<br>> > Internet Explorer8<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>> ><br>> <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></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>