Here are my rules:<br><br>#created on: 29/10/2007<br>package br.ufpr.ti.identkit.rules<br><br>#list any import classes here.<br>import br.ufpr.ti.identkit.entity.*<br><font style="font-weight: bold;" size="2"><span style="color: rgb(204, 0, 0);">
#the package&nbsp; </span></font>&quot; <span style="font-weight: bold; color: rgb(204, 0, 0);">br.ufpr.ti.identkit.entity.*</span> <font style="font-weight: bold;" size="2"><span style="color: rgb(204, 0, 0);">&quot; has the class TipoCaracteristica and the class TipoMolde
</span></font><br>import br.ufpr.ti.identkit.ia.Especialista<br>import java.util.List<br>import java.util.LinkedList<br>import java.util.ArrayList<br><br>rule &quot;POSSUI_CARACTERISTICA_MARCANTE Resposta nao&quot;<br>salience 95
<br>&nbsp;&nbsp;&nbsp; when<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; e : Especialista(perguntado == false)<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Especialista( $retrato : retratoUser) <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Retrato($lstCaracRetrato : lstCarac) from $retrato<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Retrato($lstMolde : lstMolde) from $retrato
<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Molde(tipoMolde.codTipMolde == TipoMolde.CABELO &amp;&amp; $lstCaracMolde: lstCarac) from $lstMolde<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; //CABELO_ENCOBERTO = 34<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; eval(naoPerguntou($lstCaracMolde, 34))<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; //TipoCaracteristica.POSSUI_CARACTERISTICA_MARCANTE == 33
<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; //146 não possui caracteristica marcante<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Caracteristica(tipCarac.codTipCarac == 33 &amp;&amp; valor.codValor == 146) from $lstCaracRetrato<br>&nbsp;&nbsp;&nbsp; then <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; buscarMontarPergunta(e,Pergunta.CABELO_ENCOBERTO
,Especialista.CABELO);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; e.perguntado = true;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; update(e);<br>end<br><br>How can I be sure that I&#39;m with latest MVEL jar?<br><br><br><div><span class="gmail_quote">2007/10/31, Rahul Phadnis &lt;<a href="mailto:rahul.phadnis@yahoo.com">
rahul.phadnis@yahoo.com</a>&gt;:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Do you have an import statement for importing<br>TipoCaracteristica?
<br><br>I see you are already using&nbsp;&nbsp;TipoMolde.CABELO which I<br>assume is another public static variable in the<br>TipoMolde class.<br><br>If none of these work can you post your drl file?<br><br>Rahul<br><br>--- Anderson Pazza Mello &lt;
<a href="mailto:payakahn@gmail.com">payakahn@gmail.com</a>&gt; wrote:<br><br>&gt; Yes I&#39;m Brazilian....<br>&gt; I need to improve my english I now hehehe<br>&gt;<br>&gt; About the problem... I solved it.<br>&gt;<br>&gt; But now I&#39;m getting this error when I use a static
<br>&gt; property in the rules:<br>&gt;<br>&gt; Exception in thread &quot;AWT-EventQueue-0&quot;<br>&gt; org.drools.RuntimeDroolsException:<br>&gt; Exception executing predicate<br>&gt; org.drools.base.mvel.MVELPredicateExpression@916f80
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; at<br>&gt; org.drools.rule.PredicateConstraint.isAllowed(<br>&gt; PredicateConstraint.java:197)<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; at<br>&gt;<br>org.drools.reteoo.FromNode.assertTuple(FromNode.java:70)<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; at<br>&gt;<br>org.drools.reteoo.SingleTupleSinkAdapter.propagateAssertTuple
(<br>&gt; SingleTupleSinkAdapter.java:29)<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; at<br>&gt; org.drools.reteoo.EvalConditionNode.assertTuple(<br>&gt; EvalConditionNode.java:150)<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; at<br>&gt;<br>org.drools.reteoo.SingleTupleSinkAdapter.propagateAssertTuple
(<br>&gt; SingleTupleSinkAdapter.java:20)<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; at<br>&gt;<br>org.drools.reteoo.FromNode.assertTuple(FromNode.java:87)<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; at<br>&gt;<br>org.drools.reteoo.SingleTupleSinkAdapter.propagateAssertTuple(<br>&gt; 
SingleTupleSinkAdapter.java:20)<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; at<br>&gt;<br>org.drools.reteoo.FromNode.assertTuple(FromNode.java:87)<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; at<br>&gt;<br>org.drools.reteoo.SingleTupleSinkAdapter.propagateAssertTuple(<br>&gt; SingleTupleSinkAdapter.java
:20)<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; at<br>&gt;<br>org.drools.reteoo.FromNode.assertTuple(FromNode.java:87)<br>&gt; .<br>&gt; .<br>&gt; .<br>&gt;<br>&gt; Caused by: org.mvel.PropertyAccessException: unable<br>&gt; to resolve property:<br>&gt; unable to resolve token:
<br>&gt; TipoCaracteristica.CABELO_TOTALMENTE_CALVO<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; at<br>&gt; org.mvel.ast.PropertyASTNode.initializePropertyNode(<br>&gt; PropertyASTNode.java:86)<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; at<br>&gt;<br>org.mvel.ast.PropertyASTNode.getReducedValueAccelerated
(<br>&gt; PropertyASTNode.java:23)<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; at<br>&gt;<br>org.mvel.ast.BinaryOperation.getReducedValueAccelerated(<br>&gt; BinaryOperation.java:20)<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; at<br>&gt; org.mvel.MVELRuntime.execute(MVELRuntime.java:88)
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; at<br>&gt;<br>org.mvel.CompiledExpression.getValue(CompiledExpression.java:99)<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; at<br>&gt; org.mvel.MVEL.executeExpression(MVEL.java:219)<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; at<br>&gt;<br>org.drools.base.mvel.MVELPredicateExpression.evaluate
(<br>&gt; MVELPredicateExpression.java:36)<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; at<br>&gt; org.drools.rule.PredicateConstraint.isAllowed(<br>&gt; PredicateConstraint.java:191)<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; ... 44 more<br>&gt;<br>&gt; Example:<br>&gt;<br>&gt; Property :
<br>&gt; public class TipoCaracteristica implements<br>&gt; java.io.Serializable{<br>&gt; .<br>&gt; .<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; public static int CABELO_TOTALMENTE_CALVO = 37;<br>&gt; .<br>&gt; .<br>&gt; .<br>&gt; }<br>&gt;<br>
&gt; rule:<br>&gt;<br>&gt; rule &quot;CABELO_TOTALMENTE_CALVO resposta nao / Chama<br>&gt; Tipo de Cabelo&quot;<br>&gt; salience 90<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; when<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; e : Especialista(perguntado == false)<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Especialista( $retrato : retratoUser)
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Retrato($lstCaracRetrato : lstCarac) from<br>&gt; $retrato<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Retrato($lstMolde : lstMolde) from $retrato<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Molde(tipoMolde.codTipMolde ==<br>&gt; TipoMolde.CABELO &amp;&amp; $lstCaracMolde:
<br>&gt; lstCarac) from $lstMolde<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //CABELO_TIPO = 10<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; eval(naoPerguntou($lstCaracMolde, 10))<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //CABELO_TOTALMENTE_CALVO = 37 e<br>&gt; RESPOSTA_SIM = 154<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Caracteristica(
tipCarac.codTipCarac ==<br>&gt; TipoCaracteristica.CABELO_TOTALMENTE_CALVO &amp;&amp;<br>&gt; valor.codValor == 154) from<br>&gt; $lstCaracMolde<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; then<br>&gt;<br>&gt;<br>buscarMontarPergunta(e,Pergunta.CABELO_TIPO
,Especialista.CABELO);<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; e.perguntado = true;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; update(e);<br>&gt; end<br>&gt;<br>&gt; I get some statics properties like<br>&gt; &quot;TipoMolde.CABELO&quot; without errors, but I<br>&gt; can&#39;t use the properties from this class
<br>&gt; (TipoCaracteristica). Did you know<br>&gt; why?<br>&gt; If I use de value like this &quot;valor.codValor == 154&quot;,<br>&gt; I have no problem.<br>&gt;<br>&gt; 2007/10/29, Edson Tirelli &lt;<a href="mailto:tirelli@post.com">
tirelli@post.com</a>&gt;:<br>&gt; &gt;<br>&gt; &gt;<br>&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp; Anderson,<br>&gt; &gt;<br>&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp; What is the error? Can you provide a self<br>&gt; contained example?<br>&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp; Using the &quot;from CE&quot; as showed before works.
<br>&gt; &gt;<br>&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp; BTW, are you Brazilian? Your name sounds like<br>&gt; a Brazilian name.<br>&gt; &gt;<br>&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[]s<br>&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Edson<br>&gt; &gt;<br>&gt; &gt; 2007/10/27, Anderson Pazza Mello<br>
&gt; &lt;<a href="mailto:payakahn@gmail.com">payakahn@gmail.com</a>&gt;:<br>&gt; &gt; &gt;<br>&gt; &gt; &gt; How can I test all elements of the list?<br>&gt; &gt; &gt; Can I need to use something like &quot;for (int<br>&gt; i.....)&quot;?
<br>&gt; &gt; &gt;<br>&gt; &gt; &gt; I&#39;m trying to do that but it is not working...<br>&gt; &gt; &gt;<br>&gt; &gt; &gt; &quot;Caracteristica( codCarac != 0 ) from<br>&gt; $caracList&quot;<br>&gt; &gt; &gt;<br>&gt; &gt; &gt;
<br>&gt; &gt; &gt;<br>&gt; &gt; &gt; My test:<br>&gt; &gt; &gt;<br>&gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; e : Especialista (perguntado == false)<br>&gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Especialista( $moldeList :<br>&gt; retratoUser.lstMolde )<br>&gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Molde( tipoMolde == 
TipoMolde.CABELO)<br>&gt; from $moldeList<br>&gt; &gt; &gt;<br>&gt; &gt; &gt;<br>&gt; &gt; &gt; When&nbsp;&nbsp;the property&nbsp;&nbsp;&quot;tipoMolde ==<br>&gt; TipoMolde.CABELO&quot; the rule must to be<br>&gt; &gt; &gt; fired. The List $moldeList has 5 elements.
<br>&gt; &gt; &gt;<br>&gt; &gt; &gt; any idea?<br>&gt; &gt; &gt;<br>&gt; &gt; &gt;<br>&gt; &gt; &gt; 2007/10/3, Edson Tirelli &lt; <a href="mailto:tirelli@post.com">tirelli@post.com</a>&gt;:<br>&gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt;&nbsp;&nbsp; Use the &quot;from&quot; CE:
<br>&gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; rule &quot;This rule will fire once for each<br>&gt; Caracteristica whose codCarac<br>&gt; &gt; &gt; &gt; is != 0&quot;<br>&gt; &gt; &gt; &gt; when<br>&gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp; Especialista( $caracList :
<br>&gt; retratoUser.lstCarac )<br>&gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp; Caracteristica( codCarac != 0 ) from<br>&gt; $caracList<br>&gt; &gt; &gt; &gt; then<br>&gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp; ...<br>&gt; &gt; &gt; &gt; end<br>&gt; &gt; &gt; &gt;
<br>&gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;[]s<br>&gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;Edson<br>&gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; 2007/10/3, Bhattacharya, Sougata &lt;<br>&gt; <a href="mailto:sougata.bhattacharya@capgemini.com">sougata.bhattacharya@capgemini.com
</a><br>&gt; &gt; &gt; &gt; &gt;:<br>&gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;If I want to test for all ith element,<br>&gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; Like this<br>&gt; &gt; &gt; &gt; &gt;
<br>&gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt; rule &quot;Test&quot;<br>&gt; &gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp; when<br>&gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; e :<br>&gt; Especialista(
retratoUser.lstCarac.get(i).codCarac !=<br>&gt; 0)<br>&gt; &gt; &gt; &gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp; then<br>&gt;<br>=== message truncated ===&gt;<br>_______________________________________________<br>&gt; rules-users mailing list<br>&gt; 
<a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br>&gt; <a href="https://lists.jboss.org/mailman/listinfo/rules-users">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>&gt;<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">https://lists.jboss.org/mailman/listinfo/rules-users
</a><br></blockquote></div><br><br clear="all"><br>-- <br>Anderson Pazza Mello<br>Tecnologia em Informática - UFPR