Bug 1294832 - Unable to create knowledge base with Rule Templates
Summary: Unable to create knowledge base with Rule Templates
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: JBoss BRMS Platform 6
Classification: Retired
Component: BRE
Version: 6.3.0
Hardware: Unspecified
OS: Unspecified
high
high
Target Milestone: ---
: ---
Assignee: Mario Fusco
QA Contact: Marek Winkler
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2015-12-30 14:57 UTC by Kamlesh
Modified: 2016-01-18 09:54 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2016-01-18 09:54:59 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)
Modified XLS file (10.50 KB, application/x-ole-storage)
2016-01-11 13:04 UTC, manstis
no flags Details

Description Kamlesh 2015-12-30 14:57:48 UTC
Description of problem: i'm trying to create a kmodule.xml file to load a decision table with rule template. I'm using the Drools example of rule templates loaded in a knowledgebase named DTableWithTemplateKB with kmodule.xml taken from the example.
https://github.com/droolsjbpm/drools/blob/master/drools-examples/src/main/resources/META-INF/kmodule.xml

In this example, the ExamplePolicyPricing.xls contains both data and RuleTable. The main purpose of Rule Templates is to provide a clean separation of data from the rule. Hence I've removed all content from the xls file except the data. When I do that, I'm getting an error that my xls file doesn't contain the RuleTable. Because I'm using rule template, drools should not expect the RuleTable in xls file.


Rule templates:
http://docs.jboss.org/drools/release/6.3.0.Final/drools-docs/html/ch06.html#d0e5930

Version-Release number of selected component (if applicable):


How reproducible: Consistently with Drools 6.3


Steps to Reproduce:
1. Change the decision table excel to contain only data (Cell B9:H21)
drools-examples/src/main/resources/org/drools/examples/decisiontable/ExamplePolicyPricing.xls

2. Modify DTableWithTemplateKB entry in kmodule.xml file in drools-examples/src/main/resources/META-INF/kmodule.xml with row="2" col="1"
3.Run the PricingRuleTemplateExample

Actual results: 
Exception in thread "main" org.drools.template.parser.DecisionTableParseException: No RuleTable cells in spreadsheet.
	at org.drools.decisiontable.parser.DefaultRuleSheetListener.getRuleSet(DefaultRuleSheetListener.java:139)
	at org.drools.decisiontable.SpreadsheetCompiler.compile(SpreadsheetCompiler.java:94)
	at org.drools.decisiontable.SpreadsheetCompiler.compile(SpreadsheetCompiler.java:72)
	at org.drools.decisiontable.DecisionTableProviderImpl.compileStream(DecisionTableProviderImpl.java:75)


Expected results: Rule should be loaded properly 


Additional info:

Comment 2 manstis 2016-01-11 13:03:34 UTC
There is a "Template" example under: https://github.com/droolsjbpm/drools/blob/master/drools-examples/src/main/java/org/drools/examples/templates/SimpleRuleTemplateExample.java

That said, I also tried modifying the "DTableWithTemplateKS" example (https://github.com/droolsjbpm/drools/blob/master/drools-examples/src/main/java/org/drools/examples/decisiontable/PricingRuleTemplateExample.java) as follows:-

kmodule.xml
-----------
    <kbase name="DTableWithTemplateKB" packages="org.drools.examples.decisiontable">
        <ruleTemplate dtable="org/drools/examples/decisiontable/ExamplePolicyPricing.xls"
                      template="org/drools/examples/decisiontable/BasePricing.drt"
                      row="3" col="3"/>
        <ruleTemplate dtable="org/drools/examples/decisiontable/ExamplePolicyPricing.xls"
                      template="org/drools/examples/decisiontable/PromotionalPricing.drt"
                      row="19" col="3"/>
        <ksession name="DTableWithTemplateKS"/>
    </kbase>

Modified XLS file is also attached.

This also worked fine.

Comment 3 manstis 2016-01-11 13:04:10 UTC
Created attachment 1113610 [details]
Modified XLS file

Comment 4 manstis 2016-01-11 13:04:54 UTC
re: comment#2, can you provide a failing unit test demonstrating the issue as I am unable to reproduce. Thanks.

Comment 5 Mario Fusco 2016-01-11 13:11:43 UTC
Can you please check what reported by Michael and eventually send a reproducer of the problem if it still doesn't work for you?

Comment 7 Kamlesh 2016-01-12 14:01:01 UTC
(In reply to Mario Fusco from comment #5)
> Can you please check what reported by Michael and eventually send a
> reproducer of the problem if it still doesn't work for you?

I tried it with the spreadsheet and kmodule xml from your message and I'm getting the same error. Can you please confirm if your test was done with Drools 6.3?

Comment 8 Mario Fusco 2016-01-12 18:07:59 UTC
I just merged on master the pull request sent by Michael ( https://github.com/droolsjbpm/drools/pull/597/files ) that updates the example as you described. Please let me know if this is what you meant and if it works for you.

Comment 9 Kamlesh 2016-01-18 08:02:45 UTC
(In reply to Mario Fusco from comment #8)
> I just merged on master the pull request sent by Michael (
> https://github.com/droolsjbpm/drools/pull/597/files ) that updates the
> example as you described. Please let me know if this is what you meant and
> if it works for you.

I'm able to get it working. The problem was in dev environment with another rule excel in the  class path. Sorry for false alarm. please close.


Note You need to log in before you can comment on or make changes to this bug.