[rules-users] Help me improve my rules performance.

Greg Barton greg_barton at yahoo.com
Mon Nov 16 01:16:30 EST 2009


The answer to both questions is basically the same: use the "this" reference.

rule CheckValidBinNumber
when
   $br:BillingRecord(cardNo!=null || cardNo!="")
   $valid: Boolean(this == false) from checkValidity($br.cardNo)
then
   error(BillingRecordHelper.BIN_NO_INVALID_ERROR,log);
end

rule AssignMerchantNumber
when
   $br:BillingRecord(merchantNo==null || merchantNo=="")
   $mno:String(this != "") from getMerchantNo($br.billingActionCd, $br.cardType,
$br.salesSourceTypeCode, $br.posId)
then
    modify($br){setMerchantNo($mno);}
    info(BillingRecordHelper.MERCHANT_NO_ASSIGNED_INFO,log);
end

--- On Sun, 11/15/09, ABRA2 <rabarna at archstone.in> wrote:

> From: ABRA2 <rabarna at archstone.in>
> Subject: Re: [rules-users] Help me improve my rules performance.
> To: rules-users at lists.jboss.org
> Date: Sunday, November 15, 2009, 11:13 PM
> 
> Thanks  a lot. Your suggestions has helped me improve
> my rule's performance.
> I have two more rule i need help with. 
> 
> 1. How do i check for condition of boolean variable without
> using eval like
> in the case below? 
> 
> rule CheckValidBinNumber
> when
>    $br:BillingRecord(cardNo!=null ||
> cardNo!="")
>    $valid: Boolean() from
> checkValidity($br.cardNo)
>    eval(!($valid))
> then
>    error(BillingRecordHelper.BIN_NO_INVALID_ERROR,log);
> end
> 
> 2. How do i check if the value of variable created in when
> part without
> using eval? getMerchantNo is a function defined in the .drl
> file. If i dont
> use the condition eval($mno!="") then my rules gets fired
> in an infinte loop
> because there is one more rule which sets the value of
> billingActionCd in
> BillingRecord in working memory and it also triggers this
> rule. 
> 
> rule AssignMerchantNumber
> when
>    $br:BillingRecord(merchantNo==null ||
> merchantNo=="")
>    $mno:String() from
> getMerchantNo($br.billingActionCd, $br.cardType,
> $br.salesSourceTypeCode, $br.posId)
>    eval($mno!="")
> then
>     modify($br){setMerchantNo($mno);}
>    
> info(BillingRecordHelper.MERCHANT_NO_ASSIGNED_INFO,log);
> end
> 
> I really appreciate your timely help for improving my
> rules.
> 
> thanks
> ABRA2
> -- 
> View this message in context: http://old.nabble.com/Help-me-improve-my-rules-performance.-tp26261345p26366969.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
> 


      




More information about the rules-users mailing list