Thanks for the continued help... but
---
ArrayList<MessageAsEvent> a=new ArrayList<MessageAsEvent>();
MessageAsEvent a1=new MessageAsEvent(); a1.setSerial("serial123");
a1.setUuid("mesC:7"); a1.setId(888); a.add(a1);
MessageAsEvent a2=new MessageAsEvent(); a2.setSerial("serial123");
a2.setUuid("mesC:7"); a2.setId(889);a.add(a2);
ksession.setGlobal("hibernateSession", hibernateSession);
ksession.setGlobal("data", a);
----
global java.util.ArrayList data;
rule "Repeating as signature"
when
$m : MessageAsEvent(uuid=="mesC:7")
$others : MessageAsEvent(uuid=="mesC:7", id!=$m.id)
from data
then
System.out.println("++++++++++++Gathering in signatures m="+$m+"
data="+$others);
insert($others);
end
----
and I still get;
Audit:-
<org.drools.audit.event.ActivationLogEvent>
<type>4</type>
<activationId>Repeating as signature [15, 14]</activationId>
<rule>Repeating as signature</rule>
<declarations>$others=MessageAsEvent:[888] uuid=mesC:7 serial=serial123
count=0(15); $m=MessageAsEvent:[254] uuid=mesC:7 serial=serial123
count=7(14)</declarations>
<ruleFlowGroup>Signature</ruleFlowGroup>
</org.drools.audit.event.ActivationLogEvent>
<org.drools.audit.event.ActivationLogEvent>
<type>4</type>
<activationId>Repeating as signature [16, 14]</activationId>
<rule>Repeating as signature</rule>
<declarations>$others=MessageAsEvent:[889] uuid=mesC:7 serial=serial123
count=0(16); $m=MessageAsEvent:[254] uuid=mesC:7 serial=serial123
count=7(14)</declarations>
<ruleFlowGroup>Signature</ruleFlowGroup>
</org.drools.audit.event.ActivationLogEvent>
Console:-
++++++++++++Gathering in signatures m=MessageAsEvent:[254] uuid=mesC:7
serial=serial123 count=7 data=null
++++++++++++Gathering in signatures m=MessageAsEvent:[254] uuid=mesC:7
serial=serial123 count=7 data=null
with data=null being shown
Edson Tirelli-4 wrote:
You must be having a problem with the hibernate query then. Just as a
test, try replacing the query call with an arbitrary method call that
returns a couple objects.
Edson
2009/10/29 richarda <richard.ambridge(a)gmail.com>
>
> Using Drools 5.0.1
>
> I get the same results with the below rule.
> I leave the System.out.println in, and the rule executes the number of
> times for the number of items that should be loaded from the hibernate,
> but each time the $o is still null.
>
> the insert seems to be ignored, audit shows no record of it, but I
> assume
> insert(null) is ignored by drools
>
>
> Edson Tirelli-4 wrote:
> >
> > 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(a)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(a)lists.jboss.org
> >>
https://lists.jboss.org/mailman/listinfo/rules-users
> >>
> >
> >
> >
> > --
> > Edson Tirelli
> > JBoss Drools Core Development
> > JBoss by Red Hat @
www.jboss.com
> >
> > _______________________________________________
> > rules-users mailing list
> > rules-users(a)lists.jboss.org
> >
https://lists.jboss.org/mailman/listinfo/rules-users
> >
> >
>
> --
> View this message in context:
>
http://www.nabble.com/Collect-and-hibernate-tp26112042p26113182.html
> Sent from the drools - user mailing list archive at
Nabble.com.
>
> _______________________________________________
> rules-users mailing list
> rules-users(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/rules-users
>
--
Edson Tirelli
JBoss Drools Core Development
JBoss by Red Hat @
www.jboss.com
_______________________________________________
rules-users mailing list
rules-users(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users