Netsuite Suitescript API - 搜索事务记录返回重复项

Chr*_*oft 2 javascript netsuite suitescript

我正在尝试对"交易"记录进行基本搜索查询(我也尝试使用'salesorder'来获得类似的结果).查询没有过滤器,只请求internalid作为搜索列,但由于某种原因,结果多次包含相同的记录...有时多次.

[
  {
    "internalid": "1984"
  },
  {
    "internalid": "1984"
  },
  {
    "internalid": "1984"
  },
  {
    "internalid": "1998"
  },
  {
    "internalid": "1998"
  },
  {
    "internalid": "1998"
  },
  {
    "internalid": "2490"
  },
  {
    "internalid": "2490"
  },
  {
    "internalid": "2573"
  },
  {
    "internalid": "2573"
  },
  {
    "internalid": "2491"
  },
Run Code Online (Sandbox Code Playgroud)

为什么会这样?有没有办法让查询只返回一次记录?

编辑:按要求添加代码

var filters = [];
var columns = [];
columns.push(new nlobjSearchColumn('internalid'));

var searchResults = nlapiSearchRecord('transaction', null, filters, columns);   

return searchResults;   
Run Code Online (Sandbox Code Playgroud)

pra*_*sun 10

请添加一个过滤器,

主线是真的

如果您通过代码使用已保存的搜索,请添加其他过滤器

作为new nlobjSearchFilter('mainline', null, 'is', 'T')['mainline', 'is', 'T']

因为搜索结果会为所有订单项多次提取相同的内部ID

编辑:对于提供的代码示例

var columns = [];
columns.push(new nlobjSearchColumn('internalid'));

var searchResults = nlapiSearchRecord('transaction', null, ['mainline', 'is', 'T'], columns);   

return searchResults; 
Run Code Online (Sandbox Code Playgroud)

  • 对*为什么*会发生这种情况的解释:在交易搜索中,NetSuite 将为交易正文本身返回一个结果,此外,还会为该交易的*每个行项目*返回一个结果。`mainline` 是帮助你控制这个的过滤器。如果您将“mainline”过滤为“T”,则 NetSuite 只会为您提供事务正文的结果。如果您将“mainline”过滤为“F”,那么 NetSuite 将只为您提供事务行的结果,而不是正文的结果。请注意,如果您将“mainline”设置为“T”,某些交易列将不会出现在您的结果中 (3认同)