2013-03-29 2 views
1

Просто, где функция gui_upload загружает файлы в Application Server. Как я могу найти их местоположение, или есть какой-нибудь ткод, который я могу найти последними загруженными файлами или искать по имени?Где gui_upload загружает файлы?

Спасибо.

ответ

4

gui_upload функция не загружает файл на сервер приложений. он просто считывает файл из уровня представления во внутреннюю таблицу. Затем вам нужно будет использовать другую функцию для записи этой внутренней таблицы в файл на сервере приложений.

Надеюсь, что это поможет.

0

У меня нет пакета ABAP, но я верю, что вы ищете команду OPEN DATASET или что-то в этом роде. Это обрабатывает чтение и запись файлов на сервере приложений. Файлы, которые обрабатываются через OPEN DATASET, можно найти с транзакцией AL11.

1

Я могу подтвердить оба предыдущих ответа. Если вы хотите загрузить файл text/csv, например, на сервер приложений, вы можете использовать следующий код.

Использование GUI_UPLOAD на самом деле читать предоставленный входной файл с внутренней таблицей:

lv_filename = p_filebp. 
CLEAR lt_data_tab. 

IF NOT lv_filename IS INITIAL. 
    CALL FUNCTION 'GUI_UPLOAD' 
    EXPORTING 
     filename    = lv_filename 
    TABLES 
     data_tab    = lt_data_tab 
    EXCEPTIONS 
     file_open_error   = 1 
     OTHERS     = 17. 

    IF sy-subrc <> 0. 
    EXIT. 
    ENDIF. 
ENDIF. 

Проверьте, есть ли данные в текстовом файле, и были переданы во внутреннюю таблицу правильно. Если это так, загрузите его в файл на сервере приложений. Вы можете указать путь самостоятельно, где вы хотите, чтобы это загружено:

READ TABLE lt_data_tab INDEX 1. 
IF sy-subrc <> 0. 
    WRITE:/'No data in input file.'. 
ELSE. 
    CONCATENATE '/interfaces/' sy-sysid '/CRM_ACTIVITIES/' sy-datum '_INPUT.CSV' INTO p_serinp. 

    OPEN DATASET p_serinp FOR OUTPUT IN TEXT MODE ENCODING DEFAULT. 

    IF sy-subrc NE 0. 
    EXIT. 
    ENDIF. 

    LOOP AT lt_data_tab. 
    TRANSFER lt_data_tab TO p_serinp. 
    CLEAR lt_data_tab. 
    ENDLOOP. 

    CLOSE DATASET p_serinp. 

    IF sy-subrc = 0. 
    CLEAR gd_error_text. 

    CONCATENATE 'Download to file: ' p_serinp ' is finished.' 
    INTO gd_error_text SEPARATED BY space. 

    WRITE:/gd_error_text. 
    ENDIF. 
ENDIF. 

Имейте в виду, что, используя открытое заявление DataSet, вы можете записать файлы в любом месте сети. Это, если хотя бы вы получили требуемые разрешения.

Сделка AL11 может использоваться для изучения существующих папок и файлов в вашей системе SAP.

Смежные вопросы