<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Verdana
}
--></style>
</head>
<body class='hmmessage'>
Here is the "drl generated string":<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>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: wolfgang.laun@gmail.com<br>&gt; To: rules-users@lists.jboss.org<br>&gt; Subject: Re: [rules-users] Template rules &amp; eval<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;b_grottier@hotmail.com&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; rules-users@lists.jboss.org<br>&gt; &gt; https://lists.jboss.org/mailman/listinfo/rules-users<br>&gt; &gt;<br>&gt; &gt;<br>&gt; <br>&gt; _______________________________________________<br>&gt; rules-users mailing list<br>&gt; rules-users@lists.jboss.org<br>&gt; https://lists.jboss.org/mailman/listinfo/rules-users<br>                                               <br /><hr />Envie de naviguer sur Internet sans laisser de trace? <a href='http://clk.atdmt.com/FRM/go/207186970/direct/01/' target='_new'>La solution avec Internet Explorer 8</a></body>
</html>