2011/9/12 Sandeep Bandela <span dir="ltr"><<a href="mailto:gibsosmat@gmail.com">gibsosmat@gmail.com</a>></span><br><div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
wolfgang, <br>I didnt get it, so does that mean that all CE will be re-evaluated on every change of workingmemory no matter which rule fired?</blockquote><div><br>Not "all CE", only the ones that are affected by the changed WME.<br>
</div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"> even when executing RHS. I didnt test it with copy of list yet. I will do it and see.</blockquote>
<div><br>By all means, do so.<br>-W <br><br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div><div></div><div class="h5"><br>
<br><div class="gmail_quote">On Sun, Sep 11, 2011 at 11:28 AM, Wolfgang Laun <span dir="ltr"><<a href="mailto:wolfgang.laun@gmail.com" target="_blank">wolfgang.laun@gmail.com</a>></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;">
The result of the collect CE is changed due to the modify. You have to<br>
copy the list and use the copy in the loop.<br>
-W<br>
<br>
2011/9/9 Sandeep Bandela <<a href="mailto:gibsosmat@gmail.com" target="_blank">gibsosmat@gmail.com</a>>:<br>
<div><div></div><div>> Thanks wolfgang, for the info and that workaround.<br>
> I think there is some off by one error in for loop, or may be some mistake<br>
> that I didnt notice in my code. the following rule with 3 objects gives<br>
> index out of bound error. I am attaching java & drl file (package<br>
> com.example.drools.testing). I am using 5.2.0 final release.<br>
><br>
> rule "Buy X units of Product A and Get Y units of Product B Free"<br>
> when<br>
> $itemsA : ArrayList( $a : size >= 2 ) from collect( CartItem(<br>
> productId == "A", processed == false) )<br>
> $itemsB : ArrayList( $b : size >= 1 ) from collect( CartItem(<br>
> productId == "B", processed == false) )<br>
> $m : RuleMessage()<br>
> then<br>
> $m.addMessage("sizes- A="+$a + " B="+$b);<br>
> int $x = 2;<br>
> int $y = 1;<br>
> $m.addMessage("sizes- X="+$x + " Y="+$y);<br>
> for(int i=0 ; i < $x ; i++){<br>
> CartItem $ci = (CartItem) $itemsA.get(i);<br>
> $m.addMessage( $ci.getId()+")Found item: "+$ci.getProductId());<br>
> modify((CartItem)$ci){<br>
> setProcessed(true),<br>
> setPromoItemDiscount(0D),<br>
> setPromoId("2"),<br>
> setBundleId(bundler.getId()),<br>
> setAggregatorId(1)<br>
> };<br>
> };<br>
> for(int i=0 ; i < $y ; i++){<br>
> CartItem $ci = (CartItem) $itemsB.get(i);<br>
> $m.addMessage( $ci.getId()+")Found item: "+$ci.getProductId());<br>
> modify((CartItem)$ci){<br>
> setProcessed(true),<br>
> setPromoItemDiscount($ci.getPrice()),<br>
> setPromoId("2"),<br>
> setBundleId(bundler.getId()),<br>
> setAggregatorId(2)<br>
> };<br>
> };<br>
> bundler.increment();<br>
> end<br>
><br>
><br>
> error<br>
> Exception in thread "main" org.drools.runtime.rule.ConsequenceException:<br>
> rule: Buy X units of Product A and Get Y units of Product B Free<br>
><br>
> at<br>
> org.drools.runtime.rule.impl.DefaultConsequenceExceptionHandler.handleException(DefaultConsequenceExceptionHandler.java:39)<br>
> at<br>
> org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:916)<br>
> at org.drools.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:845)<br>
> at org.drools.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1056)<br>
> at<br>
> org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:733)<br>
> at<br>
> org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:699)<br>
> at<br>
> org.drools.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:218)<br>
> at com.example.drools.testing.Main.main(Main.java:52)<br>
> Caused by: java.lang.IndexOutOfBoundsException: Index: 1, Size: 1<br>
> at java.util.ArrayList.RangeCheck(ArrayList.java:547)<br>
> at java.util.ArrayList.get(ArrayList.java:322)<br>
> at<br>
> com.example.drools.testing.Rule_Buy_X_units_of_Product_A_and_Get_Y_units_of_Product_B_Free_0.defaultConsequence(Rule_Buy_X_units_of_Product_A_and_Get_Y_units_of_Product_B_Free_0.java:12)<br>
> at<br>
> com.example.drools.testing.Rule_Buy_X_units_of_Product_A_and_Get_Y_units_of_Product_B_Free_0DefaultConsequenceInvoker.evaluate(Rule_Buy_X_units_of_Product_A_and_Get_Y_units_of_Product_B_Free_0DefaultConsequenceInvoker.java:44)<br>
> at<br>
> org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:906)<br>
> ... 6 more<br>
><br>
><br>
> 2011/9/9 Wolfgang Laun <<a href="mailto:wolfgang.laun@gmail.com" target="_blank">wolfgang.laun@gmail.com</a>><br>
>><br>
>> If the declared type of productId and getProductId() is String, it should<br>
>> be compared to a string literal. (A conversion might be made, but don't rely<br>
>> on that.)<br>
>><br>
>> You cannot access components of a global in RHS code using the simplified<br>
>> notation (not unless you use "mvel" - but don't do that.) Here, all accesses<br>
>> should be written the usual Java way, with getter and setter calls.<br>
>><br>
>> The problem you have with modify(ci) is a bug (fixed for 5.3.0). As a<br>
>> workaround,use<br>
>><br>
>> modify( (CartItem)ci ){ ... }<br>
>><br>
>> -W<br>
>><br>
>><br>
>> 2011/9/9 Sandeep Bandela <<a href="mailto:gibsosmat@gmail.com" target="_blank">gibsosmat@gmail.com</a>><br>
>>><br>
>>> some more info for the modify() problem, the CartItem is an interface and<br>
>>> the implementation is CartItemImpl. if this info leads to some clues.<br>
>>><br>
>>><br>
>>> On Fri, Sep 9, 2011 at 1:28 PM, Sandeep Bandela <<a href="mailto:gibsosmat@gmail.com" target="_blank">gibsosmat@gmail.com</a>><br>
>>> wrote:<br>
>>>><br>
>>>> Hi here is the same thing converted to mvl<br>
>>>><br>
>>>> // this Bundler.java has integer member that keeps incrementing<br>
>>>> global Bundler bundler<br>
>>>><br>
>>>> rule "Apply 10% discount if you purchase 2 items"<br>
>>>> when<br>
>>>> $s1 : CartItem( productId == 219759, processed == false)<br>
>>>> $s2 : CartItem( this != $s1, productId == $s1.productId,<br>
>>>> processed == false)<br>
>>>> $m : RuleMessage()<br>
>>>> then<br>
>>>> $m.addMessage("Found item1: " + $s1.getName() + " id:<br>
>>>> "+$s1.getId());<br>
>>>> $m.addMessage("Found item2: " + $s2.getName() + " id:<br>
>>>> "+$s2.getId());<br>
>>>> modify($s1){<br>
>>>> setProcessed(true),<br>
>>>> setPromoItemDiscount($s1.getPrice() * 0.1),<br>
>>>> setPromoId("1"),<br>
>>>> setBundleId(bundler.getId()),<br>
>>>> setAggrigatorId(1)<br>
>>>> };<br>
>>>> modify($s2){<br>
>>>> setProcessed(true),<br>
>>>> setPromoItemDiscount($s2.getPrice() * 0.1),<br>
>>>> setPromoId("1"),<br>
>>>> setBundleId(bundler.getId()),<br>
>>>> setAggrigatorId(1)<br>
>>>> };<br>
>>>> $m.addMessage("bundled ["+bundler.getId()+"]<br>
>>>> "+$s1.getId()+","+$s2.getId());<br>
>>>> bundler.increment();<br>
>>>> end<br>
>>>><br>
>>>> the above rule dosent fire, but if I change the highlighter to<br>
>>>> getProductId() == 219759, or use productId == "219759", may be this is some<br>
>>>> edge case but it took long time for me to figure it out productId is String.<br>
>>>> now consider the bundler.getId(), if I use <a href="http://bundler.id" target="_blank">bundler.id</a> I get compilation<br>
>>>> error.<br>
>>>><br>
>>>> Rule Compilation error : [Rule name='Apply 10% discount if you purchase<br>
>>>> 2 items']<br>
>>>><br>
>>>> com/example/promotions/promotionEngine/Rule_Apply_10__discount_if_you_purchase_2_items_0.java<br>
>>>> (23:1592) : The field Bundler.id is not visible<br>
>>>> 2011-09-09 13:18:39,863 INFO [STDOUT] - 2011-09-09 13:18:39,863 INFO<br>
>>>> [PromotionsManager] - ksession initialized<br>
>>>> 2011-09-09 13:18:39,863 INFO [STDOUT] - 2011-09-09 13:18:39,863 INFO<br>
>>>> [PromotionsManager] - Exploding items and inserting cart<br>
>>>> 2011-09-09 13:18:39,864 INFO [STDOUT] - 2011-09-09 13:18:39,863 ERROR<br>
>>>> [CheckOutBasedUtilities] - Failed to apply promo offers<br>
>>>> java.lang.RuntimeException: Unexpected global [bundler]<br>
>>>> at<br>
>>>> org.drools.common.AbstractWorkingMemory.setGlobal(AbstractWorkingMemory.java:613)<br>
>>>> at<br>
>>>> org.drools.impl.StatefulKnowledgeSessionImpl.setGlobal(StatefulKnowledgeSessionImpl.java:332)<br>
>>>> at<br>
>>>> com.example.promotions.promotionEngine.PromotionsManager.applyOffers(PromotionsManager.java:154)<br>
>>>> at<br>
>>>> com.example.promotions.promotionEngine.PromotionsManager.shuffleForOffers(PromotionsManager.java:61)`<br>
>>>><br>
>>>> lastly my actual problem that I am looking for a solution lets say we<br>
>>>> have "Buy X items of A and get Y Items of B". X=5 & Y=4 from the original<br>
>>>> problem I want to template the rule and load the values of X,A,Y,B from<br>
>>>> database or excel etc. if I use modify the error is as follows<br>
>>>><br>
>>>> my rule<br>
>>>><br>
>>>><br>
>>>> rule "Buy X units of Product A and Get Y units of Product B Free"<br>
>>>> when<br>
>>>> $itemsX : ArrayList( size == 2 ) from collect( CartItem(<br>
>>>> getProductId() == 24257, !isProcessed()))<br>
>>>> $itemsY : ArrayList( size == 1) from collect(CartItem(<br>
>>>> getProductId() == 24260, !isProcessed()))<br>
>>>> $m : RuleMessage()<br>
>>>> then<br>
>>>> for(Object item : $itemsX){<br>
>>>> CartItem ci = (CartItem) item;<br>
>>>> $m.addMessage( ci.getId()+")Found item: "+ci.getItemId()+"<br>
>>>> name: "+ci.getName());<br>
>>>> modify(ci){<br>
>>>> setProcessed(true),<br>
>>>> setPromoItemDiscount(0),<br>
>>>> setPromoId("2"),<br>
>>>> setBundleId(bundler.getId()),<br>
>>>> setAggrigatorId(1)<br>
>>>> };<br>
>>>> }<br>
>>>> for(Object item : $itemsY){<br>
>>>> CartItem ci = (CartItem) item;<br>
>>>> $m.addMessage( ci.getId()+")Found item: "+ci.getItemId()+"<br>
>>>> name: "+ci.getName());<br>
>>>> modify(ci){<br>
>>>> setProcessed(true),<br>
>>>> setPromoItemDiscount(ci.getPrice()),<br>
>>>> setPromoId("2"),<br>
>>>> setBundleId(bundler.getId()),<br>
>>>> setAggrigatorId(2)<br>
>>>> };<br>
>>>> }<br>
>>>> bundler.increment();<br>
>>>> end<br>
>>>><br>
>>>> Rule Compilation error : [Rule name='Buy X units of Product A and Get Y<br>
>>>> units of Product B Free']<br>
>>>><br>
>>>> com/example/promotions/promotionEngine/Rule_Buy_X_units_of_Product_A_and_Get_Y_units_of_Product_B_Free_0.java<br>
>>>> (11:1236) : The method setProcessed(boolean) is undefined for the type<br>
>>>> Object<br>
>>>><br>
>>>> com/example/promotions/promotionEngine/Rule_Buy_X_units_of_Product_A_and_Get_Y_units_of_Product_B_Free_0.java<br>
>>>> (12:1265) : The method setPromoItemDiscount(int) is undefined for the type<br>
>>>> Object<br>
>>>><br>
>>>> com/example/promotions/promotionEngine/Rule_Buy_X_units_of_Product_A_and_Get_Y_units_of_Product_B_Free_0.java<br>
>>>> (13:1299) : The method setPromoId(String) is undefined for the type Object<br>
>>>><br>
>>>> com/example/promotions/promotionEngine/Rule_Buy_X_units_of_Product_A_and_Get_Y_units_of_Product_B_Free_0.java<br>
>>>> (14:1325) : The method setBundleId(Integer) is undefined for the type Object<br>
>>>><br>
>>>> com/example/promotions/promotionEngine/Rule_Buy_X_units_of_Product_A_and_Get_Y_units_of_Product_B_Free_0.java<br>
>>>> (15:1364) : The method setAggrigatorId(int) is undefined for the type Object<br>
>>>><br>
>>>> com/example/promotions/promotionEngine/Rule_Buy_X_units_of_Product_A_and_Get_Y_units_of_Product_B_Free_0.java<br>
>>>> (22:1702) : The method setProcessed(boolean) is undefined for the type<br>
>>>> Object<br>
>>>><br>
>>>> com/example/promotions/promotionEngine/Rule_Buy_X_units_of_Product_A_and_Get_Y_units_of_Product_B_Free_0.java<br>
>>>> (23:1731) : The method setPromoItemDiscount(Double) is undefined for the<br>
>>>> type Object<br>
>>>><br>
>>>> com/example/promotions/promotionEngine/Rule_Buy_X_units_of_Product_A_and_Get_Y_units_of_Product_B_Free_0.java<br>
>>>> (24:1777) : The method setPromoId(String) is undefined for the type Object<br>
>>>><br>
>>>> com/example/promotions/promotionEngine/Rule_Buy_X_units_of_Product_A_and_Get_Y_units_of_Product_B_Free_0.java<br>
>>>> (25:1803) : The method setBundleId(Integer) is undefined for the type Object<br>
>>>><br>
>>>> com/example/promotions/promotionEngine/Rule_Buy_X_units_of_Product_A_and_Get_Y_units_of_Product_B_Free_0.java<br>
>>>> (26:1842) : The method setAggrigatorId(int) is undefined for the type Object<br>
>>>><br>
>>>> Rule Compilation error : [Rule name='Apply 10% discount if you purchase<br>
>>>> 2 items']<br>
>>>><br>
>>>> com/example/promotions/promotionEngine/Rule_Apply_10__discount_if_you_purchase_2_items_0.java<br>
>>>> (23:1592) : The field Bundler.id is not visible<br>
>>>><br>
>>>><br>
>>>> On Fri, Sep 9, 2011 at 12:40 PM, Sandeep Bandela <<a href="mailto:gibsosmat@gmail.com" target="_blank">gibsosmat@gmail.com</a>><br>
>>>> wrote:<br>
>>>>><br>
>>>>> Hi Wolfgang,<br>
>>>>> This is what I did initially but for product > 2 I didnt find a generic<br>
>>>>> way to do this. following is my first rule. I didnt use field names because<br>
>>>>> it was giving error that member is not accessible. I will attach the errors<br>
>>>>> of each case in a few mins.<br>
>>>>><br>
>>>>> rule "Apply 10% discount if you purchase 2 items"<br>
>>>>> dialect "java"<br>
>>>>> when<br>
>>>>> $s1 : CartItem( getProductId() == 236061, !isProcessed())<br>
>>>>> $s2 : CartItem( getProductId() == 236061, getId() !=<br>
>>>>> $s1.getId(), !isProcessed())<br>
>>>>> $m : RuleMessage()<br>
>>>>> then<br>
>>>>> $m.addMessage("Found item1: " + $s1.getName() + " id:<br>
>>>>> "+$s1.getId());<br>
>>>>> $m.addMessage("Found item2: " + $s2.getName() + " id:<br>
>>>>> "+$s2.getId());<br>
>>>>> modify($s1){<br>
>>>>> setProcessed(true),<br>
>>>>> setPromoItemDiscount($s1.getPrice() * 0.1),<br>
>>>>> setPromoId("1"),<br>
>>>>> setBundleId(bundler.getId()),<br>
>>>>> setAggrigatorId(1)<br>
>>>>> };<br>
>>>>> modify($s2){<br>
>>>>> setProcessed(true),<br>
>>>>> setPromoItemDiscount($s2.getPrice() * 0.1),<br>
>>>>> setPromoId("1"),<br>
>>>>> setBundleId(bundler.getId()),<br>
>>>>> setAggrigatorId(1)<br>
>>>>> };<br>
>>>>> bundler.increment();<br>
>>>>> end<br>
>>>>><br>
>>>>> 2011/9/9 Wolfgang Laun <<a href="mailto:wolfgang.laun@gmail.com" target="_blank">wolfgang.laun@gmail.com</a>><br>
>>>>>><br>
>>>>>> Your rule exhibits procedural thinking. (For an aspiring rule<br>
>>>>>> programmer his is typical teething troubles.)<br>
>>>>>><br>
>>>>>> There's no need to collect all A's and B's in order to determine their<br>
>>>>>> number being greater than one or two - this is achieved automatically by a<br>
>>>>>> simple triple match rule. Consider<br>
>>>>>><br>
>>>>>> rule "2A - 1B"<br>
>>>>>> when<br>
>>>>>> $a1: CartItem( productId == "A", processed == false )<br>
>>>>>> $a2: CartItem( this != $a1, productId == "A", processed == false )<br>
>>>>>> $b: CartItem( productId == "B", processed == false )<br>
>>>>>> then<br>
>>>>>> modify( $a1 ){...}<br>
>>>>>> modify( $a2 ){...}<br>
>>>>>> modify( $b ){...}<br>
>>>>>> end<br>
>>>>>><br>
>>>>>> Note:<br>
>>>>>><br>
>>>>>> The modify is essential. (When you say "doesn't work", always provide<br>
>>>>>> details.)<br>
>>>>>> Use the field name rather than the getter call - it improves<br>
>>>>>> readability.<br>
>>>>>> I'm not sure whether 5.2.0 final handles boolean fields correctly -<br>
>>>>>> IIRC, there were some issues. It's possible that CartItem(..., !processed)<br>
>>>>>> works.<br>
>>>>>><br>
>>>>>> -W<br>
>>>>>><br>
>>>>>> 2011/9/8 Sandeep Bandela <<a href="mailto:gibsosmat@gmail.com" target="_blank">gibsosmat@gmail.com</a>><br>
>>>>>>><br>
>>>>>>> Hi,<br>
>>>>>>> I am new to rules engine, after going through the examples shipped<br>
>>>>>>> (shopping.drl, petstore.drl)<br>
>>>>>>> I am trying to implement promotional discounting using drools 5.2.0<br>
>>>>>>> final, stateful session. assume cart has all the items that customer wants<br>
>>>>>>> to buy,<br>
>>>>>>> I am trying to bundle them together with the existing offers<br>
>>>>>>><br>
>>>>>>> rule "Buy X units of Product A and Get Y units of Product B Free"<br>
>>>>>>> dialect "java"<br>
>>>>>>> when<br>
>>>>>>> $itemsA : ArrayList( size >= 2) from collect( CartItem(<br>
>>>>>>> getProductId() == "A", !isProcessed()))<br>
>>>>>>> $itemsB : ArrayList( size >= 1) from collect( CartItem(<br>
>>>>>>> getProductId() == "B", !isProcessed()))<br>
>>>>>>> then<br>
>>>>>>> // current scenario buy 2*A and get 1*B<br>
>>>>>>> int x = 2;<br>
>>>>>>> int y = 1;<br>
>>>>>>> for(int i=0 ; i < x ; i++){<br>
>>>>>>> CartItem $ci = (CartItem) $itemsA.get(i);<br>
>>>>>>> // modify($ci){setProcessed(true) ... } dosent work<br>
>>>>>>> $ci.setProcessed(true);<br>
>>>>>>> $ci.setItemDiscount(0.0);<br>
>>>>>>> $ci.setBundleId(bundler.getId());<br>
>>>>>>> }<br>
>>>>>>><br>
>>>>>>> for(int i=0 ; i < y ; i++){<br>
>>>>>>> CartItem $ci = (CartItem) $itemsB.get(i);<br>
>>>>>>> $ci.setProcessed(true);<br>
>>>>>>> $ci.setItemDiscount($ci.getPrice());<br>
>>>>>>> $ci.setBundleId(bundler.getId());<br>
>>>>>>> }<br>
>>>>>>> // global counter to identify bundled items<br>
>>>>>>> bundler.increment();<br>
>>>>>>> end<br>
>>>>>>><br>
>>>>>>> the above rule calculates only for 1 set of offer i.e first 2*A & 1*B<br>
>>>>>>> are considered, rest in the cart are not bundled.<br>
>>>>>>> if customer buys 4*A + 2*B it dosent consider it. am I missing<br>
>>>>>>> anything? is this the right way to do it?<br>
>>>>>>> any feedback is appreciated.<br>
>>>>>>><br>
>>>>>>><br>
>>>>>>><br>
>>>>>>><br>
>>>>>>> --<br>
>>>>>>> Regards,<br>
>>>>>>> Sandeep Bandela.<br>
>>>>>>><br>
>>>>>>><br>
>>>>>>> _______________________________________________<br>
>>>>>>> rules-users mailing list<br>
>>>>>>> <a href="mailto:rules-users@lists.jboss.org" target="_blank">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>
>>>>>>><br>
>>>>>><br>
>>>>>><br>
>>>>>> _______________________________________________<br>
>>>>>> rules-users mailing list<br>
>>>>>> <a href="mailto:rules-users@lists.jboss.org" target="_blank">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>
>>>>>><br>
>>>>><br>
>>>>><br>
>>>>><br>
>>>>> --<br>
>>>>> Regards,<br>
>>>>> Sandeep Bandela.<br>
>>>>><br>
>>>><br>
>>>><br>
>>>><br>
>>>> --<br>
>>>> Regards,<br>
>>>> Sandeep Bandela.<br>
>>>><br>
>>><br>
>>><br>
>>><br>
>>> --<br>
>>> Regards,<br>
>>> Sandeep Bandela.<br>
>>><br>
>>><br>
>>> _______________________________________________<br>
>>> rules-users mailing list<br>
>>> <a href="mailto:rules-users@lists.jboss.org" target="_blank">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>
>>><br>
>><br>
>><br>
>> _______________________________________________<br>
>> rules-users mailing list<br>
>> <a href="mailto:rules-users@lists.jboss.org" target="_blank">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>
>><br>
><br>
><br>
><br>
> --<br>
> Regards,<br>
> Sandeep Bandela.<br>
><br>
><br>
> _______________________________________________<br>
> rules-users mailing list<br>
> <a href="mailto:rules-users@lists.jboss.org" target="_blank">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>
><br>
><br>
<br>
_______________________________________________<br>
rules-users mailing list<br>
<a href="mailto:rules-users@lists.jboss.org" target="_blank">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>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>Regards,<br>Sandeep Bandela.<br><br>
</div></div><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>
<br></blockquote></div><br>