Как получить заголовки столбцов сохраненного поиска в NetSuite с помощью набора разговоров в C#.Net?

Я пытаюсь получить информацию о сохраненном поиске, например, о количестве столбцов в сохраненном поиске и их информации. Я сохранил идентификатор поиска, и когда я выполняю поиск с помощью сервиса netsuite по коду, я могу получить данные в объекте recordList, но каждый элемент (строка) в списке имеет много статических полей, которые являются нулевыми и не используются в сохраненном поиске. в этом объекте строки задаются только те поля, которые имеют какое-либо значение.

Есть ли способ получить информацию о заголовках столбцов сохраненного поиска в netsuite через веб-сервисы SuiteTalk в C#.Net?

1 ответ

Прежде всего, я не думаю, что мы можем получить доступ к SavedSearches из Suite Analytics Connect, потому что источником данных для этого является Connect Browser, а не Record Browser.

Сохраненные поиски создаются на основе браузера записей! Если это может добавить некоторую ценность в будущем.

Пожалуйста, обратитесь к одной из проблем, которые у меня возникли здесь: найти таблицы и поля в сохраненном поиске элемента браузера записей

Я пытался использовать Connect, но он не работает.

Да, с использованием библиотеки SuiteTalk и RestletsService API. Он возвращает данные JSON, которые вы можете проанализировать. Убедитесь, что у вас есть рестлет, созданный для выполнения сохраненного поиска на стороне сценариев NetSuite и возврата результатов в формате json.

Это примечание также полезно:

Одновременно может быть возвращено не более 4000 результатов поиска из nlobjSearchResultSet.forEachResult(callback). Измените критерии поиска или измените логику обратного вызова, чтобы возвращалось не более 4000 результатов.

.Net сторона

RestletsService api = AppSettings.BuildRestletsService;
string json = api.CallRestlet({RESTLET_ID_THAT_RUNS_SAVED_SEARCHES}, {DEPLOY #}, {SAVED_SEARCH_ID});
JArray resultsArray = JArray.Parse(json);

Сторона сценария

function get_search_data(datain)
{   
    var results = [];
    var savedsearch = nlapiLoadSearch(null, datain.savedsearchid);
    var resultset = savedsearch.runSearch();
    var searchid = 0;
    do {
        var resultslice = resultset.getResults( searchid, searchid+1000 );
        for (var rs in resultslice) {
            results.push( resultslice[rs] );
            searchid++;
        }
    } while (resultslice.length >= 1000);
    return results;
}
Другие вопросы по тегам