2015-10-30 3 views
1

Я пытаюсь выполнить базовый поисковый запрос записей транзакции (я также попытался это с помощью «salesorder» с аналогичными результатами). Запрос не имеет фильтров и запрашивает только internalid в качестве столбца поиска, но по какой-то причине результаты включают одну и ту же запись несколько раз ... иногда МНОГО раз.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" 
    }, 

Для чего это произошло? Есть ли способ получить запрос только для возврата каждой записи один раз?

EDIT: Добавление кода в соответствии с просьбой

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

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

return searchResults; 
+1

мог бы вы опубликовать, как вы строите и выполнить поиск? –

ответ

8

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

магистральный ИСТИНА

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

как new nlobjSearchFilter('mainline', null, 'is', 'T') или ['mainline', 'is', 'T']

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

EDIT: Для поставленного примера кода

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

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

return searchResults; 
+1

Объяснение * почему * это происходит: при поиске транзакций NetSuite вернет один результат для самого объекта транзакции и дополнительно * один результат для каждой позиции * в этой транзакции. 'mainline' - это фильтр, который помогает вам контролировать это. Если вы фильтруете 'mainline' как' 'T'', то NetSuite даст вам результат только для тела транзакции. Если вы фильтруете 'mainline' как' 'F'', то NetSuite даст вам только результаты для строк транзакций, а не для тела. Имейте в виду, что некоторые столбцы транзакций не будут доступны в ваших результатах, если вы установите 'mainline'' 'T'' – erictgrubaugh

+0

, чтобы добавить дополнительные результаты для доставки, а также, когда 'mainline is F' – prasun

Смежные вопросы