Дополнительное вложение в PDF по электронной почте (ABAP) - PullRequest
0 голосов
/ 09 января 2019

В настоящее время я пытаюсь отправить результаты выбора по электронной почте, точнее в виде вложения. Моя цель - создать XML-файл (который работает до сих пор) и PDF, оба из внутренней таблицы, в которой хранятся выбранные данные. Внутренняя таблица объявлена ​​с пользовательским типом. Мой текущий код для отправки электронной почты с вложением XML выглядит следующим образом:

lr_send_request = cl_bcs=>create_persistent( ).

lr_document = cl_document_bcs=>create_document( i_type    = 'HTM'
                                                i_text    = lt_text
                                                i_subject = lv_subject ).

* ----- converting data of internal table so it is suitable for XML
    ...
* -----

lr_document->add_attachment( i_attachment_type     = 'BIN'
                             i_attachment_subject  = 'output.xml'
                             i_attachment_size     = xml_size
                             i_attachment_language = sy-langu
                             i_att_content_hex     = xml_content ).

lr_send_request->set_document( lr_document ).

В Интернете мне удалось найти только то, как конвертировать spooljob (что бы это ни было: /) в PDF. С такими функциями я могу решить свою проблему, но потом я не могу больше прикреплять XML.

Как я могу преобразовать данные внутренней таблицы в файл PDF, чтобы прикрепить их к электронной почте так же, как я делаю с XML ?

1 Ответ

0 голосов
/ 09 января 2019

Существует несколько способов создания PDF:

  1. Создайте отчет с помощью Smartform и получите вывод в формате PDF. Пример кода
  2. Если ваша система имеет лицензию Adobe Form, создайте форму Adobe.
  3. Используйте zcl_pdf класс для создания собственного файла PDF.
  4. Использование CONVERT_ABAPSPOOLJOB_2_PDF FM для получения катушки принтера в формате PDF (спасибо @Sandra Rossi).

Если ваш PDF простой (не включает сложную таблицу, вертикальный текст, изображения и т. Д.), Используйте третий вариант, в противном случае попробуйте первый или второй.

...