Guessing that Body.incrementalUpdateOfEconomicOperators.traderAuthorisation is a List<TraderAuthorisationType>, I'd say that binding a List<X> results in the bound variable ($i in take3) being declared as an untyped List<?> in the code compiled from the .drl file.
-W On Fri, Jan 29, 2010 at 8:46 PM, <[email protected]> wrote: > Can you please explain why the second form of the same (as it seems to me) > rule does not work? > > This works: > > rule "takeTwo" > when > $c : CD713AType( > Body.incrementalUpdateOfEconomicOperators.traderAuthorisation.size != > 0 ) > $t : TraderAuthorisationType ( $t.OperatorRole.size == 0) from > $c.Body.incrementalUpdateOfEconomicOperators.traderAuthorisation > then > stdout(drools.getRule().getName()+" > "+$c.getHeader().getMessageIdentifier()); > end > > and this fails to compile: > > rule "take3" > when > $c : CD713AType( $i : this.Body.incrementalUpdateOfEconomicOperators ) > $t : TraderAuthorisationType ( $t.OperatorRole.size !=0 ) from > $i.traderAuthorisation > then > stdout(drools.getRule().getName()+" > "+$c.getHeader().getMessageIdentifier()); > end > > with the message: > > Unable to build expression for 'from' : Failed to compile: 1 compilation > error(s): > - (1,22) unqualified type in strict mode for: traderAuthorisation > '$i.traderAuthorisation' : [Rule name='take3'] > > Pretty new to Drools and try to figure out how things work. > In the second form of the rule I am trying to use the $i variable as a > shortcut for the "Body.incrementalUpdateOfEconomicOperators" locator. > > "stdout" is just a function that print to System.out > > Thank you for your time, > -Stathis > > _______________________________________________ > rules-users mailing list > [email protected] > https://lists.jboss.org/mailman/listinfo/rules-users > _______________________________________________ rules-users mailing list [email protected] https://lists.jboss.org/mailman/listinfo/rules-users
