0

我对 Netsuite 很陌生。我正在尝试在 Netsuite 中进行加密。当我在提交之前添加 UserEvent 脚本时它可以工作。但我想在 beforeLoad 函数中解密加密文本。我也能够读取加密文本并成功解密。但是在对象中重新设置它失败了,我在 Netsuite UI 中看到了解密的文本。任何指示或帮助表示赞赏。

谢谢

// 这个函数有效

函数之前提交(类型){

    var email = nlapiGetFieldValue('email');
    var newEmail = 'LifeSpan.' + email;
    nlapiSetFieldValue('email', newEmail );
    nlapiLogExecution('DEBUG', 'Modified before Submit ' + email + ' to ' + newEmail);

}

// 这打印“在提交 customercare@abc.com 到 LifeSpan.customercare@abc.com 之前修改”

// 这个函数不起作用;即使在日志中正确打印了正确的值

函数之前加载(类型,形式,请求){

    var email = nlapiGetFieldValue('email');
    if(email.indexOf('SaaSSpan.') != -1) {
      var newEmail = email.substring(9);
      nlapiSetFieldValue('email', newEmail );
    nlapiLogExecution('DEBUG', 'Modified before load ' + email + ' to ' + newEmail);
    }

}

// 这打印“Modified before load LifeSpan.customercare@abc.com to customercare@abc.com”...但我仍然在用户界面中看到 LifeSpan.customercare@abc.com

4

1 回答 1

0

我建议您在客户端脚本(PageInit 和 SaveRecord 事件)中尝试此代码。

对我来说很好。

我的代码:

function PageInit(type) {
try {
    if (type == 'edit') {
        var email = nlapiGetFieldValue('email');
        if (email != null && email.indexOf('LifeSpan.') != -1) {
            var newEmail = email.substring(9);
            nlapiSetFieldValue('email', newEmail);
            nlapiLogExecution('DEBUG', 'Modified before load ' + email + ' to ' + newEmail);
        }
    }
}
catch (err) {
    nlapiLogExecution('ERROR', 'PageInit', err);
}}

function SaveRecord() {
try {
    var email = nlapiGetFieldValue('email');
    var newEmail = 'LifeSpan.' + email;
    nlapiSetFieldValue('email', newEmail);
    nlapiLogExecution('DEBUG', 'Modified before Submit ' + email + ' to ' + newEmail);
}
catch (err) {
    nlapiLogExecution('ERROR', 'SaveRecord', err);
}
return true;}

nlapiSetFieldValue 可以在用户事件 beforeLoad 脚本中用于初始化新记录或非存储字段的字段。

于 2013-09-03T13:10:55.050 回答