You made the same error in three other places. Fix them. Are you familiar with the java
language?
GreG
On Dec 3, 2010, at 15:15, "John McKim" <jmckim(a)comcast.net> wrote:
Thanks for the reply Mauricio. I tried what you said using this
modified rule:
rule "medicalHistoryBleedingRiskFactors.gastritis rule"
salience 20
when
# find patients who indicated that they have MedicalHistoryBleedingRiskFactors:
gastritis
$patient : Patient(medicalHistoryBleedingRiskFactors.gastritis > 0)
then
String severity = $patient.medicalHistoryBleedingRiskFactors.gastritis;
$weight = 5;
$factor = .1;
$tempScore = $factor;
$tempScore = $tempScore * $weight;
$tempScore = $tempScore * $severity;
# Now add this risk score to the accumlated risk score
$patient.score = $patient.score + $tempScore;
$patient.problem = new
String("MedicalHistoryBleedingRiskFactors.gastritis");
end
But I got this exception in the client (I am using 5.1.1 by the way):
Exception in thread "Thread-4" java.lang.RuntimeException: Unable to build
expression for 'consequence': [Error: Failed to compile: 1 compilation error(s):
- (1,9) unqualified type in strict mode for: $severity]
[Near : {... Unknown ....}]
^
[Line: 1, Column: 0] ' String severity =
$patient.medicalHistoryBleedingRiskFactors.gastritis;
$weight = 5;
$factor = .1;
$tempScore = $factor;
$tempScore = $tempScore * $weight;
$tempScore = $tempScore * $severity;
// Now add this risk score to the accumlated risk score
$patient.score = $patient.score + $tempScore;
$patient.problem = new
String("MedicalHistoryBleedingRiskFactors.gastritis");
' : [Rule name='medicalHistoryBleedingRiskFactors.gastritis rule']
at
com.kai.framework.plugins.ruleengine.LocalRuleEnginePlugin.createLevel1KnowledgeBase(LocalRuleEnginePlugin.java:107)
at
com.kai.framework.plugins.ruleengine.LocalRuleEnginePlugin.access$100(LocalRuleEnginePlugin.java:22)
at
com.kai.framework.plugins.ruleengine.LocalRuleEnginePlugin$InitializeRuleEngine.run(LocalRuleEnginePlugin.java:192)
When I took out the String severity and used just $severity: it works fine. Just on the
App server does it fail.
From: rules-users-bounces(a)lists.jboss.org [mailto:rules-users-bounces@lists.jboss.org] On
Behalf Of Mauricio Salatino
Sent: Friday, December 03, 2010 3:36 PM
To: Rules Users List
Subject: Re: [rules-users] Rules in App Server Error
that's weird.. you are using a varible that you never define in the Right Hand Side.
$severity was never defined. In the RHS remember that you can write pure java. So if you
want a variable called severity you should declare it as:
String severity = $patient.
medicalHistoryBleedingRiskFactors.gastritis;
Greetings.
2010/12/3 John McKim <jmckim(a)comcast.net>
I'm having a problem that I can't seem to figure out. I have rules that run in a
client program with no problem - about 125 rules in all. When I try to run these same
rules in an App Server (GlassFish) I get several rules (about 5) that have an error on
initialization. Here is the error message followed by the rule.
*******************************************
SEVERE: java.lang.RuntimeException: Unable to build expression for 'consequence':
[Error: not a statement, or badly formed structure]
[Near : {... $severity;
....}]
^
[Line: 1, Column: 233] ' $severity =
$patient.medicalHistoryBleedingRiskFactors.gastritis;
$weight = 5;
$factor = .1;
$tempScore = $factor;
$tempScore = $tempScore * $weight;
$tempScore = $tempScore * $severity;
// Now add this risk score to the accumlated risk score
$patient.score = $patient.score + $tempScore;
$patient.problem = new
String("MedicalHistoryBleedingRiskFactors.gastritis");
' : [Rule name='medicalHistoryBleedingRiskFactors.gastritis rule']
**********************************************
rule "medicalHistoryBleedingRiskFactors.gastritis rule"
salience 20
when
# find patients who indicated that they have MedicalHistoryBleedingRiskFactors:
gastritis
$patient : Patient(medicalHistoryBleedingRiskFactors.gastritis > 0)
then
$severity = $patient.medicalHistoryBleedingRiskFactors.gastritis;
$weight = 5;
$factor = .1;
$tempScore = $factor;
$tempScore = $tempScore * $weight;
$tempScore = $tempScore * $severity;
# Now add this risk score to the accumlated risk score
$patient.score = $patient.score + $tempScore;
$patient.problem = new
String("MedicalHistoryBleedingRiskFactors.gastritis");
end
As I said, this rule runs fine in a client app – when I run the same rules in app server
I get an error. This is only happening in 5 out of 125 rules, and only during
initialization using builder.add(ResourceFactory.newClassPathResource(file).
Thanks.
_______________________________________________
rules-users mailing list
rules-users(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users
--
- CTO @
http://www.plugtree.com
- MyJourney @
http://salaboy.wordpress.com
- Co-Founder @
http://www.jbug.com.ar
- Salatino "Salaboy" Mauricio -
_______________________________________________
rules-users mailing list
rules-users(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users