I would suggest that you assert all of your objects into working memory. For example, if you have the object A with an embedded B and C, you need to do the following
insert(A);
insert(A.B);
insert(A.C);
than within your rules, join the objects where needed
rule
A(b$ : b != null)
B(this == b$)
etc.
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 ccOn 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@gmail.com" global java.lang.String to="xyz@yahoo.com" global java.lang.String cc="abc@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@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@lists.jboss.org >> https://lists.jboss.org/mailman/listinfo/rules-users >> >> > > _______________________________________________ > rules-users mailing list > rules-users@lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > >
_______________________________________________
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users