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

David Sinclair dsinclair at chariotsolutions.com
Wed Feb 25 12:27:36 EST 2009


There are many options you could use. Here are a couple

   - Insert the service object into WM, than match on it and use it on the
   RHS to call methods on it
   - Have the service object as a global and call methods on it
   - Make the service helper methods static and call them directly


On Wed, Feb 25, 2009 at 10:52 AM, D1vy@@Ind1@
<divya.rajendranath at gmail.com>wrote:

>
> A couple of more questions,
>
> I am calling my rules engine from a service and into the session i am
> inserting the business object.
>
> In my service class, I have a few helper functions, which I need to call
> from my drl file.
>
> How can I do that ?
>
> Thanks
> -D
>
>
>
> Corneil du Plessis wrote:
> >
> > 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
> >> >
> >> >
> >>
> >
> > _______________________________________________
> > rules-users mailing list
> > rules-users at lists.jboss.org
> > https://lists.jboss.org/mailman/listinfo/rules-users
> >
> >
>
> --
> View this message in context:
> http://www.nabble.com/Help-on-using-Drools-with-embedded-objects-tp22158087p22205576.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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20090225/1ddc1044/attachment.html 


More information about the rules-users mailing list