[rules-users] Bizarre bug or user error:

Wolfgang Laun wolfgang.laun at gmail.com
Tue Apr 7 02:59:46 EDT 2009


Hi,

On 4/7/09, Tom.E.Murphy at wellsfargo.com <Tom.E.Murphy at wellsfargo.com> wrote:
> I have the following rule, which is executing in the midst of a complex
> data set and a couple hundred other rules:
>
> rule "RS6492.1.2"
> 	when
> 		TransactionSummary
> 		(
> 			 $LTVRatioPrcnt : LTVRatioPrcnt
> 		)
> 		PolicySet
> 		(
> 			$maxLTVRatioPrcnt : maxLTVRatioPrcnt,
> 			maxLTVRatioPrcnt < $LTVRatioPrcnt
> 		)

This is better written as a single field restriction with binding, all in one:

   PolicySet( $maxLTVRatioPrcnt : maxLTVRatioPrcnt < $LTVRatioPrcnt )

Nevertheless, you are right: This should either succeed (firing only
once) even when written separately or be flagged as an error. I'll
file a JIRA.
-W

> 	then
> 		System.out.println("RS6492.1.2 fired. $maxLTVRatioPrcnt
> = " + $maxLTVRatioPrcnt + ", $LTVRatioPrcnt = " + $LTVRatioPrcnt);
> 		// actual actions removed ...
> end
>
> In the dataset, there are two PolicySets with maxLTVRatioPrcnt values of
> 95.0 and 80.0 respectively. The LTVRatioPrcnt in the TransactionSummary
> is 85.0.
> When my rules run, The above rule should fire only once, for the
> PolicySet with 80.0 as its maxLTVRatioPrcnt. However, it fires twice -
> once for each PolicySet - with the following outputs:
>
> RS6492.1.2 fired. $maxLTVRatioPrcnt = 95.0, $LTVRatioPrcnt = 85.0
> RS6492.1.2 fired. $maxLTVRatioPrcnt = 80.0, $LTVRatioPrcnt = 85.0
>
> How is this possible? Why is the comparison of maxLTVRatioPercnt <
> $LTVRatioPrcnt succeeding in both cases, causing the rule to fire on
> both PolicySets?
> I'm running Drools 5.0.0 with jars dated 15 Jan 09.
> Thanks in advance...
>
> Tom Murphy
> Wells Fargo HCFG - CORE Deal Decisioning Platform
> This message may contain confidential and/or privileged information.  If
> you are not the addressee or authorized to receive this for the
> addressee, you must not use, copy, disclose, or take any action based on
> this message or any information herein.  If you have received this
> message in error, please advise the sender immediately by reply e-mail
> and delete this message.  Thank you for your cooperation.
>
>
>



More information about the rules-users mailing list