You don't want those semicolons.  Also, you don't need to quote the rule
name.  Something more like this:

rule "bank_sovereign_corporate_standardizedWeight_1"
when
  result:String()
  $obj_seeker:Seeker(type=="bsc",(val == "issueRatings1" or val ==
"issueRatings2"))
then
  result = "Standardized weight   "+Rules.facilityWeight +" % ";
  retract(obj_seeker);
  modify(result);
end

That is at least more correct.  I didn't try to parse it myself, but it
would get you closer.  In general, when the Drools compiler complains about
a token, you have to look somewhere *around* that token's appearance to see
where the error is -- you may have to backtrack a few lines.  I usually
start cutting and pasting in successively more complex versions of a rule
until it stops working, then I know what was wrong.

On a further note, I wouldn't use a String() type for rule matching.  It
works, but now you've essentially said that any String in the WorkingMemory
is, in fact, that result string and is a candidate to be matched.  Perhaps
that's true, but it just... feels wrong.  What I've done in the past is just
wrapped a String in a simple object tagged with the right information.  If
this is a Result, make an object called Result and have it hold the String
value.  Then you can match on *that*, not on a simple String.

---
Michael J. Suzio
[EMAIL PROTECTED]

Reply via email to