В настоящее время я работаю над проектом, в котором я работал с командой нашей логистической компании, чтобы интегрировать наши грузовые перевозки. В настоящее время рабочий процесс (кстати, это сценарий пользовательского события) состоит в том, что информация, необходимая для отгрузки, собирается на специальной вкладке во время выполнения позиции. У нас есть Suitelet, который действует как средство выбора расценок, поэтому при нажатии созданной нами кнопки «Получить расценки» мы получаем прайс-лист со ставками для различных операторов связи. Данные не отправляются в их систему, пока не произойдет отправка, и когда это произойдет, мы преобразуем соответствующие данные в коносамент, который является возвращаемым объектом. В настоящее время у нас есть возвращенный PDF-файл, настроенный для сохранения в определенной папке в картотеке, но файл не связан напрямую с записью транзакции. Я пытаюсь использовать поле «mediaitem», чтобы напрямую прикрепить PDF-файл к записи через вложенную вкладку файлов внутри вкладки связи. Я попытался установить папку с полученными вложениями в качестве пункта назначения вместо настраиваемого «Freight 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. Приветствуются любые предложения / помощь!
Используйте метод подключения модуля N / record.
var id = record.attach({
record: {
type: 'file',
id: bolFile
},
to: {
type: 'itemfulfillment',
id: <internalid of item fulfillment>
}
Спасибо! У меня есть один вопрос по этому поводу: есть ли лучший способ инкапсулировать идентификатор выполнения элемента при его создании? На самом деле я разработчик C#, и это мой первый опыт работы с JavaScript. Мы будем очень благодарны за любые предложения по хорошему учебному материалу или просто советы в целом!