В настоящее время я работаю над проектом, в котором я работал с командой из нашей логистической компании для интеграции наших грузовых услуг. В настоящее время рабочий процесс (кстати, это сценарий пользовательских событий) , заключается в том, что информация, необходимая для отгрузки, собирается на пользовательской вкладке во время выполнения элемента. У нас есть Suitelet, который выполняет функцию выбора котировок, поэтому, когда нажата созданная нами кнопка «Получить цитату», мы получаем прайс-лист со тарифами для разных перевозчиков.
Данные не отправляются в их систему, пока не произойдет отправка, и когда это произойдет, мы преобразуем соответствующие данные в коносамент, который является возвращаемым объектом.
В настоящее время у нас есть возвращенный pdf для сохранения в определенной папке в картотеке, но файл не связан напрямую с записью транзакции.
Я пытаюсь использовать поле 'mediaitem', чтобы напрямую прикрепить pdf к записи через вложенную вкладку файлов внутри вкладки связи. Я попытался установить папку с полученными вложениями в качестве места назначения вместо пользовательской 'Грузовой BOL', которую мы создали в картотеке, но это не прикрепляет ее к фактической записи.
Ниже приведен фрагмент нашего кода импорта (я изменил его, чтобы не делиться точным кодом) , который в настоящее время сохраняет PDF-файл 'BOL' в нашу картотеку:
***//above this is the post containing API key and etc***
if (response.code != 200) {
var responseBody = JSON.parse(response.body);
log.error ({
title: 'order #' + sonum + ' shipment import: ' + response.code,
details: responseBody.Message
});
log.error ({
title: 'order #' + sonum + ' shipment import messageBody',
details: JSON.stringify(messageBody)
});
return;
}
//save BOL to Freight BOL folder in File Cabinet
var bolFile = saveBOL(response);
var fileId = bolFile.save();
} catch (e) {
log.error ({
title: 'order #' + sonum + ' error: ' + e.name,
details: e.message
});
log.error ({
title: 'order #' + sonum + ' DLS Import messageBody',
details: messageBody
});
}
}
function saveBOL(response){
var responseBody = JSON.parse(response.body);
var bolFile = file.create({
name: responseBody.FileName,
fileType: file.Type.PDF,
contents: responseBody.FileBytes,
folder: //folderidishere,
isOnline: false
});
var fileId = bolFile.save();
return bolFile;
}
Я изо всех сил пытаюсь найти что-нибудь в документации или SuiteAnswers относительно сохранения файла в качестве вложения в заказ через SuiteScript 2.0. Любые предложения / помощь будет принята с благодарностью!