Jboss 为Drools决策表中的条件创建别名

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”)

是否有任何方法可以为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