Javascript Pentaho 不执行逐行操作?

Javascript in Pentaho doesn't perform row by row operation?

我有以下数据:

我用这个javascript:

var primary_phone ;
if (inter1.length == 10 && inter2.length == 10 && inter3.length == 0) {
    primary_phone = inter1;
}
else if (inter1.length == 10 && inter2.length == 10 && inter3.length == 10) {
    primary_phone = inter1;
}
else if (inter1.length != 10 && inter2.length == 10 && inter3.length == 0) {
    primary_phone = inter2;
}
else if (inter1.length != 10 && inter2.length != 10 && inter3.length != 10) {
    primary_phone = "+000000000000";
}
else if (inter1.length == 10 && inter2.length == 0 && inter3.length == 0) {
    primary_phone = inter1;
}

我得到的是:

而不是:

你有想法吗?

简化版:

var primary_phone;

if ( inter1.length == 10 && (inter3.length == 0 || inter3.length == 10) {
    primary_phone = inter1;
} else if ( inter2.length == 10 && inter3.length == 0 ) {
    primary_phone = inter2;
} else if ( inter3.length != 10 ) {
    primary_phone = "+000000000000";
}
if ( primary_phone != undefined ) {
//primary_phone was assigned a value
}

Javascript 不是每行初始化的,它(以及您分配的变量)在转换运行时持续存在。事实上,您可以为开始、每行和结束脚本设置单独的选项卡。

要使其正常工作,您需要在脚本开头或 else 子句中设置 reset primary_phone:

else { 
    primary_phone = null; 
}