[rules-users] Collect and hibernate

Edson Tirelli ed.tirelli at gmail.com
Thu Oct 29 09:23:40 EDT 2009


    Did you tried this?

       when
                $m : MessageAsEvent(uuid=="mesC:7")
                $o :  MessageAsEvent(uuid=="mesC:7", id!=$m.id) from
hibernateSession.createQuery("from MessageAsEvent where
serial=?").setParameter(0,$m.serial).list()
       then
                insert($o)
       end

    In any case, collect should work too. Which version of drools are you
using?

    []s
    Edson

2009/10/29 richarda <richard.ambridge at gmail.com>

>
> Hi again,
>
> I wish to have a rule that when an Event has a certain uuid then load into
> working memory all other events that have been received for this unit...
>
> So I write the rule:
>
> rule "Repeating"
>
>        when
>                 $m : MessageAsEvent(uuid=="mesC:7")
>                 $others : LinkedList() from collect (
>                           MessageAsEvent(uuid=="mesC:7", id!=$m.id)
>                               from hibernateSession.createQuery("from
> MessageAsEvent where
> serial=?").setParameter(0,$m.serial).list()
>                        )
>        then
>                System.out.println("Gathering m="+$m+" data="+$others);
> end
>
>
> Audit log shows: (wish cut and paste would work from Eclipse audit view)
>
>  <activationId>Repeating [131, 14]</activationId>
>  <rule>Repeating FAN</rule>
>  <declarations>$others=[MessageAsEvent:[124] uuid=mesC:7 serial=serial123
> count=7, MessageAsEvent:[94] uuid=mesC:7 serial=serial123 count=7,
> MessageAsEvent:[64] uuid=mesC:7 serial=serial123 count=7,
> MessageAsEvent:[118] uuid=mesC:7 serial=serial123 count=7,
> MessageAsEvent:[112] uuid=mesC:7 serial=serial123 count=7,
> MessageAsEvent:[106] uuid=mesC:7 serial=serial123 count=7,
> MessageAsEvent:[100] uuid=mesC:7 serial=serial123 count=7,
> MessageAsEvent:[88] uuid=mesC:7 serial=serial123 count=7,
> MessageAsEvent:[82] uuid=mesC:7 serial=serial123 count=7,
> MessageAsEvent:[76] uuid=mesC:7 serial=serial123 count=7,
> MessageAsEvent:[70] uuid=mesC:7 serial=serial123 count=7,
> MessageAsEvent:[58] uuid=mesC:7 serial=serial123 count=7,
> MessageAsEvent:[52] uuid=mesC:7 serial=serial123 count=7,
> MessageAsEvent:[46] uuid=mesC:7 serial=serial123 count=7,
> MessageAsEvent:[40] uuid=mesC:7 serial=serial123 count=7,
> MessageAsEvent:[34] uuid=mesC:7 serial=serial123 count=7](131);
> $m=MessageAsEvent:[130] uuid=mesC:7 serial=serial123
> count=7(14)</declarations>
>  <ruleFlowGroup>Gathering</ruleFlowGroup>
>
>
>
> So, you can see that the rule fired with $others having all the data,  and
> $m being the main uuid
>
>
> but the output of the rule is:
> Gathering m=MessageAsEvent:[130] uuid=mesC:7 serial=serial123 count=7
> data=null
>
> so, the $others has been translated to a null.
>
> I'm trying to copy the Expert example:
>
> import java.util.LinkedList;
>
> rule "Send a message to all mothers"
> when
>    $town : Town( name == 'Paris' )
>    $mothers : LinkedList()
>               from collect( Person( gender == 'F', children > 0 )
>                             from $town.getPeople()
>                           )
> then
>    # send a message to all mothers
> end
>
> which indicates that $mothers will be available in the RHS
>
> for reference, the audit log shows when the rule fires:
>
>
> <org.drools.audit.event.ActivationLogEvent>
>  <type>6</type>
>  <activationId>Repeating [-1, 14]</activationId>
>  <rule>Repeating FAN</rule>
>  <declarations>$m=MessageAsEvent:[130] uuid=mesC:7 serial=serial123
> count=7(14)</declarations>
>  <ruleFlowGroup>Gathering</ruleFlowGroup>
>
>
> What am I doing wrong?
> I basically want all the MessageAsEvent added to working memory, so later
> other rules will do work on all the events.
>
> Cheers
> Ric
>
> --
> View this message in context:
> http://www.nabble.com/Collect-and-hibernate-tp26112042p26112042.html
> Sent from the drools - user mailing list archive at Nabble.com.
>
> _______________________________________________
> 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/20091029/90988309/attachment.html 


More information about the rules-users mailing list