2013-03-29 100 views
1

簡單地說,gui_upload函數在哪裏上傳Application Server中的文件。我怎樣才能找到他們的位置,或者是否有任何我可以找到上傳文件或按名稱搜索的tcode?gui_upload在哪裏上傳文件?

謝謝。

回答

4

gui_upload函數不會將文件上傳到應用程序服務器。它只是從表示層讀取一個文件到一個內部表中。然後您需要使用其他一些函數將此內部表寫入應用程序服務器上的文件。

希望這會有所幫助。

0

我手邊沒有ABAP堆棧,但我相信你要找的是命令OPEN DATASET,或者其他的東西。這處理讀取和寫入應用程序服務器上的文件。通過OPEN DATASET處理的文件可以在事務AL11中找到。

1

我可以確認以前的答案。 如果您希望將文本/ 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. 

請記住,使用打開的數據集的語句,你可以隨時隨地在網絡上寫文件。如果至少您獲得了所需的授權。

事務AL11可用於瀏覽SAP系統上的現有文件夾和文件。

相關問題