我是NetSuite的新手,所以我确定这是愚蠢的我做错了,但我正在尝试在脚本中查找帐户的最新支票号码。所以我在CustomerPayment表上为checkNum列设置搜索。我这样做是这样的:
var acct = nlapiGetFieldValue('account');
var paymentFilters = new Array();
paymentFilters[0] = new nlobjSearchFilter('account', null, 'anyof', acct);
var paymentColumns = new Array();
paymentColumns[0] = new nlobjSearchColumn('checknum');
var paymentSearchResults = nlapiSearchRecord('customerpayment', null, paymentFilters, paymentColumns);
但我得到一个“一个nlobjSearchColumn包含一个无效的列,或者没有正确的语法:checknum”错误。我验证了有一个CustomerPayment表,并且其中还有一个checkNum列。至少记录浏览器似乎暗示了这一点。 (也是我第一次使用它)我还验证了acct包含我期望它的值。
我做了几次其他搜索,使用基本相同的代码,它们似乎按预期工作,所以我不确定我做错了什么。例如,此代码似乎有效:
var filters = new Array();
filters[0] = new nlobjSearchFilter('account', null, 'anyof', acct);
var columns = new Array();
columns[0] = new nlobjSearchColumn('tranid');
var searchResults = nlapiSearchRecord('check', null, filters, columns);
无论如何,任何帮助将不胜感激。谢谢。
答案 0 :(得分:5)
checknum无法搜索。尝试使用这样的otherrefnum:
var acct = nlapiGetFieldValue('account');
var paymentFilters = new Array();
paymentFilters[0] = new nlobjSearchFilter('account', null, 'anyof', acct);
var paymentColumns = new Array();
paymentColumns[0] = new nlobjSearchColumn('otherrefnum');
var paymentSearchResults = nlapiSearchRecord('customerpayment', null, paymentFilters, paymentColumns);
答案 1 :(得分:1)
虽然checknum
是customerpayment
记录中的有效字段,但它不是有效的搜索结果列。
本文档概述了客户付款的所有可编写脚本的字段,而checknum
未列在“搜索列”部分中。
执行搜索时,我看不到支票编号可用。
答案 2 :(得分:-1)
这是一个罕见的错误,因为列名确实是正确的。你可以像这样解决它:
var filters = new Array();
filters[0] = new nlobjSearchFilter('account', null, 'anyof', acct);
var paymentColumns = new Array();
paymentColumns[0] = new nlobjSearchColumn('internalId');
var paymentSearchResults = nlapiSearchRecord('customerpayment', null, filters, paymentColumns);
for (var i = 0; paymentSearchResults != null && i < paymentSearchResults.length; i++) {
var customerpayment = nlapiLoadRecord('customerpayment', paymentSearchResults[i].getValue('internalId'));
var checknum = customerpayment.getFieldValue('checknum');
nlapiLogExecution('DEBUG', 'checknum', checknum);
}