如何从 nlapiSearchRecord 更新 netsuite 中的 custbody 值

问题描述 投票:0回答:1

我正在尝试更新账单中的保管人字段。该脚本是一个 webhook,它在支付成功时接收信息,因此当通过 webhook 发送 invoice_id 时,系统会搜索发票信息。那时我需要更新一个字段以将其设置为“付费”。我的代码如下;

var netsuiteInformation = nlapiSearchRecord('vendorbill', null, filters, columns);

markInvoiceAsPaid(netsuiteInformation, foo)

function markInvoiceAsPaid(infoDocNetsuite, data) {
    var status = infoDocNetsuite[0].getValue('custbody_payment_status');
    infoDocNetsuite[0].nlapiSetFieldValue('custbody_payment_status', 3);
    infoDocNetsuite[0].nlapiSetFieldValue('custbody_reject_reason', data.reasonDescription);
}

搜索执行没有问题,但是当我尝试使用

nlapiSetFieldValue
setFieldValue
进行更新时,我从 netsuite 中收到这样的错误:

TypeError: Cannot find function nlapiSetFieldValue in object nlobjSearchResult. (cancelPaymentWebhook.js$4053079#30)

所以我不知道如何进行更新。你知道怎么做吗?

谢谢!

javascript netsuite suitescript
1个回答
0
投票

nlapiSetFieldValue 不是搜索结果对象的成员。如果这是客户端脚本或用户事件,您可以直接调用该函数,否则您将需要使用

nlapiLoadRecord(type, id)
加载记录并使用
recordObj.setFieldValue(fieldId, value)

更新它
var netsuiteInformation = nlapiSearchRecord('vendorbill', null, filters, columns);

markInvoiceAsPaid(netsuiteInformation, foo)

function markInvoiceAsPaid(infoDocNetsuite, data) {
    var status = infoDocNetsuite[0].getValue('custbody_payment_status');
    nlapiSetFieldValue('custbody_payment_status', 3);
    nlapiSetFieldValue('custbody_reject_reason', data.reasonDescription);
}
© www.soinside.com 2019 - 2024. All rights reserved.