整体逻辑:由于业务需要,我们通常会制作一些Excel或者其他特定格式的文档模板保存到SAP服务器中,然后再在程序界面提供给用户一个按钮进行下载。
主要步骤:
1.制作符合业务需要的模板;
2.使用事物代码SMW0将模板文件传输到SAP服务器;
3.在ABAP程序中调用文件编码(object id)实现下载。
SMW0上传文件的步骤:
SMW0 –> 二进制 –> 回车 –> 输入包(package,例如ZMM01) –>点击闹钟执行 –> 创建,输入object代码和描述(例如:ZFI01,会计凭证导入模板) –> 选择要导入的文件并导入到SAP服务器.
ABAP程序下载文件的DEMO:
SMW0导入的对象都存储在表WWWDATA中,ABAP下载文件的逻辑就是从WWWDATA表获取要下载的文件的信息并执行下载。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
FORM frm_download_excel . DATA: ls_name LIKE wwwdatatab, lt_mime LIKE w3mime OCCURS 10. CONSTANTS: c_title TYPE string VALUE '保存模版', c_extension TYPE string VALUE 'XLS'. DATA: lv_filename TYPE string VALUE 'XXXX导入模板', lv_path TYPE string, lv_fullpath TYPE string. CLEAR:ls_name,lt_mime. ls_name-relid = 'MI'. ls_name-objid = 'ZMI04'. CALL FUNCTION 'WWWDATA_IMPORT' EXPORTING key = ls_name TABLES mime = lt_mime. CALL METHOD cl_gui_frontend_services=>file_save_dialog EXPORTING window_title = c_title default_extension = c_extension default_file_name = lv_filename CHANGING filename = lv_filename path = lv_path fullpath = lv_fullpath EXCEPTIONS cntl_error = 1 error_no_gui = 2 not_supported_by_gui = 3 OTHERS = 4. IF lv_fullpath IS INITIAL. MESSAGE text-003 TYPE 'S'. ELSE. CALL FUNCTION 'GUI_DOWNLOAD' EXPORTING filename = lv_fullpath filetype = 'BIN' TABLES data_tab = lt_mime. ENDIF. ENDFORM. |
本文作者: GavinDong
版权属于: GavinDong博客
文章链接: https://gavindong.com/2507.html
如果使用过程中遇到问题,可 **点击此处** 交流沟通。
版权所有,转载时必须以链接形式注明作者和原始出处及本声明。