I'm getting some generic not-anything-saying error message:
[java] Unable to determine the used declarations.
[java] unexpected symbol ' ' : [Rule name='BL: Block mail domain']
When I remove that concatenated matches expression (".*@" +
blacklistItemValue + ".*") it compiles.
Complete rule looks like:
rule "BL: Block mail domain" ruleflow-group "black-list"
salience 1001
when
not RejectionResult();
customer : CustomerPartyDRL();
blackList: BlacklistDRL();
onBlackList : ArrayList( size > 0 )
from collect( BlacklistItemDRL( blacklistItemType matches
"MAIL_DOMAIN" &&
customer.currentContactInformation.partyEmailAddress.email
matches blacklistItemValue )
from blackList.getItems())
then
auditLogger.addDeclineRule( "BL: Block mail domain " +
customer.getCurrentContactInformation().getPartyEmailAddress().getEmailLowercase());
RejectionResult rejection = new OrderRejectionResult( );
rejection.setMessage("BL: Block mail domain " +
customer.getCurrentContactInformation().getPartyEmailAddress().getEmailLowercase());
insert( rejection );
end
And fragment of the code I'm using to compile rule package is:
Reader testSource = new
InputStreamReader(RuleCompiler.class.getResourceAsStream("/perthTestRule.drl"));
Reader sourceFlow = new
InputStreamReader(RuleCompiler.class.getResourceAsStream("/perthScoreCustomerFlow.rf"));
// add the package to a rulebase (deploy the rule package).
KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
kbuilder.add(ResourceFactory.newReaderResource(testSource),
ResourceType.DRL);
kbuilder.add(ResourceFactory.newReaderResource(sourceFlow),
ResourceType.DRF);
System.out.println(kbuilder.getErrors().toString());
Collection<KnowledgePackage> pkgs = kbuilder.getKnowledgePackages();
try {
kbase.addKnowledgePackages(pkgs);
StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
System.out.println("Knowladge session initialized...");
} catch (Exception e) {
e.printStackTrace();
}
Edson Tirelli-4 wrote:
It should work... what error do you see?
Edson
2010/1/13 Lukas Svoboda <lukasvoboda(a)googlemail.com>
>
> How can I get drools 5.0.1 compiled if I have regular expression matches
> part
> concat from static text + dynamic string?
>
> See example:
> onBlackList : ArrayList( size > 0 )
> from collect( BlacklistItemDRL( blacklistItemType matches
> "MAIL_DOMAIN" &&
> customer.currentContactInformation.partyEmailAddress.email
> matches (".*@" + blacklistItemValue + ".*") )
> from blackList.getItems())
>
>
> Problem is when I'm trying to do email matches (".*@" +
> blacklistItemValue
> +
> ".*"), which worked in drools 4.0.7 but can't be compiled now in 5.0.1
>
> Is there any way how to use in matches part of reg exp dynamic property
> value plus static string?
>
> Thanks,
> Lukas
> --
> View this message in context:
>
http://n3.nabble.com/Drools-5-0-concat-string-in-matches-of-regular-expre...
> Sent from the Drools - User mailing list archive at
Nabble.com.
> _______________________________________________
> rules-users mailing list
> rules-users(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/rules-users
>
--
Edson Tirelli
JBoss Drools Core Development
JBoss by Red Hat @
www.jboss.com
_______________________________________________
rules-users mailing list
rules-users(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users
--
View this message in context:
http://n3.nabble.com/Drools-5-0-concat-string-in-matches-of-regular-expre...
Sent from the Drools - User mailing list archive at
Nabble.com.