Скачать PDF из API-запроса в картотеку в SuiteScript - PullRequest
0 голосов
/ 18 июня 2019

Кто-нибудь знает, возможно ли отправить запрос в 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, например, и загрузить файл очень хорошо, так что я знаю, что данные верны.Что-то с кодировкой кажется неправильным и не позволяет мне правильно сохранить файл.

...