There are many options you could use. Here are a couple<br><ul><li>Insert the service object into WM, than match on it and use it on the RHS to call methods on it</li><li>Have the service object as a global and call methods on it</li>
<li>Make the service helper methods static and call them directly<br></li></ul><br><div class="gmail_quote">On Wed, Feb 25, 2009 at 10:52 AM, D1vy@@Ind1@ <span dir="ltr">&lt;<a href="mailto:divya.rajendranath@gmail.com">divya.rajendranath@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br>
A couple of more questions,<br>
<br>
I am calling my rules engine from a service and into the session i am<br>
inserting the business object.<br>
<br>
In my service class, I have a few helper functions, which I need to call<br>
from my drl file.<br>
<br>
How can I do that ?<br>
<br>
Thanks<br>
-D<br>
<br>
<br>
<br>
Corneil du Plessis wrote:<br>
&gt;<br>
&gt; You should initialise your globals and then pass them into the session.<br>
&gt; Your rule file will have:<br>
&gt;<br>
&gt; global java.lang.String recipients<br>
&gt; global java.lang.String to<br>
&gt; global java.lang.String cc<br>
&gt;<br>
&gt;<br>
&gt; On Mon, 2009-02-23 at 06:23 -0800, D1vy@@Ind1@ wrote:<br>
&gt;<br>
&gt;&gt; Thanks for your help , Sudhir,<br>
&gt;&gt;<br>
&gt;&gt; I used<br>
&gt;&gt;<br>
&gt;&gt; rule<br>
&gt;&gt; when $a:A(b.z.s==&quot;test&quot;);<br>
&gt;&gt; then<br>
&gt;&gt; end<br>
&gt;&gt;<br>
&gt;&gt; And that solved my problem.<br>
&gt;&gt;<br>
&gt;&gt; But I would like to know one more information about global variables.<br>
&gt;&gt;<br>
&gt;&gt; package...<br>
&gt;&gt; dialect java<br>
&gt;&gt; import ..,<br>
&gt;&gt;<br>
&gt;&gt; global java.lang.String recipients=&quot;<a href="mailto:divya@gmail.com">divya@gmail.com</a>&quot;<br>
&gt;&gt; global java.lang.String to=&quot;<a href="mailto:xyz@yahoo.com">xyz@yahoo.com</a>&quot;<br>
&gt;&gt; global java.lang.String cc=&quot;<a href="mailto:abc@gmail.com">abc@gmail.com</a>&quot;<br>
&gt;&gt;<br>
&gt;&gt; rule<br>
&gt;&gt; when when $a:A(b.z.s==&quot;divya&quot;);<br>
&gt;&gt; then<br>
&gt;&gt; $a.setRecipients(recipients);<br>
&gt;&gt; $a.setTo(to);<br>
&gt;&gt; $a.setCC(cc);<br>
&gt;&gt; update($a)<br>
&gt;&gt; end<br>
&gt;&gt;<br>
&gt;&gt; Is this feasible with Drools. I get<br>
&gt;&gt;<br>
&gt;&gt; unable to comile myfile.drl file<br>
&gt;&gt; [9,40]: unknown:9:40 mismatched token: [@49,201:201=&#39;=&#39;,&lt;71&gt;,9:40];<br>
&gt;&gt; E<br>
&gt;&gt;<br>
&gt;&gt; exception. Could you please help me with this too.<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; Thanks<br>
&gt;&gt; -D<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; Sudhir M-2 wrote:<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Hi D,<br>
&gt;&gt; &gt; I don&#39;t know which version of drools are you using. If u are using<br>
&gt;&gt; drools<br>
&gt;&gt; &gt; 4<br>
&gt;&gt; &gt; or higher you can use &#39;from&#39;  to write rules on nested objects. All u<br>
&gt;&gt; need<br>
&gt;&gt; &gt; to do is insert the root pbject in the working memory<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Regards,<br>
&gt;&gt; &gt; sudhir.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; On Mon, Feb 23, 2009 at 2:56 PM, Divya Rajendranath &lt;<br>
&gt;&gt; &gt; <a href="mailto:divya.rajendranath@gmail.com">divya.rajendranath@gmail.com</a>&gt; wrote:<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; Hi,<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; I am planning to use Drools - JBoss Rules Engine. My requirement is to<br>
&gt;&gt; &gt;&gt; disburse mails from my application to different groups based on<br>
&gt;&gt; various<br>
&gt;&gt; &gt;&gt; criteria. I want to use Drools here.<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; My object structure is as follows:<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; class A{<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; String B = &quot;&quot;;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; B b;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; C c;<br>
&gt;&gt; &gt;&gt; }<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Hence Obj A has embedded objects within it, and obj B and C further<br>
&gt;&gt; has<br>
&gt;&gt; &gt;&gt; embedded objects.<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; class B {<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; String X;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Z z;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; }<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; class Z{<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; String t;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; String s;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; }<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; The decision on sending the mails based on the fields in embedded<br>
&gt;&gt; objects<br>
&gt;&gt; &gt;&gt; of A. I pass instance of A to Drools<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Format of drl file:<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; package...;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; import ..;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; rule &quot;Test&quot;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; when $a:A(B(Z(s == &quot;testvalue&quot;)))<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; then<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; $a.setSomething();<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; update($a);<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; end<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; I wanted to know if this (accessing fields in embedded/child object)<br>
&gt;&gt; is<br>
&gt;&gt; &gt;&gt; feasible with Drools.<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; I get an error saying &quot;UNable to compile myfile.drl when i try to fo<br>
&gt;&gt; &gt;&gt; this.<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Could some one look into this issue and let me know the reason for<br>
&gt;&gt; this ?<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Thanks<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; -D<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; _______________________________________________<br>
&gt;&gt; &gt;&gt; rules-users mailing list<br>
&gt;&gt; &gt;&gt; <a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br>
&gt;&gt; &gt;&gt; <a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; _______________________________________________<br>
&gt;&gt; &gt; rules-users mailing list<br>
&gt;&gt; &gt; <a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br>
&gt;&gt; &gt; <a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt;<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; rules-users mailing list<br>
&gt; <a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br>
&gt; <a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
&gt;<br>
&gt;<br>
<font color="#888888"><br>
--<br>
View this message in context: <a href="http://www.nabble.com/Help-on-using-Drools-with-embedded-objects-tp22158087p22205576.html" target="_blank">http://www.nabble.com/Help-on-using-Drools-with-embedded-objects-tp22158087p22205576.html</a><br>

Sent from the drools - user mailing list archive at Nabble.com.<br>
<br>
_______________________________________________<br>
rules-users mailing list<br>
<a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
</font></blockquote></div><br>