Коллеги, добрый день.
Посмотрел по форуму, нашёл похожую тему:
viewtopic.php?t=21298Но в ней экспорт сделан через OLE, а в моём случае задействованы ФМ 'SAP_CONVERT_TO_CSV_FORMAT' и 'GUI_DOWNLOAD'.
Конечно, можно это дело переписать через OLE, но довольно много придётся переделывать, да и не факт, что не возникнет других подводных камней.
В общем, вот кусочек кода, который в цикле выгружает информацию, но, вероятно, в нём чего то не хватает, т.к. экселевские процессы создаются в линейной зависимости от количества файлов и продолжают висеть:
Code:
..........................................
CALL FUNCTION 'SAP_CONVERT_TO_CSV_FORMAT'
EXPORTING
i_field_seperator = c_field_separator
i_line_header = 'X'
TABLES
i_tab_sap_data = lt_tab
CHANGING
i_tab_converted_data = lt_conv
EXCEPTIONS
conversion_failed = 1.
INSERT INITIAL LINE INTO lt_conv ASSIGNING <cv> INDEX 1.
CONCATENATE 'Штрихкоды;' 'Артикул;' 'Наименование;' 'План;' 'name_ps;' 'num_post;' 'num_poz;'
'ser_n;' 'ed' INTO <cv>.
INSERT INITIAL LINE INTO lt_conv ASSIGNING <cv> INDEX 1.
<cv> = '#{Document.DeclaredItems}'.
INSERT INITIAL LINE INTO lt_conv ASSIGNING <cv> INDEX 1.
CONCATENATE `Приемка № ` l_char ';' <mt>-name_s ';' <mt>-termn ';' <mt>-zadan INTO <cv>.
INSERT INITIAL LINE INTO lt_conv ASSIGNING <cv> INDEX 1.
CONCATENATE `Name;` 'name_skl;' 'num_t;' 'num_z' INTO <cv>.
INSERT INITIAL LINE INTO lt_conv ASSIGNING <cv> INDEX 1.
<cv> = '#{Document}'.
" Выгружаем файл на сервер
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
filename = l_filename
filetype = 'ASC'
TABLES
data_tab = lt_conv
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
OTHERS = 22.
IF sy-subrc <> 0.
MESSAGE e500(fe) WITH 'Ошибка при выгрузке задания' <lt>-zadan INTO g_dummy.
PERFORM msg_add USING probclass_high.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 INTO g_dummy.
PERFORM msg_add USING probclass_high.
ELSE.
MESSAGE s500(fe) WITH 'Задание' <lt>-zadan 'успешно выгружено' INTO g_dummy.
PERFORM msg_add USING probclass_high.
ENDIF.
ENDLOOP.
Прошу людей, кто уже работал с данными ФМ, подсказать, что тут не так.
Заранее благодарю.