[rules-users] activation-group issue

Wolfgang Laun wolfgang.laun at gmail.com
Fri Dec 17 06:00:01 EST 2010


It would not be impossible to define a "first-rule-wins" group, where the
first rule to fire may keep on doing so, locking out all others. But this is
an incomplete definition; you'd also have to specify how long the lock-out
effect should remain. If this isn't for the entire duration of the session,
then what?

Not knowing the actual conditions and other details I cannot really make a
positive statement, but there's some doubt in my mind whether the stated
problem might not be solved by using "complete" conditions.

-W


2010/12/17 Yaniv Itzhaki <iyaniv at gmail.com>

> Thanks for your help
>
> I was looking for internal drools feature to solve this issue (this is what
> i meant by etc..).
>
>
> 2010/12/16 Bruno Freudensprung <bruno.freudensprung at temis.com>
>
>>
>> Hi,
>>
>> I don't know if it is the best solution since I am very new to Drools but
>> you could use a logical insert of a "Skip" fact. Something like:
>>
>>
>> rule "A1"
>> salience 100
>> ruleflow-group "A"
>> activation-group "A"
>> when
>>         xxx1
>> then
>>        yyy1
>> *       insertLogical(new Skip());
>> *
>> end
>>
>> rule "A2"
>> salience 90
>> ruleflow-group "A"
>> activation-group "A"
>> when
>> *        not Skip()
>> *        xxx2
>> then
>>        yyy2
>> end
>>
>> Bruno.
>>
>> Yaniv Itzhaki a écrit :
>>
>> any ideas anyone?
>>
>> On Thu, Dec 16, 2010 at 12:36 PM, Yaniv Itzhaki <iyaniv at gmail.com> wrote:
>>
>>> Hi,
>>>
>>>  I have a group of rules with salience which I would like that only the
>>> first activated rule will fire.
>>>
>>>  I cant use the activation-group attribute because each rule can fire
>>> number of times, and i want only this rule to be fired in that group:
>>>
>>>  rule "A1"
>>>  salience 100
>>>  ruleflow-group "A"
>>>  activation-group "A"
>>>  when
>>>         xxx1
>>> then
>>>        yyy1
>>> end
>>>
>>>   rule "A2"
>>>  salience 90
>>>  ruleflow-group "A"
>>>  activation-group "A"
>>>  when
>>>         xxx2
>>> then
>>>        yyy2
>>> end
>>>
>>>  If Rule A1 run (activated number of times), rule A2 should not run.
>>>
>>>  Is there a way to do that? (no global flags etc.)
>>>
>>>  Thanks
>>> Yaniv
>>>
>>
>>  ------------------------------
>>
>> _______________________________________________
>> rules-users mailing listrules-users at lists.jboss.orghttps://lists.jboss.org/mailman/listinfo/rules-users
>>
>>
>>
>> _______________________________________________
>> rules-users mailing list
>> rules-users at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/rules-users
>>
>>
>
> _______________________________________________
> 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/20101217/fcc49027/attachment.html 


More information about the rules-users mailing list