Jboss 为Drools决策表中的条件创建别名
随附的是我的决策表,在我的情况下,我多次使用了sv2.SV202\u compmedprocedd.get(“SV202-02”)Jboss 为Drools决策表中的条件创建别名,jboss,drools,drools-guvnor,Jboss,Drools,Drools Guvnor,随附的是我的决策表,在我的情况下,我多次使用了sv2.SV202\u compmedprocedd.get(“SV202-02”)是否有任何方法可以为sv2.SV202\u compmedprocedd.get(“SV202-02”)(例如,S)创建别名,并在我的情况下使用该别名,而不是每次都使用整行 条件 sv2.SV202_compmedprocedd.get(““SV202-02”)。Value>='70010'和&sv2.SV202_compmedprocedd.get(“'SV202-
是否有任何方法可以为sv2.SV202\u compmedprocedd.get(“SV202-02”)(例如,S)创建别名,并在我的情况下使用该别名,而不是每次都使用整行 条件
sv2.SV202_compmedprocedd.get(““SV202-02”)。Value>='70010'和&sv2.SV202_compmedprocedd.get(“'SV202-02”)。Value='76506'和&sv2.SV202_compmedprocedd.get(“'SV202-02”)。Value='77001'和&sv2.SV202_compmedprocedd.get('SV202-02”)。Value='77051'和sv2.SV202_compmedprocedd.get('SV202.get('SV202-71')SV202-02“”)。Value='77261'和&sv2.SV202_compmedprocedd.get('SV202-02')。Value='78000'和&sv2.SV202_compmedprocedd.get('SV202-02')。Value如果这足够频繁,您可以编写和导入静态Java(!)函数:
public boolean isInRanges( Comparable value, Comparable... bounds ){
for( int i = 0; i < bounds.length; i += 2 ){
if( bounds[i].compareTo(value) <= 0 &&
value.compareTo(bounds[i+1]) <= 0 ) return true;
}
return false;
}
公共布尔值IsInRange(可比值、可比…边界){
对于(int i=0;i 如果(bounds[i].compareTo(value)是,则可以使用别名。将条件更改为:
$s:sv2.SV202\u CompMedProcedId.get(“SV202-02”).Value>='70010'&&$s='76506'&&$s='77001'&&$s='77051'&&$s='77071'&&$s='77261'&&&$s='78000'&$s基本问题似乎是您正在将相对简单的数据扩展为代码。我不知道这样的缩写。我尝试将代码缩减一点如下:sv2.SV202_compmedprocedd.get('SV202-02')).Value>='70010'&&&='76506'&&I正在执行以下操作错误:text=变量不能在绑定中使用。text=字段读取器不存在于'predicate'sv2.SV202_CompMedProcedId.get(“SV202-02”)中的声明“$s”的字段读取器.Value>=70010&&^ sv2是您试图匹配的事实上的属性吗?另外,您可以在您现在使用它时发布完整的条件吗?我已经用您需要的详细信息编辑了我的问题。请告诉我如何解决此问题。在这种情况下,从您的条件中删除sv2
,使其成为:$s:SV202\u CompMedProcedId.get(“SV202-02”).Value>='70010'&&&$s='76506'&&$s='77001'&&$s='77051'&&$s='77071'&&$s='77261'&&$s='78000'&&$s