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@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@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 -