Не могу понять как нормально сохранить фаил вложенный в письмо на машину.
Фаил Excel храниться у меня в таблице l_xml_table.
Code:
TYPES: BEGIN OF xml_line,
data(255) TYPE x,
END OF xml_line.
DATA: l_xml_table TYPE TABLE OF xml_line.
В случае отсутствия электронного адреса я сохраняю Таблицу XML(Excel файл) на машину отправителя.
Перед тем как сохранять делаю преобразование из SOLIXTAB в SOLI_TAB
Code:
CALL FUNCTION 'SO_SOLIXTAB_TO_SOLITAB'
EXPORTING
ip_solixtab = l_xml_table
IMPORTING
ep_solitab = object_content.
Потом из преобразованной таблицы собираю все в одну строку и записываю в таблицу lt_data.
Code:
CLEAR l_buffer.
LOOP AT object_content ASSIGNING <obj>.
IF l_buffer IS INITIAL.
l_buffer = <obj>-line.
ELSE.
CONCATENATE l_buffer <obj>-line INTO l_buffer.
ENDIF.
ENDLOOP.
APPEND l_buffer TO lt_data.
Сохраняю файл с помощью данного метода
Code:
CONCATENATE file 'zayv_' nast-objky '.xls' INTO file.
cl_gui_frontend_services=>gui_download(
EXPORTING
filename = file
filetype = 'ASC'
CHANGING
data_tab = lt_data
EXCEPTIONS
file_write_error = 1
no_batch = 2
gui_refuse_filetransfer = 3
invalid_type = 4
no_authority = 5
unknown_error = 6
header_not_allowed = 7
separator_not_allowed = 8
filesize_not_allowed = 9
header_too_long = 10
dp_error_create = 11
dp_error_send = 12
dp_error_write = 13
unknown_dp_error = 14
access_denied = 15
dp_out_of_memory = 16
disk_full = 17
dp_timeout = 18
file_not_found = 19
dataprovider_exception = 20
control_flush_error = 21
not_supported_by_gui = 22
error_no_gui = 23
OTHERS = 24
).
Файл создается и сохраняется в папку, но открывать его Excel не хочет. Пишет, что ошибка в тегах.
Если же не собирать все в одну строку и передать в метод cl_gui_frontend_services=>gui_download таблицу object_content файл сохранится и запускаться тоже не будет. Но открыв его блокнотом и собрав все записи в одну строку я смог запустить его нормально.
Не могу понять почему когда я все соединяю через ABAP в одну строку Excel при открытии ругается на ошибку в тегах, но в тоже время не ругается, когда я соединяю все вручную через блокнот.
Может кто-то знает в чем может быть причина?
Или может есть возможность как-то по другому сохранить этот файл на машину отправителя?