你好我这是我第一次参与drools项目。我创建了一些工作正常的简单规则,但是使用accumulate函数的更复杂的规则却遇到了麻烦。下面我有这个规则。
rule "1"
no-loop
when
$msg : Declaration(header.totalGrossMassMeasure != null,
header.totalGrossMassMeasure.compareTo(BigDecimal.ZERO) > 0 )
result : ValidationResult()
$netValue : Number() from accumulate (
GoodsItemsType($net : netNetWeightMeasure),
sum($net.doubleValue())
)
eval($netValue.doubleValue() > ($msg.getHeader().getTotalGrossMassMeasure().doubleValue() + (0.45 * $msg.getGoodsItems().size())))
then
RulesValidationError error = new RulesValidationError();
error.setErrorType(ErrorType.INCORECT_VALUE);
result.getErrorsList().add(error);
end
概念是将goodsItemType对象列表中的净值相加,并将总和与总总质量度量乘以一个缓冲区数量进行比较。问题是我过去几天一直试图用任何东西解雇规则。有人可以帮助我吗?