我有一个超过18,000个“结果”的大型nlobjSearchResultSet对象。
每个结果都是客户的定价记录。单个客户可能有多条记录。
由于18000多条记录在管理点进行大规模更改的成本很高,我正在迁移到父(客户)记录和子记录(项目),因此我可以将项目定价更改为子列表。
作为此迁移的一部分,是否有一个简单的命令来仅选择大对象中的nlapiSearchResult对象,这些对象符合某些条件(即客户ID)。
这样我就可以只使用一次搜索来迁移数据,然后只进行新记录格式的后续创建/保存。
以相关的方式,是否有一个简单的函数调用来返回给定的netsuite记录中包含的记录数?对于%进度上下文。
提前致谢。
答案 0 :(得分:2)
通过使用添加的聚合列运行搜索,您实际上可以获得行数。对于没有任何聚合列的已保存搜索执行此操作的一般方法如下所示:
var res = nlapiSearchRecord('salesorder', 'customsearch29', null,
[new nlobjSearchColumn('formulanumeric', null, 'sum').setFormula('1')]);
var rowCount = res[0].getValue('formulanumeric', null, 'sum');
console.log(rowCount);
答案 1 :(得分:0)
要获取记录总数,唯一的方法是进行已保存的搜索,进行此类搜索的理想方法是使用nlobjSearch
以下是获取无限搜索结果和记录数量的示例代码
var search = nlapiLoadSearch(null, SAVED_SEARCH_ID).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;
}
res.length
或i
将为您提供总记录数,res
将为您提供所有结果。