SAPфорум.RU
https://sapboard.ru/forum/

Выгрузка XLS в фоне
https://sapboard.ru/forum/viewtopic.php?f=13&t=100263
Страница 1 из 1

Автор:  MaрьЯ [ Чт, дек 22 2022, 09:35 ]
Заголовок сообщения:  Выгрузка XLS в фоне

Добрый день, дорогие эксперты.
Возникла необходимость выгружать файл в формате XLS в фоне на сервер, в связи с чем возникли трудности: ZWWW* и ZXLWB не работают. CALL TRANSFORMATION хоть и выгружают файлы с разрешением XLS, но, если посмотреть повнимательнее на него, то он XML, EXCEL может его открыть и прекрасно с ним работать, но для выполнения задачи нужен именно XLS.
Пробовала с помощью cl_salv_bs_tt_util=>if_salv_bs_tt_util~transform.

Code:
            CALL METHOD cl_salv_bs_tt_util=>if_salv_bs_tt_util~transform
              EXPORTING
                xml_type      = if_salv_bs_xml=>c_type_xlsx
                xml_version   = lv_version
                r_result_data = lo_result_data
                xml_flavour   = if_salv_bs_c_tt=>c_tt_xml_flavour_export
                gui_type      = if_salv_bs_xml=>c_gui_type_gui
              IMPORTING
                xml           = lv_xstring.

            CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
              EXPORTING
                buffer          = lv_xstring
                append_to_table = ' '
              IMPORTING
                output_length   = lv_size
              TABLES
                binary_tab      = lt_bintab.

            CALL FUNCTION 'NLS_GET_FRONTEND_CP'
              EXPORTING
                langu             = sy-langu
              IMPORTING
                frontend_codepage = cpcodepage
              EXCEPTIONS
                OTHERS            = 99.
            lv_encod = cpcodepage.

            CALL FUNCTION 'SCMS_BINARY_TO_STRING'
              EXPORTING
                input_length = lv_size
*               FIRST_LINE   = 0
*               LAST_LINE    = 0
*               MIMETYPE     = ' '
                encoding     = lv_encod
              IMPORTING
                text_buffer  = lv_xmlstr
*               OUTPUT_LENGTH       =
              TABLES
                binary_tab   = lt_bintab
              EXCEPTIONS
                failed       = 1
                OTHERS       = 2.


И после через OPEN DATASET, TRANSFER и CLOSE DATASET передаю файл. Проблема в том, что он сохраняется, но по содержанию там ерунда.
В связи с этим есть вопрос: что я делаю не правильно и какие еще есть способы?

Автор:  Кодер [ Чт, дек 22 2022, 09:43 ]
Заголовок сообщения:  Re: Выгрузка XLS в фоне  Тема решена

1) XLWB отлично формирует файлы в фоне. Просто не нужно в шаблоне использовать макросы
2) можно использовать стандартные классы CL_XLSX_* ( CL_XLSX_DOCUMENT и др.)
3) можно использовать abap2xlsx
4) можно использовать XTT

Ваш вариант с salv тоже рабочий. Для начала попробуйте определить место, где у вас ошибка. При выгрузке или при формировании. Т.е. я бы сначала попробовал выгрузить сформированный файл локально. Если с ним все будет нормально - значит проблема с выгрузкой на аппсервер, иначе - нужно смотреть, что не так с формированием эксель файла

Автор:  LKU [ Чт, дек 22 2022, 18:22 ]
Заголовок сообщения:  Re: Выгрузка XLS в фоне

У коллег недавно возникла такая задача.
Я им нагуглил abap2xlsx, на следующий день у них уже выгрузка работала.
Так что сам abap2xlsx руками не трогал, но похоже порог входа низкий.

Автор:  Удав [ Вс, дек 25 2022, 01:23 ]
Заголовок сообщения:  Re: Выгрузка XLS в фоне

MaрьЯ написал(а):
после через OPEN DATASET, TRANSFER и CLOSE DATASET передаю файл. Проблема в том, что он сохраняется, но по содержанию там ерунда.
В связи с этим есть вопрос: что я делаю не правильно и какие еще есть способы?

1. Какая кодировка при записи файла на сервер используется?
2. Почему важен именно формат XLS? Excel прекрасно открывает файлы XML.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/