Drools规则没有解雇

时间:2017-11-18 14:24:07

标签: drools rule-engine validationrules drools-kie-server

我是drools的新手,我正在尝试为项目创建一些规则。我已经能够制定一些规则,但我发现很难解雇以下规则,所以任何帮助都是有价值的,非常感谢。我已经尝试了超过一天的时间来解雇以下规则,我尝试了多种组合但没有成功。该模型是一个具有多个属性的巨大对象,因此我无法提供它。

在下面的规则中,“header.totalGrossMassMeasure”是一个bigDecimal值。它是由带有xjc插件的xsd生成的。我想检查它的格式是一个十六进制数,总共有16位数,最多6个十进制数  我知道正则表达式有点笨重但形式测试它here它似乎有效。然而它不能被解雇。有什么建议?

rule "007"
no-loop
when 
 $msg : Declaration( header.totalGrossMassMeasure.toString() matches "^([0-
 9]{10}(\\.[0-9]{1,6})?)$|^([0-9]{11}(\\.[0-9]{1,5})?)$|^([0-9]{12}(\\.[0-9]
 {1,4})?)$|^([0-9]{13}(\\.[0-9]{1,3})?)$|^([0-9]{14}(\\.[0-9]{1,2})?)$|^([0-
 9]{15}(\\.[0-9]{1})?)$|^([0-9]{16})$")
 result : ValidationResult()
 then
 RulesValidationError error = new RulesValidationError();
 error.setRuleName("007");
 error.setErrorType(ErrorType.INCORECT_VALUE);
 result.getErrorsList().add(error);
 end

0 个答案:

没有答案
相关问题