I think your issue is resolved Chris, but just curious would putting the rule like below make it more efficient?
rule "Myscoreincreaserule" dialect "mvel" when a : Applicant( name == "chris",$score:score ) then a.setScore( $score + 2 ); end --Sarish "Shoot for the moon. Even if you miss it you will land among the stars." - Les Brown On Mon, Jun 8, 2009 at 11:06 AM, Chris Strachan <chris.st...@googlemail.com>wrote: > > Hi, > > Don't think I intended to create a new instance, just modify the one > matched in the rule. The following seems to have got it working. > > rule "Myscoreincreaserule" > dialect "mvel" > when > a : Applicant( name == "chris" ) > then > a.setScore( a.score + 2 ); > end > > Thanks for pointing me in the right direction. > > > Greg Barton wrote: > >> 1) Where is the variable "score" initialized? If it's not a global the >> rule wouldn't compile. >> >> 2) Is your intent to create a new Applicant instance, or modify the one >> matched in the rule? (Or maybe you want to gather the score from the >> matched instance and put it (+2) into a new instance? >> >> --- On Sun, 6/7/09, Chris Strachan <chris.st...@googlemail.com> wrote: >> >> >> >>> From: Chris Strachan <chris.st...@googlemail.com> >>> Subject: [rules-users] Weighted rules / scoring >>> To: rules-users@lists.jboss.org >>> Date: Sunday, June 7, 2009, 1:11 PM >>> Hi, >>> >>> >>> >>> I want to be able to use drools / guvnor brms to store >>> weighted rules >>> >>> (scoring), however I can't seem to find a way to do >>> this. >>> >>> >>> >>> I attempted the following, >>> >>> >>> >>> rule "Myscoreincreaserule" >>> >>> dialect "mvel" >>> >>> when >>> >>> Applicant( name == >>> "chris" ) >>> >>> then >>> >>> Applicant fact0 = new Applicant(); >>> >>> fact0.setScore( score + 2 ); >>> >>> insert(fact0 ); >>> >>> end >>> >>> >>> >>> drools didn't seem to like the way I did this. >>> Perhaps this isn't >>> >>> permitted, in effect I am trying to do - score = score + >>> 2. >>> >>> >>> >>> Upon validation I get the following error. >>> >>> >>> >>> [Myscoreincreaserule] Unable to build >>> expression for 'consequence': Failed >>> >>> to compile: 1 compilation error(s): - (1,3) unqualified >>> type in strict mode >>> >>> for: age ' Applicant fact0 = new Applicant(); >>> fact0.setScore( score + 2 ); >>> >>> insert(fact0 ); ' >>> >>> >>> >>> Any ideas on how I should be approaching this? >>> >>> >>> >>> Thanks, >>> >>> >>> -----Inline Attachment Follows----- >>> >>> _______________________________________________ >>> rules-users mailing list >>> rules-users@lists.jboss.org >>> https://lists.jboss.org/mailman/listinfo/rules-users >>> >>> >>> >> >> >> >> _______________________________________________ >> rules-users mailing list >> rules-users@lists.jboss.org >> https://lists.jboss.org/mailman/listinfo/rules-users >> >> > > _______________________________________________ > rules-users mailing list > rules-users@lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users >
_______________________________________________ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users