将本地文档上传至SAP服务器上及从SAP服务器下载到本地

1、将本地文档上传至SAP服务器上

DATA:lv_file TYPE string,lv_ver LIKE gt_out-ver.
DATA: fname TYPE rlgrap-filename,
      ftype TYPE rlgrap-filetype,
      fsize TYPE i.
DATA: data_tab  LIKE rcgrepfile OCCURS 10 WITH HEADER LINE.
    READ TABLE gt_out WITH KEY sel = 'X'.
    IF sy-subrc <> 0.
       MESSAGE '请选择要上传文件的行!'  TYPE 'E'.
       ELSE.
     lv_ver = gt_out-ver+2(1).
     CONDENSE lv_ver NO-GAPS.
     CONCATENATE 'C:\usr\sap\DEV\DVEBMGS00\data\' gt_out-wdbm lv_ver INTO lv_file."先通过AL11选择一个可用上传的SAP地址 ’C:\usr\sap\DEV\DVEBMGS00\data\‘ 这些都是通过AL11选择的后面跟的是你的文件名 OPEN DATASET lv_file FOR OUTPUT IN BINARY MODE ."创建文件 IF sy-subrc = 0. CALL FUNCTION 'UPLOAD' "将文档以二进制的方式放入处理的内表中 EXPORTING codepage = '8400' filename = 'c:/' filetype = 'BIN' filetype_no_change = 'X' IMPORTING filesize = fsize act_filename = fname act_filetype = ftype TABLES data_tab = data_tab EXCEPTIONS conversion_error = 1 invalid_table_width = 2 invalid_type = 3. ENDIF. LOOP AT data_tab. TRANSFER data_tab-orblk TO lv_file. "将内表的数据放入你所建立的文件中 ENDLOOP. CLOSE DATASET lv_file. "关闭文件 IF sy-subrc = 0. MESSAGE '文档上传成功!' TYPE 'S'. ELSE. MESSAGE '文档上传失败!' TYPE 'E'. ENDIF. ENDIF.

2、从SAP服务器下载到本地

DATA:lv_ver LIKE gt_out-ver.
DATA: dset TYPE string,
      subrc LIKE sy-subrc,
      leng TYPE i,
      fsize TYPE i VALUE 0,
      buf TYPE c LENGTH 1000,
      tblob LIKE TABLE OF buf.

    READ TABLE gt_out WITH KEY sel = 'X'.
    IF sy-subrc <> 0.
       MESSAGE '请选择要上传文件的行!'  TYPE 'E'.
       ELSE.
     lv_ver = gt_out-ver+2(1).
     CONDENSE lv_ver NO-GAPS.
     CONCATENATE 'C:\usr\sap\DEV\DVEBMGS00\data\' gt_out-wdbm lv_ver INTO dset. OPEN DATASET dset FOR INPUT IN BINARY MODE."读取上传去的文档 IF sy-subrc <> 0. MESSAGE 'Error: open dataset.' TYPE 'E'. ENDIF. WHILE subrc = 0. leng = 0. READ DATASET dset INTO buf ACTUAL LENGTH leng. subrc = sy-subrc. CHECK leng > 0. fsize = fsize + leng. APPEND buf TO tblob. ENDWHILE. CLOSE DATASET dset. DATA l_name TYPE string. DATA:l_filename TYPE string, l_path TYPE string. CALL FUNCTION 'GUI_FILE_SAVE_DIALOG' EXPORTING window_title = '选择路径' default_extension = 'XLS' IMPORTING filename = l_filename path = l_path . CONCATENATE l_path '\' l_filename INTO l_name. CALL FUNCTION 'GUI_DOWNLOAD' EXPORTING bin_filesize = fsize filename = l_name filetype = 'BIN' TABLES data_tab = tblob EXCEPTIONS OTHERS = 9. IF sy-subrc = 0. MESSAGE '下载成功!' TYPE 'S'. ELSE. MESSAGE '下载失败!' TYPE 'E'. ENDIF. ENDIF.

你可能感兴趣的:(服务器,SAP,文档)