Yes I'm Brazilian....
I need to improve my english I now hehehe
About the problem... I solved it.
But now I'm getting this error when I use a static property in the rules:
Exception in thread "AWT-EventQueue-0" org.drools.RuntimeDroolsException:
Exception executing predicate
org.drools.base.mvel.MVELPredicateExpression@916f80
at org.drools.rule.PredicateConstraint.isAllowed(
PredicateConstraint.java:197)
at org.drools.reteoo.FromNode.assertTuple(FromNode.java:70)
at org.drools.reteoo.SingleTupleSinkAdapter.propagateAssertTuple(
SingleTupleSinkAdapter.java:29)
at org.drools.reteoo.EvalConditionNode.assertTuple(
EvalConditionNode.java:150)
at org.drools.reteoo.SingleTupleSinkAdapter.propagateAssertTuple(
SingleTupleSinkAdapter.java:20)
at org.drools.reteoo.FromNode.assertTuple(FromNode.java:87)
at org.drools.reteoo.SingleTupleSinkAdapter.propagateAssertTuple(
SingleTupleSinkAdapter.java:20)
at org.drools.reteoo.FromNode.assertTuple(FromNode.java:87)
at org.drools.reteoo.SingleTupleSinkAdapter.propagateAssertTuple(
SingleTupleSinkAdapter.java:20)
at org.drools.reteoo.FromNode.assertTuple(FromNode.java:87)
.
.
.
Caused by: org.mvel.PropertyAccessException: unable to resolve property:
unable to resolve token: TipoCaracteristica.CABELO_TOTALMENTE_CALVO
at org.mvel.ast.PropertyASTNode.initializePropertyNode(
PropertyASTNode.java:86)
at org.mvel.ast.PropertyASTNode.getReducedValueAccelerated(
PropertyASTNode.java:23)
at org.mvel.ast.BinaryOperation.getReducedValueAccelerated(
BinaryOperation.java:20)
at org.mvel.MVELRuntime.execute(MVELRuntime.java:88)
at org.mvel.CompiledExpression.getValue(CompiledExpression.java:99)
at org.mvel.MVEL.executeExpression(MVEL.java:219)
at org.drools.base.mvel.MVELPredicateExpression.evaluate(
MVELPredicateExpression.java:36)
at org.drools.rule.PredicateConstraint.isAllowed(
PredicateConstraint.java:191)
... 44 more
Example:
Property :
public class TipoCaracteristica implements java.io.Serializable{
.
.
public static int CABELO_TOTALMENTE_CALVO = 37;
.
.
.
}
rule:
rule "CABELO_TOTALMENTE_CALVO resposta nao / Chama Tipo de Cabelo"
salience 90
when
e : Especialista(perguntado == false)
Especialista( $retrato : retratoUser)
Retrato($lstCaracRetrato : lstCarac) from $retrato
Retrato($lstMolde : lstMolde) from $retrato
Molde(tipoMolde.codTipMolde == TipoMolde.CABELO && $lstCaracMolde:
lstCarac) from $lstMolde
//CABELO_TIPO = 10
eval(naoPerguntou($lstCaracMolde, 10))
//CABELO_TOTALMENTE_CALVO = 37 e RESPOSTA_SIM = 154
Caracteristica(tipCarac.codTipCarac ==
TipoCaracteristica.CABELO_TOTALMENTE_CALVO && valor.codValor == 154) from
$lstCaracMolde
then
buscarMontarPergunta(e,Pergunta.CABELO_TIPO,Especialista.CABELO);
e.perguntado = true;
update(e);
end
I get some statics properties like "TipoMolde.CABELO" without errors, but I
can't use the properties from this class (TipoCaracteristica). Did you know
why?
If I use de value like this "valor.codValor == 154", I have no problem.
2007/10/29, Edson Tirelli <tirelli(a)post.com>:
Anderson,
What is the error? Can you provide a self contained example?
Using the "from CE" as showed before works.
BTW, are you Brazilian? Your name sounds like a Brazilian name.
[]s
Edson
2007/10/27, Anderson Pazza Mello <payakahn(a)gmail.com>:
>
> How can I test all elements of the list?
> Can I need to use something like "for (int i.....)"?
>
> I'm trying to do that but it is not working...
>
> "Caracteristica( codCarac != 0 ) from $caracList"
>
>
>
> My test:
>
> e : Especialista (perguntado == false)
> Especialista( $moldeList : retratoUser.lstMolde )
> Molde( tipoMolde == TipoMolde.CABELO) from $moldeList
>
>
> When the property "tipoMolde == TipoMolde.CABELO" the rule must to be
> fired. The List $moldeList has 5 elements.
>
> any idea?
>
>
> 2007/10/3, Edson Tirelli < tirelli(a)post.com>:
> >
> > Use the "from" CE:
> >
> > rule "This rule will fire once for each Caracteristica whose codCarac
> > is != 0"
> > when
> > Especialista( $caracList : retratoUser.lstCarac )
> > Caracteristica( codCarac != 0 ) from $caracList
> > then
> > ...
> > end
> >
> > []s
> > Edson
> >
> > 2007/10/3, Bhattacharya, Sougata < sougata.bhattacharya(a)capgemini.com
> > >:
> > >
> > > If I want to test for all ith element,
> > >
> > > Like this
> > >
> > >
> > >
> > > rule "Test"
> > >
> > > when
> > > e : Especialista(retratoUser.lstCarac.get(i).codCarac != 0)
> > > then
> > > System.out.println ("test");
> > >
> > > end
> > >
> > >
> > >
> > > what should I do
> > >
> > >
> > >
> > > ------------------------------
> > >
> > > *From:* rules-users-bounces(a)lists.jboss.org [mailto:
> > > rules-users-bounces(a)lists.jboss.org] *On Behalf Of *Edson Tirelli
> > > *Sent:* Wednesday, October 03, 2007 6:10 AM
> > > *To:* Rules Users List
> > > *Subject:* Re: [rules-users] Using java.util.List in rules
> > >
> > >
> > >
> > >
> > > You can't explicitly call methods in the field name. Use MVEL
> > > special notation for lists:
> > >
> > > e : Especialista(retratoUser.lstCarac[0].codCarac != 0)
> > >
> > > []s
> > > Edson
> > >
> > >
> > > 2007/10/2, Anderson Pazza Mello < payakahn(a)gmail.com>:
> > >
> > > Hi everyone,
> > >
> > > I'm trying to use a java.util.List like this:
> > >
> > > rule "Test"
> > >
> > > when
> > > e : Especialista(retratoUser.lstCarac.get(0).codCarac != 0)
> > > then
> > > System.out.println ("test");
> > >
> > > end
> > >
> > > The property lstCarac is a java.util.List<Caracteristica>. I'm
> > > getting this error :
> > >
> > > org.drools.rule.InvalidRulePackage: [18,44]: unknown:18:44
> > > Unexpected token '0'[18,46]: unknown:18:46 Unexpected token
'.'
> > > at org.drools.rule.Package.checkValidity(Package.java:419)
> > >
> > > Someone knows what i have to do to fix the problem??
> > >
> > >
> > > --
> > > Anderson Pazza Mello
> > > Tecnologia em Informática - UFPR
> > > _______________________________________________
> > > rules-users mailing list
> > > rules-users(a)lists.jboss.org
> > >
https://lists.jboss.org/mailman/listinfo/rules-users
> > >
> > >
> > >
> > >
> > > --
> > > Edson Tirelli
> > > Software Engineer - JBoss Rules Core Developer
> > > Office: +55 11 3529-6000
> > > Mobile: +55 11 9287-5646
> > > JBoss, a division of Red Hat @
www.jboss.com
> > > This message contains information that may be privileged or
> > > confidential and is the property of the Capgemini Group. It is intended
only
> > > for the person to whom it is addressed. If you are not the intended
> > > recipient, you are not authorized to read, print, retain, copy,
disseminate,
> > > distribute, or use this message or any part thereof. If you receive this
> > > message in error, please notify the sender immediately and delete all
copies
> > > of this message.
> > >
> > >
> > > _______________________________________________
> > > rules-users mailing list
> > > rules-users(a)lists.jboss.org
> > >
https://lists.jboss.org/mailman/listinfo/rules-users
> > >
> > >
> >
> >
> > --
> > Edson Tirelli
> > Software Engineer - JBoss Rules Core Developer
> > Office: +55 11 3529-6000
> > Mobile: +55 11 9287-5646
> > JBoss, a division of Red Hat @
www.jboss.com
> >
> > _______________________________________________
> > rules-users mailing list
> > rules-users(a)lists.jboss.org
> >
https://lists.jboss.org/mailman/listinfo/rules-users
> >
> >
>
>
> --
> Anderson Pazza Mello
> Tecnologia em Informática - UFPR
>
> _______________________________________________
> rules-users mailing list
> rules-users(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/rules-users
>
>
--
Edson Tirelli
Software Engineer - JBoss Rules Core Developer
Office: +55 11 3529-6000
Mobile: +55 11 9287-5646
JBoss, a division of Red Hat @
www.jboss.com
_______________________________________________
rules-users mailing list
rules-users(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users