我有一个供多个数据编织转换使用的通用函数,因此我想将其编写为 MEL 全局函数。
我配置了我的全局函数文件 -
<configuration doc:name="Configuration">
<expression-language>
<import class="org.apache.commons.lang3.StringUtils"></import>
<global-functions file="global_expressions.mvel">
</global-functions>
</expression-language>
</configuration>
然后我有一个 global_expressions.mvel 文件,我想要一个像 -
def filterE1Records(route,type){
if(type == 'COR'){
return (route >= '${min.route}' and route <= '${max.route}');
} else if(type == 'NONCOR'){
return ((route >= '${min.route}' and route <= '${max.route}') == false and route != '${ndsin.route}');
} else if(type == 'NDS'){
return route == '${ndsin.route}';
} else {
return false;
}
}
上面带有属性占位符的函数不起作用,即没有记录通过。但是,如果我对值进行硬编码,那么我会看到记录按预期过滤-
def filterE1Records(route,type){
if(type == 'COR'){
return (route >= 10000 and route <= 15000);
} else if(type == 'NONCOR'){
return ((route >= 10000 and route <= 15000) == false and route != 15001);
} else if(type == 'NDS'){
return route == 15001;
} else {
return false;
}
}
如果我删除属性周围的单引号 ' 以使其编号,则 DW 代码在运行时会失败。
知道如何进行这种比较吗?
谢谢。