[rules-users] Agenda Groups basic question

Rongala, Kanthi Kanthi.Rongala at mscibarra.com
Tue Nov 3 00:31:20 EST 2009


Hi,

As suggested, I made the following changes, to get the desired output. I have some questions regarding the approach to agenda-groups (in drools 5 context)

1. I had to enable auto-focus once per each agenda-group. I thought agenda-groups were stacked internally by drools engine, and auto-focus might be acting as a directional mechanism (help determine which rule under which agenda is to be triggered). Clearly, I am mistaken and it seems that auto-focus is the way to go.

I would like to know about other ways to set focus on agenda-groups. I have seem code snippets on google bearing session.setFocus("[agenda-group-name]"). I am currently using statefulsession and cann't figure out this 'setFocus()' method

2. I was 'compelled' to comment out lock-on-active directive. I understand that lock-on-active is an variant of no-loop causing each fact to be passed to the rule only once in a active agenda (correct me if I am mistaken). With lock-on-active set, I was expecting the messages to be print once atleast, but the current behavior beats me.

Code is given below:

package com.mscibarra.examples.drools.controllers;

import com.mscibarra.examples.drools.domainentities.*;

rule "Detect and Remove Duplicate Shelves"
agenda-group "Phase1"
//lock-on-active
dialect "mvel"
auto-focus
when
        $universe : LibraryUniverse()
        $shelf : Shelf() from $universe.shelves
        $shelf2 : Shelf(this != $shelf) from $universe.shelves
then
        System.out.println("Duplicate Shelves found::"+$shelf);
        // without the modify(), drools is not alerted about changes
        /*
        modify($universe) {
                shelves.remove($shelf);
        };
        */
end

rule "Singleton Shelf Detector"
agenda-group "Phase2"
//lock-on-active
dialect "mvel"
auto-focus
when
        $universe : LibraryUniverse(shelves.size > 1)
then
        System.out.println("Multiple Shelves found::"+$universe.shelves.size);
end



With Regards,
Swaroop

---------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------

Message: 3
Date: Mon, 2 Nov 2009 10:51:32 -0500
From: Edson Tirelli <ed.tirelli at gmail.com>
Subject: Re: [rules-users] Agenda Groups basic question
To: Rules Users List <rules-users at lists.jboss.org>
Message-ID:
        <e6dd5ba30911020751nb973184r73cd6dc46e4e50c0 at mail.gmail.com>
Content-Type: text/plain; charset="windows-1252"

   You need to set the focus for an agenda group to execute.

   []s
   Edson

2009/11/2 Rongala, Kanthi <Kanthi.Rongala at mscibarra.com>

>  Hi,
>
>
>
> I am new to Drools and trying my hands out at Drools 5. I cann?t figure out
> how to use agenda- groups. I have a small drl file with two agenda groups
> and one rule per agenda-group. This doesn?t seem to work. However if I
> happen to comment out the agenda-group attribute, the results are as
> expected.
>
>
>
> Please let me know what I am missing.
>
>
>
> *package* com.mscibarra.examples.drools.controllers;
>
>
>
> *import* com.mscibarra.examples.drools.domainentities.*;
>
>
>
>
>
> *rule* "Detect and Remove Duplicate Shelves"
>
> *agenda-group* "Phase1"
>
> *lock-on-active*
>
> *dialect* "mvel"
>
> *when*
>
>       $universe : LibraryUniverse()
>
>       $shelf : Shelf() *from* $universe.shelves
>
>       $shelf2 : Shelf(*this* != $shelf) *from*$universe.shelves
>
> *then*
>
>       System.out.println("Duplicate Shelves found::"+$shelf);
>
>       // without the modify(), drools is not alerted about changes
>
>       // $universe.shelves.remove($shelf);
>
>       /*
>
>       *modify*($universe) {
>
>             shelves.remove($shelf);
>
>       };
>
>       */
>
>
>
> *end*
>
>
>
> *rule* "Singleton Shelf Detector"
>
> *agenda-group* "Phase1"
>
> *lock-on-active*
>
> *dialect* "mvel"
>
> *when*
>
>       $universe : LibraryUniverse(shelves.size > 1)
>
> *then*
>
>       System.out.println("Multiple Shelves found::"+$universe.shelves.size);
>
>
> *End*
>
>
>
>
>
>
>
> With Regards,
>
> Kanthi Swaroop Rongala
>
> * *
>
>
>
> ------------------------------
> NOTICE: If received in error, please destroy and notify sender. Sender does
> not intend to waive confidentiality or privilege. Use of this email is
> prohibited when received in error.
>
> _______________________________________________
> 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 by Red Hat @ www.jboss.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20091102/e88d48d7/attachment-0001.html

------------------------------

Message: 4
Date: Mon, 2 Nov 2009 16:53:54 +0100
From: "Costigliola Joel \(EXT\)" <joel.costigliola-ext at natixis.com>
Subject: Re: [rules-users] Agenda Groups basic question
To: "'Rules Users List'" <rules-users at lists.jboss.org>
Message-ID:
        <201216F96E6D724F9296BFACF6DB54641E54C88380 at MSEUMAIL03.cib.net>
Content-Type: text/plain; charset="iso-8859-1"

Hello,

Maybe a typo mistake but both of your rules have the same agenda group (Phase1)

Regards,

Joel

NOTICE: If received in error, please destroy and notify sender. Sender does not intend to waive confidentiality or privilege. Use of this email is prohibited when received in error.




More information about the rules-users mailing list