How to use multiple decision tables (excel file) with Spring Drools with same fact

1.3k Views Asked by At

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

rule_fare sheet rule_discount sheet

0

There are 0 best solutions below