SAP中文件的上传和下载

在SAP中上传文件我知道的有两种方法。
1、可以使用SMW0事务码。
2、写代码实现。
DATA:lt_file TYPE filetable WITH HEADER LINE,
rec TYPE i.
DATA: l_filter TYPE string.

  • 选择上传文件
    CONCATENATE cl_gui_frontend_services=>filetype_excel
    cl_gui_frontend_services=>filetype_all
    INTO l_filter.
    CALL METHOD cl_gui_frontend_services=>file_open_dialog
    EXPORTING
    window_title = ‘Upload Excel’
  • default_extension = ‘.xls’
  • default_filename =
    file_filter = l_filter
    initial_directory = ‘C:’
    CHANGING
    file_table = lt_file[]
    rc = rec
    EXCEPTIONS
    file_open_dialog_failed = 1
    cntl_error = 2
    error_no_gui = 3
    not_supported_by_gui = 4
    OTHERS = 5.
    IF rec >= 1.
    READ TABLE lt_file INDEX 1.
    p_file = lt_file-filename.
    ELSEIF rec = 0.
    CLEAR p_file.
    ELSE.
    MESSAGE e000 WITH text-e01.
    ENDIF.

下载文件就没那么方便要Coding了,代码如下

DATA:lc_table TYPE filetable,
l_rc TYPE i,
l_file LIKE rlgrap-filename.
FIELD-SYMBOLS: TYPE file_table .
DATA: l_string TYPE string.
DATA: obj_name LIKE wwwdatatab-objid.
DATA: objdata LIKE wwwdatatab,
rc LIKE sy-subrc.
CALL METHOD cl_gui_frontend_services=>file_open_dialog
EXPORTING
window_title = g_filetitle
file_filter = g_filefilter
initial_directory = g_initdir
CHANGING
file_table = lc_table
rc = l_rc
EXCEPTIONS
cntl_error = 1
file_open_dialog_failed = 2
error_no_gui = 3.
CALL METHOD cl_gui_cfw=>flush
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2.
READ TABLE lc_table ASSIGNING INDEX 1.
CHECK sy-subrc EQ 0.
l_file = -filename.
CONDENSE l_file.
SELECT SINGLE relid objid
FROM wwwdata
INTO CORRESPONDING FIELDS OF objdata
WHERE srtf2 = 0
AND relid = ‘MI’
AND bjid = p_name.
IF sy-subrc <> 0.
CONCATENATE ‘模板文件:’ p_name ‘不存在,请用TCODE:SMW0进行加载’
INTO l_string.
MESSAGE l_string TYPE ‘E’.
EXIT.
ENDIF.
IF objdata-objid = space .
CONCATENATE ‘模板文件:’ p_name ‘不存在,请用TCODE:SMW0进行加载’
INTO l_string.
MESSAGE l_string TYPE ‘E’.
EXIT.
ENDIF.
CALL FUNCTION ‘DOWNLOAD_WEB_OBJECT’
EXPORTING
key = objdata
destination = l_file
IMPORTING
rc = rc.
IF rc <> 0.
WRITE : / ‘模板文件:’ , obj_name, ‘下载失败,请与开发人员联系’.
ELSE.
MESSAGE ‘该模板下载成功!!’ TYPE ‘S’.
STOP.
ENDIF.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值