1

我有一个带有超过 18,000 个“结果”的大型 nlobjSearchResultSet 对象。

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

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

作为此迁移的一部分,是否有一个简单的命令来仅选择大对象中的 nlapiSearchResult 对象,这些对象与某些条件(即客户 ID)匹配。

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

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

提前致谢。

4

2 回答 2

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);
于 2016-01-15T16:38:28.437 回答
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会给你所有的结果。

于 2016-01-15T07:55:36.660 回答