Drools:如何在使用 PackageDescr 生成规则时为变量 "from" 预定义方法赋值?
Drools : how to assign value to variable "from" predefined method when using PackageDescr to generate rule?
如何使用 PackageDescr 在我的规则中生成类似的内容?
$var: Number (doubleValue > 100 ) from myPredefinedFunction()
我尝试了以下方法:
PatternDescr pt = new PatternDescr("Number","$var");
RelationalExprDescr ex = new RelationalExprDescr(">", false, null, new ExprConstraintDescr("myPredefinedFunction()"), new ExprConstraintDescr("100"));
pt.addConstraint(ex);
但这就是我得到的:
$var : Number( myPredefinedFunction() > 100 )
您正在尝试将 myPredefinedFuntion()
设置为约束条件。约束是括号之间流口水声明的一部分,例如。 MyObject( foo == "bar" )
... foo == "bar"
是一个约束条件。
相反,您需要使用 setSource
method. This is the 'from' part of the declaration. This method takes a instance of a PatternSourceDescr
subclass -- likely a FromDescr
为这个特定场景设置源。
(或者,您可能需要 setResource
而不是 setSource
。使用仅供内部使用的 API 的问题在于它们没有记录,并且如有更改,恕不另行通知。我强烈建议不要沿着这条路走下去。)
如何使用 PackageDescr 在我的规则中生成类似的内容?
$var: Number (doubleValue > 100 ) from myPredefinedFunction()
我尝试了以下方法:
PatternDescr pt = new PatternDescr("Number","$var");
RelationalExprDescr ex = new RelationalExprDescr(">", false, null, new ExprConstraintDescr("myPredefinedFunction()"), new ExprConstraintDescr("100"));
pt.addConstraint(ex);
但这就是我得到的:
$var : Number( myPredefinedFunction() > 100 )
您正在尝试将 myPredefinedFuntion()
设置为约束条件。约束是括号之间流口水声明的一部分,例如。 MyObject( foo == "bar" )
... foo == "bar"
是一个约束条件。
相反,您需要使用 setSource
method. This is the 'from' part of the declaration. This method takes a instance of a PatternSourceDescr
subclass -- likely a FromDescr
为这个特定场景设置源。
(或者,您可能需要 setResource
而不是 setSource
。使用仅供内部使用的 API 的问题在于它们没有记录,并且如有更改,恕不另行通知。我强烈建议不要沿着这条路走下去。)