在netsuite的sitebuilder denali的ssp页面中,我有javascript搜索,我建立了从发票文档中提取信息和项目文档的2行。搜索工作得很好,但是正在被展平(即,每个内部id只返回一行结果,尽管某些自定义字段有多个值),目前没有过滤器,主线或其他虽然我已尝试将主线设置为false,但没有任何区别。 相关的代码行是:
var searchResults = nlapiSearchRecord('invoice', null, filters, columns);
return _.map(searchResults, function(result) {
return {
internalid: result.getValue('internalid'),
date: result.getValue('trandate'),
DocNum: result.getValue('tranid'),
TotalAmount: result.getValue('total'),
status: result.getValue('entitystatus'),
PONum: result.getValue('otherrefnum'),
WellNum: result.getValue('custbody9'),
WellName: result.getValue('custbody8'),
fivecode: result.getValue('custitem35','item'),
desc: result.getValue('itemid','item'),
Reason: result.getValue('custbody67'),
Tech: result.getValue('custbody38')
};
});
如何让每一行返回显示?
答案 0 :(得分:1)
由于超过1000个结果,NetSuite可能正在跳过订单项。
您可以通过添加搜索列
按internalid
对结果进行排序
columns.push[new nlobjSearchColumn('internalid').setSort()]
这会显示internalid
的多个结果,但搜索结果中可能还有一些发票。
否则,您可以使用以下代码搜索并带来所有结果
var search = nlapiCreateSearch('invoice', filters, columns).runSearch();
var res = [],
currentRes;
var i = 0;
while(i % 1000 === 0){
currentRes = (search.getResults(i, i+1000) || []);
res = res.concat(currentRes);
i = i + currentRes.length;
}
最后,您可以使用代码展平
return _.map(res, function(result) {
return {
internalid: result.getValue('internalid'),
date: result.getValue('trandate'),
DocNum: result.getValue('tranid'),
TotalAmount: result.getValue('total'),
status: result.getValue('entitystatus'),
PONum: result.getValue('otherrefnum'),
WellNum: result.getValue('custbody9'),
WellName: result.getValue('custbody8'),
fivecode: result.getValue('custitem35','item'),
desc: result.getValue('itemid','item'),
Reason: result.getValue('custbody67'),
Tech: result.getValue('custbody38')
};
});