2013-03-29 69 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系统上的现有文件夹和文件。

相关问题