Текущее время: Чт, мар 28 2024, 20:21

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: Yandex [Bot]


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

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