[rules-users] How to limit results from a collect statement

Cristiano Giuffrida cristiano.giuffrida at gmail.com
Wed Aug 8 15:49:31 EDT 2007


Thanks, I'll do that. In the meantime I still need to get the job done asap.
Can you provide me an example to implement such a logic using an inline-eval
and global (which variable should be  global?)? And just out of curiosity
can you explain me why this code doesn't work (basically why, after the
second line, $myList.contains($myObject) would return false):
> $myList : List() from collect( MyObject(myField == "something") )
> $myObject : MyObject() from $myList
> eval( $myList.indexOf($myObject) < 3 )
To me, this code seems to be just fine (in real Java it would be), so I
can't understand why it doesn't work here. Maybe I am missing something or
the DRL-Java code mapping done by a rule compiler is not so simple to figure
out.

Regards,

CG

On 8/8/07, Mark Proctor <mproctor at codehaus.org> 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
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20070808/dfb808c8/attachment.html 


More information about the rules-users mailing list