Brian, the order of the mappings is important, because DSL is a "text match" engine. So, always write your DSL Mapping file having the most restrictive mappings first.

    []s
    Edson


2007/9/17, Brian Enderle <brianke@gmail.com>:
I have the following DSL entries:

County is invalid for State
[condition][]County is invalid for State=eval(StringUtils.isNotBlank
($i.getCntyCd())) and eval(!$i.getCntyCd().substring(0,2).equals($i.getStateCd
()))

POB County is invalid for State
[condition][]POB County is invalid for State=eval(StringUtils.isNotBlank
($i.getPobCntyCd())) and eval(!$i.getPobCntyCd().substring(0,2).equals
($i.getPobStateCd()))

The rule in which I am using the DSL entry is as follows:
rule "LevelOne: Place Of Birth, County is invalid"
   agenda-group "LevelOne"
   when
      There is a NwCitizenship
         - pobCntryCd equals MessageConstants.COUNTRY_CODE_US
      POB County is invalid for State
   then
      <Report error>
end


When I atempt to use the POB County... rule I get the following error:

org.springframework.beans.factory.BeanCreationException : Error creating bean
with name 'ruleBase' defined in class path resource [spring-beans.xml]:
Invocation of init method failed; nested exception is
org.drools.rule.InvalidRulePackage: [143,33]: unknown:143:33 Unexpected
token '$i'[143,47]: unknown:143:47 mismatched token:
[@987,4726:4726=')',<12>,143:47]; expecting type THEN
Caused by: org.drools.rule.InvalidRulePackage: [143,33]: unknown:143:33
Unexpected token '$i'[143,47]: unknown:143:47 mismatched token:
[@987,4726:4726=')',<12>,143:47]; expecting type THEN
        at org.drools.rule.Package.checkValidity(Package.java:420)
        at org.drools.common.AbstractRuleBase.addPackage
(AbstractRuleBase.java :292)
        at com.sample.RuleBaseBeanFactory.afterPropertiesSet
etc...

However, if I change "POB County" to "POBCounty" (no space, only change the
DSL call leaving the actual code the same) everything works.  Can someone
explain why the two rules cannot coexist with the space in "POB County"?

Thanks,
Brian Enderle

_______________________________________________
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users



--
  Edson Tirelli
  Software Engineer - JBoss Rules Core Developer
  Office: +55 11 3529-6000
  Mobile: +55 11 9287-5646
  JBoss, a division of Red Hat @ www.jboss.com