use word boundaries, i.e. \b to denote &quot;words&quot;<br><br>\bassistant\b <br><br><div class="gmail_quote">On Wed, Mar 4, 2009 at 5:56 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>
Thanks every one, I found a solution to this. I created an utility class used<br>
it in setGlobal of the drools  session. Thus, I could call even non static<br>
methods from the utility class.<br>
<br>
Could any one help me with regular expressions in Drools.<br>
<br>
I want to check the existance of any one of the keywords &#39;assistant&#39;,<br>
&#39;temp&#39;, &#39;intern&#39; in a position field of an object. To be more clear I wanted<br>
to get the correct match if these keywords exist as a subword of its own and<br>
not as a part of a word. For eg.,  intern exists in internship and Systems :<br>
Intern, here I should get a successful match only for the second one. How<br>
can  I achieve that ?<br>
<br>
My sampl drl file looks like:<br>
<br>
rule &quot;Form the &quot;<br>
        salience 20<br>
        no-loop true<br>
        when<br>
                $s:Form(details.position matches &quot;^.*[_-:/](assistant|intern|temp)$&quot;);<br>
        then<br>
<br>
$s.setRecipients((ArrayList)utilities.toArrayList((String)myRecipientsMap.get(&quot;Recipients&quot;)));<br>
        update($s);<br>
        end<br>
<br>
If would be very helpful if anyone could help me solve this.<br>
<br>
thanks<br>
-D<br>
<br>
<br>
<br>
<br>
<br>
D1vy@@Ind1@ wrote:<br>
&gt;<br>
&gt; I have still not found a solution to the problem.<br>
&gt;<br>
&gt; The problem is that I have a non static function in my service class and i<br>
&gt; have to call thhat from my drools rule file.<br>
&gt;<br>
&gt; The function basically accepts a mail id and if a mailing list returns an<br>
&gt; arraylist of the individual mail ids in the mailing list.<br>
&gt;<br>
&gt; my drl file looks like this:<br>
&gt;<br>
&gt; ========================================================<br>
&gt; package com.test.ams.rule<br>
&gt;<br>
&gt; dialect &quot;java&quot;<br>
&gt;<br>
&gt; import java.util.ArrayList;<br>
&gt; import org.json.JSONArray;<br>
&gt; import java.net.HttpURLConnection;<br>
&gt; import java.net.URL;<br>
&gt; import java.io.InputStream;<br>
&gt; import java.io.InputStreamReader;<br>
&gt; import java.io.BufferedReader;<br>
&gt;<br>
&gt; import com.test.domobjects.StaffingForm;<br>
&gt; import com.test.domobjects.StaffingFormOfferDetails;<br>
&gt; import com.test.domobjects.OfferResponseType;<br>
&gt; import function<br>
&gt; com.test.serviceImpl.StaffingFormMailingServiceImpl.expandTheMailingList;<br>
&gt;<br>
&gt; global java.util.HashMap myOSFRecipientsMap;<br>
&gt;<br>
&gt; rule &quot;Part A&quot;<br>
&gt;       salience 20<br>
&gt;       no-loop true<br>
&gt;       when<br>
&gt;               $s:StaffingForm(staffingFormOfferDetails.offerValue== true &amp;&amp;<br>
&gt;                                               staffingFormOfferDetails.offerResponseType.offerResponseTypeName ==<br>
&gt; &quot;Accepted&quot;)<br>
&gt;               then<br>
&gt;<br>
&gt; $s.setPartARecipients((ArrayList&lt;String&gt;)expandTheMailingList((String)myOSFRecipientsMap.get(&quot;PART_A_EXEC_COMMITTEE&quot;)));<br>
&gt;<br>
&gt; $s.setPartARecipients((String)myOSFRecipientsMap.get(&quot;PART_A_CONFIDENTIAL&quot;));<br>
&gt;               $s.setPartARecipients((String)myOSFRecipientsMap.get(&quot;PART_A_PAYROLL&quot;));<br>
&gt;               update($s);<br>
&gt;       end<br>
&gt; ========================================================<br>
&gt;<br>
&gt;<br>
&gt; This gives me an exception -- java.lang.RuntimeException: Unable to<br>
&gt; compile &quot;the.drl&quot;.<br>
&gt;<br>
&gt; Please let me know what is the problem here.<br>
&gt;<br>
&gt;<br>
&gt; Thanks<br>
&gt; -D<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; D1vy@@Ind1@ wrote:<br>
&gt;&gt;<br>
&gt;&gt; A couple of more questions,<br>
&gt;&gt;<br>
&gt;&gt; I am calling my rules engine from a service and into the session i am<br>
&gt;&gt; inserting the business object.<br>
&gt;&gt;<br>
&gt;&gt; In my service class, I have a few helper functions, which I need to call<br>
&gt;&gt; from my drl file.<br>
&gt;&gt;<br>
&gt;&gt; How can I do that ?<br>
&gt;&gt;<br>
&gt;&gt; Thanks<br>
&gt;&gt; -D<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; Corneil du Plessis wrote:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; You should initialise your globals and then pass them into the session.<br>
&gt;&gt;&gt; Your rule file will have:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; global java.lang.String recipients<br>
&gt;&gt;&gt; global java.lang.String to<br>
&gt;&gt;&gt; global java.lang.String cc<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; On Mon, 2009-02-23 at 06:23 -0800, D1vy@@Ind1@ wrote:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Thanks for your help , Sudhir,<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; I used<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; rule<br>
&gt;&gt;&gt;&gt; when $a:A(b.z.s==&quot;test&quot;);<br>
&gt;&gt;&gt;&gt; then<br>
&gt;&gt;&gt;&gt; end<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; And that solved my problem.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; But I would like to know one more information about global variables.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; package...<br>
&gt;&gt;&gt;&gt; dialect java<br>
&gt;&gt;&gt;&gt; import ..,<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; global java.lang.String recipients=&quot;<a href="mailto:divya@gmail.com">divya@gmail.com</a>&quot;<br>
&gt;&gt;&gt;&gt; global java.lang.String to=&quot;<a href="mailto:xyz@yahoo.com">xyz@yahoo.com</a>&quot;<br>
&gt;&gt;&gt;&gt; global java.lang.String cc=&quot;<a href="mailto:abc@gmail.com">abc@gmail.com</a>&quot;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; rule<br>
&gt;&gt;&gt;&gt; when when $a:A(b.z.s==&quot;divya&quot;);<br>
&gt;&gt;&gt;&gt; then<br>
&gt;&gt;&gt;&gt; $a.setRecipients(recipients);<br>
&gt;&gt;&gt;&gt; $a.setTo(to);<br>
&gt;&gt;&gt;&gt; $a.setCC(cc);<br>
&gt;&gt;&gt;&gt; update($a)<br>
&gt;&gt;&gt;&gt; end<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Is this feasible with Drools. I get<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; unable to comile myfile.drl file<br>
&gt;&gt;&gt;&gt; [9,40]: unknown:9:40 mismatched token: [@49,201:201=&#39;=&#39;,&lt;71&gt;,9:40];<br>
&gt;&gt;&gt;&gt; E<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; exception. Could you please help me with this too.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Thanks<br>
&gt;&gt;&gt;&gt; -D<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Sudhir M-2 wrote:<br>
&gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt; Hi D,<br>
&gt;&gt;&gt;&gt; &gt; I don&#39;t know which version of drools are you using. If u are using<br>
&gt;&gt;&gt;&gt; drools<br>
&gt;&gt;&gt;&gt; &gt; 4<br>
&gt;&gt;&gt;&gt; &gt; or higher you can use &#39;from&#39;  to write rules on nested objects. All u<br>
&gt;&gt;&gt;&gt; need<br>
&gt;&gt;&gt;&gt; &gt; to do is insert the root pbject in the working memory<br>
&gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt; Regards,<br>
&gt;&gt;&gt;&gt; &gt; sudhir.<br>
&gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt; On Mon, Feb 23, 2009 at 2:56 PM, Divya Rajendranath &lt;<br>
&gt;&gt;&gt;&gt; &gt; <a href="mailto:divya.rajendranath@gmail.com">divya.rajendranath@gmail.com</a>&gt; wrote:<br>
&gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; Hi,<br>
&gt;&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; I am planning to use Drools - JBoss Rules Engine. My requirement is<br>
&gt;&gt;&gt;&gt; to<br>
&gt;&gt;&gt;&gt; &gt;&gt; disburse mails from my application to different groups based on<br>
&gt;&gt;&gt;&gt; various<br>
&gt;&gt;&gt;&gt; &gt;&gt; criteria. I want to use Drools here.<br>
&gt;&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; My object structure is as follows:<br>
&gt;&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; class A{<br>
&gt;&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; String B = &quot;&quot;;<br>
&gt;&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; B b;<br>
&gt;&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; C c;<br>
&gt;&gt;&gt;&gt; &gt;&gt; }<br>
&gt;&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; Hence Obj A has embedded objects within it, and obj B and C further<br>
&gt;&gt;&gt;&gt; has<br>
&gt;&gt;&gt;&gt; &gt;&gt; embedded objects.<br>
&gt;&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; class B {<br>
&gt;&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; String X;<br>
&gt;&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; Z z;<br>
&gt;&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; }<br>
&gt;&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; class Z{<br>
&gt;&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; String t;<br>
&gt;&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; String s;<br>
&gt;&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; }<br>
&gt;&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; The decision on sending the mails based on the fields in embedded<br>
&gt;&gt;&gt;&gt; objects<br>
&gt;&gt;&gt;&gt; &gt;&gt; of A. I pass instance of A to Drools<br>
&gt;&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; Format of drl file:<br>
&gt;&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; package...;<br>
&gt;&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; import ..;<br>
&gt;&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; rule &quot;Test&quot;<br>
&gt;&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; when $a:A(B(Z(s == &quot;testvalue&quot;)))<br>
&gt;&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; then<br>
&gt;&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; $a.setSomething();<br>
&gt;&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; update($a);<br>
&gt;&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; end<br>
&gt;&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; I wanted to know if this (accessing fields in embedded/child object)<br>
&gt;&gt;&gt;&gt; is<br>
&gt;&gt;&gt;&gt; &gt;&gt; feasible with Drools.<br>
&gt;&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&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; &gt;&gt; this.<br>
&gt;&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; Could some one look into this issue and let me know the reason for<br>
&gt;&gt;&gt;&gt; this ?<br>
&gt;&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; Thanks<br>
&gt;&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; -D<br>
&gt;&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; _______________________________________________<br>
&gt;&gt;&gt;&gt; &gt;&gt; rules-users mailing list<br>
&gt;&gt;&gt;&gt; &gt;&gt; <a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br>
&gt;&gt;&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; &gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt; _______________________________________________<br>
&gt;&gt;&gt;&gt; &gt; rules-users mailing list<br>
&gt;&gt;&gt;&gt; &gt; <a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br>
&gt;&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; &gt;<br>
&gt;&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;&gt;<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-tp22158087p22327495.html" target="_blank">http://www.nabble.com/Help-on-using-Drools-with-embedded-objects-tp22158087p22327495.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>