Отправка таблицы Excel в фоновом режиме на почту

Иногда возникает необходимость формировать файлы с результатами работы программы и отправлять их пользователям. Для этих целей можно воспользоваться стандартными средствами и отправлять на почту запрос в спул (https://blogs.sap.com/2012/12/11/send-spool-list-of-background-job-to-sap-inbox/), но данный способ прикрепляет результат в виде HTML/TXT или PDF, что не всегда удобно.

В связи с этим формулируется следующая задача — формировать файл Excel и отправлять его на почту.

В SAP имеется несколько способов работы с файлами Excel (https://wiki.scn.sap.com/wiki/display/ABAP/Excel+with+SAP+-+An+overview), но, к сожалению, большинство из них не работают в фоновом режиме.

Для разовой работы и минимизации зависимостей решил воспользоваться стандартными средствами, которые уже имеются в системе.

Прежде всего создаем внутреннюю таблицу с данными отчета.

Теперь можно преобразовать её в файл Excel

Для теста сохраним сформированный файл и откроем его в Excel

Теперь можно и отправить сформированный файл

К сожалению так и не нашел возможности выделять отдельные строки или поля таблицы цветом. Везде пишут, что для этого надо пользоваться библиотекой abap2xls. Однако если в ALV таблица включить суммирование по столбцу и выгрузить её в виде таблицы Excel, то строка с суммой выделена желтым цветом. При этом также используется метод cl_salv_bs_tt_util=>if_salv_bs_tt_util~transform, так что такая возможность есть.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *