Текущее время: Пт, апр 19 2024, 19:51

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: Выгрузка XLS в фоне
СообщениеДобавлено: Чт, дек 22 2022, 09:35 
Младший специалист
Младший специалист

Зарегистрирован:
Пт, дек 15 2017, 10:50
Сообщения: 91
Добрый день, дорогие эксперты.
Возникла необходимость выгружать файл в формате 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 передаю файл. Проблема в том, что он сохраняется, но по содержанию там ерунда.
В связи с этим есть вопрос: что я делаю не правильно и какие еще есть способы?


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Выгрузка XLS в фоне  Тема решена
СообщениеДобавлено: Чт, дек 22 2022, 09:43 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пн, мар 28 2005, 15:38
Сообщения: 1246
1) XLWB отлично формирует файлы в фоне. Просто не нужно в шаблоне использовать макросы
2) можно использовать стандартные классы CL_XLSX_* ( CL_XLSX_DOCUMENT и др.)
3) можно использовать abap2xlsx
4) можно использовать XTT

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

_________________
Там, где я рос, единственным развлечением было запоминать число «π».(С) Н. Стивенсон


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Выгрузка XLS в фоне
СообщениеДобавлено: Чт, дек 22 2022, 18:22 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Вт, май 17 2005, 13:35
Сообщения: 4842
Откуда: Москва
Пол: Мужской
У коллег недавно возникла такая задача.
Я им нагуглил abap2xlsx, на следующий день у них уже выгрузка работала.
Так что сам abap2xlsx руками не трогал, но похоже порог входа низкий.

_________________
Удача - результат нашего желания (© А. Нортон)


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Выгрузка XLS в фоне
СообщениеДобавлено: Вс, дек 25 2022, 01:23 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3074
Откуда: Москва
MaрьЯ написал(а):
после через OPEN DATASET, TRANSFER и CLOSE DATASET передаю файл. Проблема в том, что он сохраняется, но по содержанию там ерунда.
В связи с этим есть вопрос: что я делаю не правильно и какие еще есть способы?

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

_________________
С уважением,
Удав.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB