在Netsuite中验证内联编辑

时间:2015-11-28 22:21:57

标签: netsuite

我需要验证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的预计总计。

2 个答案:

答案 0 :(得分:3)

我的错误,我误解了java -version java version "1.7.0_80" 处理xedit的方式。在xedit中调用nlapiGetNewRecord()仅返回已编辑的字段,而不是整个记录。因此,if语句在xedit模式下永远不会成立,因为数量或状态都是null(用户不太可能同时编辑两者,并且验证依赖于这两个字段的值)。

如果新记录中没有字段值,我编辑了代码以查找字段值。现在一切都按预期工作了!

感谢大家的帮助!

作为参考,修正后的代码如下。

nlapiGetNewRecord

答案 1 :(得分:0)

在您的用户事件中,您要检查type参数的值。对于内联编辑,类型的值为' xedit'。