Hi,
Below are 2 rules, rule1 has higher precedence than rule2. Rule2 should not execute if Rule 1 executes.
1) One way to get this working is to check the null value.
2) If the update is not called, the Rule2 gets executed using the previous null value of potentialTheftRating.
Is there any other way to implement this requirement.
rule "Rule 1 PotentialTheft0"
ruleflow-group "TheftRating0"
salience 10
no-loop
lock-on-active
when
$client : Client()
$policy : Service(productType == "Vehicle Insurance") from $client.service
$car : Vehicle(potentialTheftRating == null, vehicleType == vehicleTypeType.CAR, convertible == Boolean.TRUE) from $policy.vehicle
then
modify ($car) {
setPotentialTheftRating( potentialTheftRatingType.HIGH )
}
update($client);
end
rule "Rule2 PotentialTheft0"
ruleflow-group "TheftRating0"
no-loop
lock-on-active
when
$client : Client()
$policy : Service(productType == "Vehicle Insurance") from $client.service
$car : Vehicle(potentialTheftRating == null,vehicleType == vehicleTypeType.CAR, price >= 20000, price <= 45000, highTheftProbabilty == Boolean.FALSE ) from $policy.vehicle
then
modify ($car) {
setPotentialTheftRating( potentialTheftRatingType.MODERATE )
}
update($client);
end