Based on distance and night surcharge, I have rules to get taxi fare.
Decision table excel sheet : rule_fare in com.rules package
Facts :
class TaxiRide {private Boolean isNightSurcharge;private Integer distanceInMile;}
class Fare {private Integer nightSurcharge;private Integer rideFare;}
Now, if one rule is execute from above then only second rule from below decision table should fire.
Based on condition we will give discount to customer.
Decision table excel sheet : rule_discount in com.rules package
Fact :
class TaxiRide {private Boolean isNightSurcharge;private Integer distanceInMile;}
class Discount {private Boolean isDiscount;Integer discount;}
kmodule.xml
<?xml version="1.0" encoding="UTF-8"?>
<kmodule xmlns="http://jboss.org/kie/6.0.0/kmodule"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<kbase name="rules_xls" packages="com.rules">
<ksession name="rulesSession" />
</kbase>
</kmodule>
Code snippet :
KieSession kieSession = KieServices.Factory.get().getKieClasspathContainer().newKieSession("rulesSession");
FactHandle rideFactHandle = kieSession.insert(taxiRide);
FactHandle discountFactHandle = kieSession.insert(discount);
Integer count = kieSession.fireAllRules();
getting error :
o.d.c.kie.builder.impl.KieProject : Unable to build KieBaseModel:rules_xls
[10,16]: [ERR 102] Line 10:16 mismatched input '>=' in rule "Discount 1"
[21,16]: [ERR 102] Line 21:16 mismatched input '>=' in rule "Discount 2"
[32,16]: [ERR 102] Line 32:16 mismatched input '>' in rule "Discount 3"
[0,0]: Parser returned a null Package