Передача параметров сохраненного поискового фильтра NetSuite через GET-запрос RESTlet API.Javascript

Форум по Javascript
Ответить
Anonymous
 Передача параметров сохраненного поискового фильтра NetSuite через GET-запрос RESTlet API.

Сообщение Anonymous »

Я создаю RESTlet NetSuite, который может принимать идентификатор сохраненного поиска NetSuite в запросе GET и возвращать данные для этого сохраненного поиска. Я отправляю запрос GET из пользовательского сценария R, который я также создал.
Мне интересно, можно ли изменить код RESTlet так, чтобы он не только принимал идентификатор сохраненного поиска NetSuite, но и дополнительные параметры фильтра для изменения поиска перед возвратом данных. И, если вышеизложенное возможно, как должны выглядеть эти параметры фильтра после кодирования для отправки в запросе GET.
Мой код рестлета работает, но только для сохраненных поисков с небольшим количеством записей; NetSuite аннулирует запрос, если количество запрошенных записей слишком велико. Вот мой текущий код RESTlet:
/**
* @NApiVersion 2.1
* @NScriptType Restlet
*/
define(['N/search', 'N/log'], (search, log) => {
function doGet(request) {
const savedSearchId = request.id;
const offset = parseInt(request.offset) || 0;
const limit = parseInt(request.limit) || 1000;
const end = offset + limit;
const results = [];

try {
if (!savedSearchId) {
return JSON.stringify({ error: "Missing savedSearchId." });
}

log.debug("Request received", { id: savedSearchId, offset, limit });

const ss = search.load({ id: savedSearchId });
const columns = ss.columns;
const columnLabels = columns.map((col, i) =>
col.label || col.name || col.id || `col_${i}`
);

const searchResults = ss.run().getRange({ start: offset, end: end });

if (!searchResults || searchResults.length === 0) {
log.debug("No results in this range", { offset, limit });
return JSON.stringify([]);
}

for (let r = 0; r < searchResults.length; r++) {
const result = searchResults[r];
const row = {};

for (let c = 0; c < columns.length; c++) {
const label = columnLabels[c];
const col = columns[c];
try {
row[label + "_id"] = result.getValue(col);
row[label + "_text"] = result.getText(col);
} catch (e) {
row[label + "_id"] = null;
row[label + "_text"] = null;
}
}

results.push(row);
}

log.audit("Completed RESTlet", `Returned ${results.length} rows`);
return JSON.stringify(results);

} catch (e) {
log.error("RESTlet Error", e.message);
return JSON.stringify({ error: "UNEXPECTED_ERROR", message: e.message });
}
}

return { get: doGet };
});


Подробнее здесь: https://stackoverflow.com/questions/798 ... et-request
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»