[rules-users] Defining fallback rules

Edson Tirelli tirelli at post.com
Sun Sep 21 13:32:43 EDT 2008


   The easiest solution, given your description of the problem, I think is
to add a "processed" flag to Article if possible. So your fallback rule,
besides having a lower salience as you already have, would just check for
articles that were not processed yet:

rule fallback
when
     Article( processed == false )
     ...
end

   The flag must be set on the consequence of the other rules though, what
may not be ideal.

   []s
   Edson

2008/9/17 Marcus Ilgner <marcus.ilgner at gmail.com>

> Hi all,
>
> I'm currently puzzled on how to implement a sort of fallback rule. In
> my scenario I have a couple of articles and payments related to those
> articles. Now I need to distribute royalties to the authors of these
> articles. There's a common business logic which says "distribute X
> percent for articles of type T, Y percent for articles of type S and Z
> percent for all other articles".
> At first, my approach was to write the rules like this (omitting a
> rule for type 'S' for the sake of brevity):
>
> rule1
> activation-group "article1"
> salience 100
> when
>  $article : Article(type == 'T')
>  $payment : Payment( article==$article )
> then
>  account(x%)
> end
>
> rule3
> activation-group "article1"
> salience 0
> when
>  $article : Article()
>  $payment : Payment( article==$article )
> then
>  account(z%)
> end
>
> However, I quickly found out that the use of activation-group will
> then only consider all articles of type T and ignore all other
> fact-combinations. Retracting payments from the WM is also not
> feasible since there may be other rules that should work on them.
> I also cannot write the last rule as Article( type != 'T', type != 'S'
> etc) since new article types may be added later on and it would not be
> manageable to update all previously written rules (which may very well
> number in thousands in the future).
> Now I'm a bit stuck on this issue and would welcome any hints.
>
> Best regards
> Marcus
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>



-- 
Edson Tirelli
JBoss Drools Core Development
JBoss, a division of Red Hat @ www.jboss.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20080921/8845ebe1/attachment.html 


More information about the rules-users mailing list