gui_upload在哪里上传文件?

时间:2013-03-29 08:27:55

标签: sap abap

简单地说,gui_upload函数在Application Server中上传文件的位置。我怎样才能找到它们的位置,或者是否有任何我可以找到上传文件或按名称搜索的tcode?

感谢。

3 个答案:

答案 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找到。