简单地说,gui_upload函数在Application Server中上传文件的位置。我怎样才能找到它们的位置,或者是否有任何我可以找到上传文件或按名称搜索的tcode? p>
感谢。
答案 0 :(得分:4)
gui_upload
函数不会将文件上传到应用程序服务器。它只是将表示层中的文件读入内部表。然后,您需要使用其他函数将此内部表写入应用程序服务器上的文件。
希望这有帮助。
答案 1 :(得分: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.
请记住,使用OPEN DATASET语句,您可以在网络上的任何位置写入文件。如果至少你获得了所需的授权。
事务AL11 可用于浏览SAP系统上的现有文件夹和文件。
答案 2 :(得分:0)
我手边没有ABAP堆栈,但我相信你要找的是命令OPEN DATASET,或者其他类似的东西。它处理在应用程序服务器上读取和写入文件。通过OPEN DATASET处理的文件可以通过事务AL11找到。