If you want the "engine to see" your changes, in a way you affect other rules, you must call update( object ) for the object you are changing. Otherwise, the change will happen to the original object, but not to the shadow proxy that the engine uses to ensure consistency.
[]s Edson 2007/8/22, pentarious <[EMAIL PROTECTED]>: > > > Ok, I'm still working on that, I'll publish my solution asap. In the > meantime > it turns out our requirements need something more than that. We have an > ordered list of beans (items) and we have to be able to modify a specific > subset of the list (adding a discount). Now I tried to solve this problem > by > working directly on the list of items. But I can't understand why this > doesn't work: > when > $itemList : ArrayList() from collect( Item( category == "VIDEO" ) ) > then > ItemDiscount disc = new ItemDiscount(10); > $myFirstItem = (Item)$itemList.get(0); > $mySecondItem = (Item)$itemList.get(1); > $myFirstItem.addDiscount(disc); > $mySecondItem.addDiscount(disc); > > After executing this rule it's like nothing happened! I mean no discount > has > been added to the two items! The problem seems to be related to extracting > items from the list. Apparently, every time we get an item from the list, > it > looses its link with the original item (I don't know if it's a copy of the > original item or whatever), so that every update doesn't affect the > original > item any more. But of course that's what we're interested in! We want to > modify original items in the rule session. Am I missing something? Or Is > it > a bug? > > Regards, > > CG > > > > Edson Tirelli-3 wrote: > > > > Please, share with us! Send to the list! > > > > Edson > > > > 2007/8/21, pentarious <[EMAIL PROTECTED]>: > >> > >> > >> I found an interesting implementation to do that. If anyone is > interested > >> I > >> could share my solution. > >> > >> Regards, > >> > >> CG > >> > >> > >> Mark Proctor wrote: > >> > > >> > There is no supported way to do this. You could use an inline-eval > >> > against a global, but that is very clunkey. However it does seem like > a > >> > good feature idea for a future release, open a jira and I'll look > into > >> > getting it included. > >> > > >> > Mark > >> > pentarious wrote: > >> >> Does anyone know a method to limit the number of results from a > >> collect > >> >> statement? I was just wondering how to do something like this: > >> >> $myList : List() from collect( MyObject(myField == "something") ) > >> limit > >> 3 > >> >> //it should put in $myList just the first 3 objects retrieved > >> >> I'm quite sure there is nothing in Drools which can natively support > >> >> something like that. So, how to do that, if needed? I tried this, > but > >> it > >> >> seems not to be working (I can't understand why, though): > >> >> $myList : List() from collect( MyObject(myField == "something") ) > >> >> $myObject : MyObject() from $myList > >> >> eval( $myList.indexOf($myObject) < 3 ) > >> >> Indeed, it doesn't work because the link beetween $myList and > >> $myObject > >> >> seems to be released during any execution of the rule (In fact > >> >> $myList.contains($myObject) returns false! Again, I can't understand > >> >> why...) > >> >> > >> >> Any advice would be really appreciated! > >> >> > >> >> Regards, > >> >> > >> >> CG > >> >> > >> > > >> > _______________________________________________ > >> > rules-users mailing list > >> > [email protected] > >> > https://lists.jboss.org/mailman/listinfo/rules-users > >> > > >> > > >> > >> -- > >> View this message in context: > >> > http://www.nabble.com/How-to-limit-results-from-a-collect-statement-tf4235669.html#a12249025 > >> 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 > >> > > > > > > > > -- > > 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 > > [email protected] > > https://lists.jboss.org/mailman/listinfo/rules-users > > > > > > -- > View this message in context: > http://www.nabble.com/How-to-limit-results-from-a-collect-statement-tf4235669.html#a12270505 > 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 > -- 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 [email protected] https://lists.jboss.org/mailman/listinfo/rules-users
