Hi, I'm still having issues with this despite getting the snapshot update to
the mvel jar. Can anyone suggest what else to try please? Am I doing
something wrong?

Say I insert 2 objects:
- ObjectWithKey which has a field that is a string to be used as the key.
- ObjectWithMap has a field that is a map, which contains entries -
including one for the key string that's in the inserted ObjectWithKey.

With the rule below, trying to get the value with the key always produces
null (although with the updated jar at least I no longer get a compilation
error!). However if I use a literal for the key, or from an inserted String
object (the commented out $s below), then it works to print out the right
value for the key.

rule "Tester"
        dialect "mvel"
        when
                # $s : String (this == "aString") # works if I use $s as key
                $a : ObjectWithKey (
                        $k: aStringForKey,
                        $o: objectWithMap
                        ) 
                $b: ObjectWithMap (
                        this == $o,  
                        map != null # works fine, it can see there's a map in 
existence
                        # map[$k] != null, # no good, Drools thinks this value 
is always null  
                        # map[$s]  # this works however
                )
        then 
                System.out.println("ObjectWithMap has non-null map, value for 
key is "); #
prints OK
                System.out.println($b.map[$k]); # prints out null!
end

I'm at my wit's end. I've also tried Java (with get) and eval alternatives
and can't get it to work. If anyone can suggest a way to get a value out of
the map (for testing against other conditions) when the map is a field of
one object, using a key that is a field in another object, I'd really
appreciate it.

Cheers

-- 
View this message in context: 
http://www.nabble.com/Maps-again---key-derived-from-another-object-tp25093672p25093672.html
Sent from the drools - user mailing list archive at Nabble.com.

_______________________________________________
rules-users mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/rules-users

Reply via email to