I am still stuck with this problem. Anyone
with decision table experience care to lend a hand, please?
The docs for decision tables seem to lack
a great deal. I'd be happy to work on them some, but gotta get this one
working.
Thanks!
From: Hehl, Thomas
Sent: Tuesday, August 28, 2007
4:10 PM
To: 'rules-users@lists.jboss.org'
Subject: Decision Tables
I'm having trouble figuring out the ACTION section of
a decision table. Everything else appears to be working.
My rules result in a simple True/False condition. To do this
in a decision table, I've created a class called BooleanAnswer that looks
like:
public class BooleanAnswer {
private boolean answer;
/**
* no-arg constructor
*/
public BooleanAnswer(){
}
/**
* create your own default answer
* @param answer the answer to set
*/
public BooleanAnswer(boolean answer){
setAnswer(answer);
}
/**
* @return the answer
*/
public boolean isTrue() {
return answer;
}
/**
* @param answer the answer to set
*/
public void setAnswer(boolean answer) {
this.answer = answer;
}
}
Then I create a decision table with the following ACTION in
it:
ACTION |
|
answer: BooleanAnswer |
|
answer.setAnswer($param); |
|
Allowed |
|
TRUE |
|
|
|
|
|
|
|
|
This generates the following errors:
...
Caused by: org.drools.rule.InvalidRulePackage: Rule
Compilation error : [Rule name=postponePart_15, agendaGroup=MAIN, salience=0,
no-loop=false]
participantPostponementRules/Rule_postponePart_15_0.java (8:343) : The field
BooleanAnswer.answer is not visible
Rule Compilation error : [Rule name=postponePart_13,
agendaGroup=MAIN, salience=0, no-loop=false]
participantPostponementRules/Rule_postponePart_13_0.java (8:343) : The field
BooleanAnswer.answer is not visible
Rule Compilation error : [Rule name=postponePart_14,
agendaGroup=MAIN, salience=0, no-loop=false]
participantPostponementRules/Rule_postponePart_14_0.java (8:343) : The field
BooleanAnswer.answer is not visible
Rule Compilation error : [Rule name=postponePart_16,
agendaGroup=MAIN, salience=0, no-loop=false]
participantPostponementRules/Rule_postponePart_16_0.java (8:343) : The field
BooleanAnswer.answer is not visible
Rule Compilation error : [Rule name=postponePart_17,
agendaGroup=MAIN, salience=0, no-loop=false]
participantPostponementRules/Rule_postponePart_17_0.java (8:343) : The field
BooleanAnswer.answer is not visible
Rule Compilation error : [Rule name=postponePart_10,
agendaGroup=MAIN, salience=0, no-loop=false]
participantPostponementRules/Rule_postponePart_10_0.java (8:343) : The field
BooleanAnswer.answer is not visible
Rule Compilation error : [Rule name=postponePart_11,
agendaGroup=MAIN, salience=0, no-loop=false]
participantPostponementRules/Rule_postponePart_11_0.java (8:343) : The field
BooleanAnswer.answer is not visible
Rule Compilation error : [Rule name=postponePart_18,
agendaGroup=MAIN, salience=0, no-loop=false]
participantPostponementRules/Rule_postponePart_18_0.java (8:343) : The field
BooleanAnswer.answer is not visible
Rule Compilation error : [Rule name=postponePart_19,
agendaGroup=MAIN, salience=0, no-loop=false]
participantPostponementRules/Rule_postponePart_19_0.java (8:343) : The field
BooleanAnswer.answer is not visible
Rule Compilation error : [Rule name=postponePart_12,
agendaGroup=MAIN, salience=0, no-loop=false]
participantPostponementRules/Rule_postponePart_12_0.java (8:343) : The field
BooleanAnswer.answer is not visible
at org.drools.rule.Package.checkValidity(Package.java:408)
at org.drools.common.AbstractRuleBase.addPackage(AbstractRuleBase.java:288)
at com.acs.gs.juror.bizstrategy.PostponementStrategy.init(PostponementStrategy.java:129)
... 14 more
)
at junit.framework.Assert.fail(Assert.java:47)
at junit.framework.TestSuite$1.runTest(TestSuite.java:263)
at junit.framework.TestCase.runBare(TestCase.java:127)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:128)
at
org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
Help for a newbie, please?
Thanks.
Thom Hehl
Sr. eJuror Architect
) Office (859)
277-8800 x 144
* Thomas.Hehl@acs-inc.com
ACS, Inc.
Government Solutions
This e-mail message, including any
attachments, is for the sole use of the intended recipient(s) and may contain
confidential and privileged information. Any unauthorized review, use, disclosure
or distribution is prohibited. If you are not the intended recipient, please
contact the sender by reply e-mail and destroy all copies of the original
message and notify sender via e-mail at Thomas.Hehl@acs-inc.com or by
telephone at 859-277-8800 ext. 144. Thank you.