[rules-users] Help on using Drools with embedded objects

Corneil du Plessis corneil at tsctech.com
Mon Feb 23 10:39:00 EST 2009


You should initialise your globals and then pass them into the session.
Your rule file will have:

global java.lang.String recipients
global java.lang.String to
global java.lang.String cc


On Mon, 2009-02-23 at 06:23 -0800, D1vy@@Ind1@ wrote:

> Thanks for your help , Sudhir, 
> 
> I used 
> 
> rule
> when $a:A(b.z.s=="test");
> then
> end
> 
> And that solved my problem.
> 
> But I would like to know one more information about global variables.
> 
> package...
> dialect java
> import ..,
> 
> global java.lang.String recipients="divya at gmail.com"
> global java.lang.String to="xyz at yahoo.com"
> global java.lang.String cc="abc at gmail.com"
> 
> rule
> when when $a:A(b.z.s=="divya");
> then
> $a.setRecipients(recipients);
> $a.setTo(to);
> $a.setCC(cc);
> update($a)
> end
> 
> Is this feasible with Drools. I get 
> 
> unable to comile myfile.drl file
> [9,40]: unknown:9:40 mismatched token: [@49,201:201='=',<71>,9:40];
> E
> 
> exception. Could you please help me with this too.
> 
> 
> Thanks
> -D
> 
> 
> 
> 
> 
> 
> 
> 
> Sudhir M-2 wrote:
> > 
> > Hi D,
> > I don't know which version of drools are you using. If u are using drools
> > 4
> > or higher you can use 'from'  to write rules on nested objects. All u need
> > to do is insert the root pbject in the working memory
> > 
> > Regards,
> > sudhir.
> > 
> > On Mon, Feb 23, 2009 at 2:56 PM, Divya Rajendranath <
> > divya.rajendranath at gmail.com> wrote:
> > 
> >> Hi,
> >>
> >> I am planning to use Drools - JBoss Rules Engine. My requirement is to
> >> disburse mails from my application to different groups based on various
> >> criteria. I want to use Drools here.
> >>
> >> My object structure is as follows:
> >>
> >> class A{
> >>
> >> String B = "";
> >>
> >> B b;
> >>
> >> C c;
> >> }
> >>
> >> Hence Obj A has embedded objects within it, and obj B and C further has
> >> embedded objects.
> >>
> >> class B {
> >>
> >> String X;
> >>
> >> Z z;
> >>
> >> }
> >>
> >> class Z{
> >>
> >> String t;
> >>
> >> String s;
> >>
> >> }
> >>
> >> The decision on sending the mails based on the fields in embedded objects
> >> of A. I pass instance of A to Drools
> >>
> >> Format of drl file:
> >>
> >> package...;
> >>
> >> import ..;
> >>
> >> rule "Test"
> >>
> >> when $a:A(B(Z(s == "testvalue")))
> >>
> >> then
> >>
> >> $a.setSomething();
> >>
> >> update($a);
> >>
> >> end
> >>
> >> I wanted to know if this (accessing fields in embedded/child object) is
> >> feasible with Drools.
> >>
> >> I get an error saying "UNable to compile myfile.drl when i try to fo
> >> this.
> >>
> >> Could some one look into this issue and let me know the reason for this ?
> >>
> >>
> >>
> >> Thanks
> >>
> >> -D
> >>
> >> _______________________________________________
> >> 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/20090223/65135225/attachment.html 


More information about the rules-users mailing list