Netsuite 选择搜索结果的部分

Netsuite 选择搜索结果的部分,netsuite,suitescript,Netsuite,Suitescript,我有一个大型的nlobjSearchResultSet对象,其中包含18000多个“结果” 每个结果都是客户的定价记录。单个客户可能有多个记录 由于18000多条记录在管理点进行大规模更改的成本很高,因此我将迁移到父(客户)记录和子记录(项目),以便可以将项目定价作为子列表进行更改 作为此迁移的一部分,是否有一个简单的命令来仅选择大对象中符合特定条件(即客户id)的nlapiSearchResult对象 这将允许我仅通过一次搜索迁移数据,然后仅在后续创建/保存新记录格式 以相关的方式,是否有一个

我有一个大型的nlobjSearchResultSet对象,其中包含18000多个“结果”

每个结果都是客户的定价记录。单个客户可能有多个记录

由于18000多条记录在管理点进行大规模更改的成本很高,因此我将迁移到父(客户)记录和子记录(项目),以便可以将项目定价作为子列表进行更改

作为此迁移的一部分,是否有一个简单的命令来仅选择大对象中符合特定条件(即客户id)的nlapiSearchResult对象

这将允许我仅通过一次搜索迁移数据,然后仅在后续创建/保存新记录格式

以相关的方式,是否有一个简单的函数调用来返回给定netsuite记录中包含的记录数?对于%进度上下文


提前感谢。

要获取记录总数,唯一的方法是执行保存的搜索,执行此类搜索的理想方法是使用
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
将为您提供所有结果。

通过使用添加的聚合列运行搜索,您实际上可以获得行数。对于没有任何聚合列的已保存搜索,可以使用以下通用方法执行此操作:

var res = nlapiSearchRecord('salesorder', 'customsearch29', null, 
    [new nlobjSearchColumn('formulanumeric', null, 'sum').setFormula('1')]);
var rowCount = res[0].getValue('formulanumeric', null, 'sum');
console.log(rowCount);

理想情况下,我希望在没有循环的情况下检索记录的数量。但是不用担心,那必须要做,只是想可能有一个更简单的方法,好吧,那是不可能的,这是我可以想到的,我的问题的第一部分有没有一个简单的方法?一旦获取了结果集,你不能添加条件,你必须自己编辑保存的搜索结果集,如果保存的搜索不支持您要查找的条件,则无法执行此操作确定。可能只需要通过一个循环、一个数组和一点推动来过滤。谢谢