在特定记录上创建搜索时在 Netsuite Suitescript 1.0 中显示 "is not a valid internal id"

Display of "is not a valid internal id" in Netsuite Suitescript 1.0 when creating a Search on a particular record

我使用 Suitescript 1.0 在 Netsuite 中创建了一个搜索,用于使用帐号搜索特定 "Account"。当我保存以下脚本文件时,下面代码的 "filters[0]" 行中显示错误,其中显示 "acctnumber is not a valid internal id."。我是 Netsuite 的新手,想知道为什么会显示错误,以及相同的解决方案。下面是编写的以下代码段,其中发生了错误。

function COGSAcnt() {
    var cOGSAcntNumber = '50001';

    var acntNo;
    var filters = new Array();
    filters[0] = new nlobjSearchFilter('acctnumber', null, 'startswith', cOGSAcntNumber);

    var columns = new Array();
    columns[0] = new nlobjSearchColumn('internalid');

    var acntSearch = nlapiSearchRecord('account', null, filters, columns);
    if (acntSearch != null) {
    for (x=0; x<acntSearch.length; x++) {
        acntNo = ITMSearch[x].getValue('internalid');
    }
    }
    nlapiLogExecution('debug', 'acntNo', acntNo);
    return acntNo;
}

注意:我希望过滤器是 acctnumber(帐号),使用它会想要检索 Netsuite 中帐户的内部 ID。

这是 NS 可能有点令人困惑的地方。如果您查看 NS Record 浏览器 (http://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2016_2/script/record/account.html),请查看过滤器部分。帐号 (acctnumber) 不存在。然而Number(数字)是过滤器。

尝试重写代码以改用数字

function COGSAcnt() {
var cOGSAcntNumber = '50001';

var acntNo = [];
var filters = new nlobjSearchFilter('number', null, 'startswith', cOGSAcntNumber);

var acntSearch = nlapiSearchRecord('account', null, filters, columns);
if (acntSearch != null) {
for (x=0; x<acntSearch.length; x++) {
    acntNo.push(ITMSearch[x].getId();
}
}

return acntNo;
}