我需要验证NetSuite中的内联编辑。
我已经有一个客户端脚本,在正常编辑记录时效果很好。
我尝试添加一个用于事件保存功能的用户事件脚本来验证记录,但是看起来这会被内联编辑忽略。
以前有人遇到过这个吗?
您可以提供的任何见解都会有所帮助。谢谢!
编辑:
UE脚本中的相关代码:
function beforeSubmit(type){
if (type == "create" || type == "edit" || type == "xedit") {
var status = nlapiGetContext().getSetting("SCRIPT", "...");
var amount = Number(nlapiGetContext().getSetting("SCRIPT", "..."));
var nr = nlapiGetNewRecord();
var entitystatus = nr.getFieldValue("entitystatus");
var projectedtotal = Number(nr.getFieldValue("projectedtotal"));
if (entitystatus == status && projectedtotal >= amount) {
var statusText = nr.getFieldText("entitystatus");
var message = "ERROR...";
throw nlapiCreateError("...", message, true);
}
}
}
这适用于机会记录。
正在验证的字段是ID为projectedtotal
的预计总计。
答案 0 :(得分:3)
我的错误,我误解了java -version
java version "1.7.0_80"
处理xedit
的方式。在xedit中调用nlapiGetNewRecord()
仅返回已编辑的字段,而不是整个记录。因此,if语句在xedit模式下永远不会成立,因为数量或状态都是null(用户不太可能同时编辑两者,并且验证依赖于这两个字段的值)。
如果新记录中没有字段值,我编辑了代码以查找字段值。现在一切都按预期工作了!
感谢大家的帮助!
作为参考,修正后的代码如下。
nlapiGetNewRecord
答案 1 :(得分:0)
在您的用户事件中,您要检查type参数的值。对于内联编辑,类型的值为' xedit'。