Eymeric,

   This is a fairly common case of finding the "best" of multiple choices (usually, the max, min, etc). You can find some examples and explanation in the wiki:

http://wiki.jboss.org/wiki/Wiki.jsp?page=RulesFindMax

    So, the answer to your question is: it must be done in the LHS. AgendaFilters, IMO, should be used only for debug purposes, since they are beyond the control of the rule writers.

    BTW, the wiki was written when we had only Drools 3.0, so there is no example of 4.0 features like accumulate, DSL, etc, so, feel free to improve the docs with your findings and examples... :)

    Thanks,
        Edson



2007/9/12, Eymeric VIEUILLE <evieuille@gfi.fr>:
Hi !

After solving the problem of Out of Memory, I come back with another
question :

I currently implemented rules that give me tuples like this (in the
agenda, before firing rules) : M1xM2xM3xM4.


But now, I want to select THE tuple that as M1xM2xM3xM4 with a property
p as little as possible to execute the right hand of the rule.

For sample, I have the two following tuples activated in the agenda :

M'1(date = "09/25/2006")      M'1(date = "09/25/2006")
M'2(date = "09/26/2006")      M'2(date = "09/26/2006")
M'3(date = "09/29/2006")      M"3(date = "09/27/2006")
M'4(date = "09/31/2006")      M"4(date = "09/30/2006")

I would like the second tuples to be selected for executing the right
hand of the rule because dates of M'2, M"3, M"4 are the closest dates
compared to M'1.

The problem is that I do not know on what layer this selection must be
made : in the Left Hand of the rule ? Or in a AgendaFilter (selecting
the better tuple to use) ?

For the LH, I thought to the "accumate" CE, but I am affraid to have
unreadle rules (impossible to maintain). And I don't see quite well how
to implement this with "accumulate" CE (knowing that I use a DSL).

For the AgendaFilter, I saw that only the current activation is
accessible...so impossible to compare whith other tuples
values....Moreover, I am affraid to make performance fall.

Is this selection possible ? And what would be the best practice to
implement it ?

Regards,
Eymeric.

_______________________________________________
rules-users mailing list
rules-users@lists.jboss.org
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