Anyone can help me? I want to use an element of an Array in my rule condition.
Thank you very much! - Zeke 2009/4/28 Zeke <[email protected]> > Hi, > I am using Drools 4.0.7 GA. I want to use Array type in my rule > condition. My drl is like below: > >> package org.drools.examples.test; >> >> import org.drools.examples.HelloWorldExample.Message; >> >> rule "check.array" >> dialect "java" >> when >> m:Message( arr[0] == "1" ) >> then >> System.out.println( "===check array ok===" ); >> end > > > arr is an int type array. When I run the test case, I meet below > exception: > >> Exception in thread "main" org.drools.RuntimeDroolsException: Exception >> executing predicate eval( arr[0] == "1" ) >> at >> org.drools.rule.PredicateConstraint.isAllowed(PredicateConstraint.java:216) >> at org.drools.reteoo.AlphaNode.assertObject(AlphaNode.java:137) >> at >> org.drools.reteoo.SingleObjectSinkAdapter.propagateAssertObject(SingleObjectSinkAdapter.java:22) >> at >> org.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:162) >> at org.drools.reteoo.Rete.assertObject(Rete.java:175) >> at >> org.drools.reteoo.ReteooRuleBase.assertObject(ReteooRuleBase.java:192) >> at >> org.drools.reteoo.ReteooWorkingMemory.doInsert(ReteooWorkingMemory.java:71) >> at >> org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:911) >> at >> org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:883) >> at >> org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:684) >> at >> org.drools.examples.HelloWorldExample.main(HelloWorldExample.java:69) >> Caused by: org.mvel.CompileException: illegal use of []: unknown type: [I >> at >> org.mvel.optimizers.impl.refl.ReflectiveAccessorOptimizer.getCollectionProperty(ReflectiveAccessorOptimizer.java:482) >> at >> org.mvel.optimizers.impl.refl.ReflectiveAccessorOptimizer.compileGetChain(ReflectiveAccessorOptimizer.java:274) >> at >> org.mvel.optimizers.impl.refl.ReflectiveAccessorOptimizer.optimizeAccessor(ReflectiveAccessorOptimizer.java:110) >> at org.mvel.ASTNode.getReducedValueAccelerated(ASTNode.java:186) >> at >> org.mvel.ast.BinaryOperation.getReducedValueAccelerated(BinaryOperation.java:21) >> at org.mvel.MVELRuntime.execute(MVELRuntime.java:90) >> at org.mvel.CompiledExpression.getValue(CompiledExpression.java:111) >> at org.mvel.MVEL.executeExpression(MVEL.java:234) >> at >> org.drools.base.mvel.MVELPredicateExpression.evaluate(MVELPredicateExpression.java:45) >> at >> org.drools.rule.PredicateConstraint.isAllowed(PredicateConstraint.java:209) >> ... 10 more >> > > Can anyone kindly tell me how to use Array type in Drools? Thanks in > advance! > > - Zeke >
_______________________________________________ rules-users mailing list [email protected] https://lists.jboss.org/mailman/listinfo/rules-users
