Drools PMML执行引擎是否存在针对复杂部分分数的错误?

时间:2019-04-15 07:25:22

标签: drools pmml

我们尝试使用drools pmml执行某些complexPartialScore公式,发现在单个complexPartialScore公式中使用多个fieldRef时遇到错误。

在complexPartialScore.mvel下,我们在@end {,}遇到错误。运行以下功能时。

<Apply function="+">
    <Apply function="*">
        <Constant>0.03</Constant>
        <FieldRef field="age"/>
    </Apply>
    <FieldRef field="income"/>
</Apply>

@declare{'complexPartialScore'}

rule "PartialScore_RowScore @{context}_@{complexScore.characteristicName}_@{complexScore.attributeIndex}"
when
   $sc: @{name}ScoreCardData( @foreach{ field: complexScore.fldNames }
                             m@{ compactUpperCase(field) } == false, 
                             @{ compactAsJavaId(field) }: v@{ compactUpperCase(field) } != null@end{,})
   $sr: ScoreRow( characteristic == "@{complexScore.characteristicName}", id == "@{complexScore.characteristicName}@{complexScore.attributeIndex}" )
then
   Double score = @{complexScore.complexScore};
   System.out.println("setting a score!");
   modify( $sr ) {
      setValue(score);
   }
end

@end{}
@includeNamed{'complexPartialScore'}]`

我们希望引擎能够执行和计算分数,但是遇到错误。

通过将null @ end {,}更改为null @ end {','},我们发现引擎能够正确执行公式。

检查这是否是真正的错误,或者我们对PMML实际支持的内容是否有误解。

0 个答案:

没有答案