Борьба с сохранением файла ответов в формате PDF и присоединение его непосредственно к выполнению элемента - PullRequest
0 голосов
/ 26 октября 2018

В настоящее время я работаю над проектом, в котором я работал с командой из нашей логистической компании для интеграции наших грузовых услуг. В настоящее время рабочий процесс (кстати, это сценарий пользовательских событий) , заключается в том, что информация, необходимая для отгрузки, собирается на пользовательской вкладке во время выполнения элемента. У нас есть 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. Любые предложения / помощь будет принята с благодарностью!

1 Ответ

0 голосов
/ 27 октября 2018

Используйте метод присоединения модуля N / record.

    var id = record.attach({
    record: {
        type: 'file',
        id: bolFile
    },
    to: {
        type: 'itemfulfillment',
        id: <internalid of item fulfillment>
    }
...