简单地说,gui_upload函数在Application Server中上传文件的位置。我如何找到它们的位置,或者是否有任何tcode,我可以找到最后上传的文件或按名称搜索?
谢谢。
gui_upload
函数不向应用服务器上传文件。它只是将一个文件从表示层读入一个内部表。然后需要使用其他函数将这个内部表写入应用服务器上的文件。
我可以确认前面的两个答案。如果你想上传一个文本/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.
请记住,使用OPEN DATASET语句,您可以在网络上的任何位置写入文件。至少你得到了必要的授权。
Transaction AL11可用于查看SAP系统上现有的文件夹和文件。
我手头没有ABAP堆栈,但我相信你正在寻找的是命令OPEN DATASET,或者沿着这些行。这将处理应用服务器上的文件读写。通过OPEN DATASET处理的文件可以在事务AL11中找到。