Netsuite Suitescript API - поиск записей транзакций возвращает дубликаты

Я пытаюсь выполнить базовый поисковый запрос записей «транзакции» (я также попытался сделать это с помощью «продавца» с аналогичными результатами). Запрос не имеет фильтров и запрашивает только внутренний идентификатор в качестве столбца поиска, но по какой-то причине результаты включают одну и ту же запись несколько раз ... иногда МНОГО раз.

[
  {
    "internalid": "1984"
  },
  {
    "internalid": "1984"
  },
  {
    "internalid": "1984"
  },
  {
    "internalid": "1998"
  },
  {
    "internalid": "1998"
  },
  {
    "internalid": "1998"
  },
  {
    "internalid": "2490"
  },
  {
    "internalid": "2490"
  },
  {
    "internalid": "2573"
  },
  {
    "internalid": "2573"
  },
  {
    "internalid": "2491"
  },

Почему это могло произойти? Есть ли способ заставить запрос возвращать каждую запись только один раз?

РЕДАКТИРОВАТЬ: добавление кода по запросу

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

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

return searchResults;   

person Chris Barcroft    schedule 30.10.2015    source источник
comment
не могли бы вы опубликовать, как вы строите и выполняете поиск?   -  person tt_emrah    schedule 30.10.2015


Ответы (1)


Пожалуйста, добавьте фильтр,

mainline - ИСТИНА

Если вы используете сохраненный поиск по коду, добавьте дополнительный фильтр

as new nlobjSearchFilter('mainline', null, 'is', 'T') or ['mainline', 'is', 'T']

поскольку результат поиска запрашивает один и тот же внутренний идентификатор несколько раз для всех позиций

РЕДАКТИРОВАТЬ: для предоставленного примера кода

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

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

return searchResults; 
person prasun    schedule 30.10.2015
comment
Объяснение почему этого происходит: при поиске транзакции NetSuite возвращает один результат для самого тела транзакции и дополнительно один результат для каждой позиции этой транзакции. mainline - это фильтр, который помогает вам контролировать это. Если вы отфильтруете mainline как 'T', NetSuite предоставит вам результат только для тела транзакции. Если вы отфильтруете mainline как 'F', то NetSuite предоставит вам результаты только для строк транзакции, а не для тела. Имейте в виду, что некоторые столбцы транзакций будут недоступны в ваших результатах, если вы установите mainline на 'T' - person erictgrubaugh; 02.11.2015
comment
просто чтобы добавить, есть дополнительные результаты для доставки, когда 'mainline is F' - person prasun; 02.11.2015