Кто-нибудь знает, возможно ли отправить запрос в API, который возвращает тип контента application/pdf
и сохранить этот PDF в картотеку в NetSuite?
Я пишу это вSuitelet, как показано ниже.Это полностью работоспособно, просто убедитесь, что изменили идентификатор папки.
/**
* @NApiVersion 2.x
* @NScriptType Suitelet
* @NModuleScope SameAccount
* author: Me
* Date: 06/15/2019
* Version: 1.0
*/
define(["N/log", "N/https", "N/file"], function (log, https, file) {
function onRequest(ctx) {
if (ctx.request.method === 'GET') {
// Request the PDF
var pdfResp = https.get({ url: 'https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf' });
log.debug('PDF Response', pdfResp.body);
// output: %PDF-1.4 %äüöß 2 0 obj <> stream x�=�� 1E...
// Save the PDF to File Cabinet
var pdfFileObj = file.create({
name: 'sample.pdf',
fileType: file.Type.PDF,
contents: pdfResp.body,
folder: 107, // <--- change this to your own folder id
});
var createdFileId = pdfFileObj.save();
// Send back the ID
ctx.response.write(createdFileId);
}
}
return { onRequest: onRequest };
});
Это приводит к непредвиденной ошибке suitescript в строке file.create.Я экспериментировал с использованием модуля кодирования, чтобы попытаться преобразовать ответ в базу 64, но лучшее, что можно сделать, это создать пустой PDF-файл.Я могу сделать такой же запрос в Postman, например, и загрузить файл очень хорошо, так что я знаю, что данные верны.Что-то с кодировкой кажется неправильным и не позволяет мне правильно сохранить файл.