ABAP 中关于WS_DOWNLOAD 的程序(2)

本文介绍了一个使用SAP ABAP实现文件上传和下载的例子。通过调用WS_DOWNLOAD和WS_UPLOAD函数模块,实现了从数据库表SFLIGHT中读取数据并将其下载为文件,再将该文件上传回另一个相同结构的数据库表的过程。此例程有助于理解如何在ABAP环境中进行文件操作。

REPORT  ZZW_LOCAL_FILE_OPERATION                .

******************************************************

*  Author: Lilo.Zhu

*

*  Date: 05/12/2006

*

*  KeyWord:WS_DOWNLOAD,WS_UPLOAD

*=====================================================

*  Last Modified Date:

*

*  Log

*

******************************************************

TABLES: SFLIGHT.

 

SELECTION-SCREEN BEGIN OF BLOCK B1.

SELECT-OPTIONS: S_CARRID FOR SFLIGHT-CARRID.

SELECTION-SCREEN END OF BLOCK B1.

 

 

PARAMETERS:  FNAME TYPE RLGRAP-FILENAME DEFAULT 'C:/TEMP/MYFILE.DAT',

             FTYPE TYPE RLGRAP-FILETYPE  DEFAULT 'DAT'.

 

DATA:        SFLIGHT_TAB_1 LIKE  TABLE   OF   SFLIGHT,

             SFLIGHT_TAB_2 LIKE  TABLE   OF   SFLIGHT,

             TAB_LINE  LIKE LINE OF  SFLIGHT_TAB_1,

             LENG  TYPE  I,

             LINS  TYPE  I,

             SIZE  TYPE  I.

 

 

SELECT * FROM

         SFLIGHT  INTO TABLE SFLIGHT_TAB_1

         WHERE CARRID = S_CARRID.

 

DESCRIBE FIELD  TAB_LINE(8)  LENGTH  LENG IN CHARACTER MODE.

DESCRIBE TABLE  SFLIGHT_TAB_1  LINES  LINS.

SIZE = LENG * LINS.

*SIZE = 10 * LINS.

 

 

CALL FUNCTION 'WS_DOWNLOAD'

      EXPORTING

        FILENAME  =  FNAME

        FILETYPE  =  FTYPE

        BIN_FILESIZE  =  SIZE

 

     TABLES

       DATA_TAB  =  SFLIGHT_TAB_1.

 

 

IF SY-SUBRC  <>  0.

    MESSAGE  E888(SABAPDOCU)  WITH  'SYS-SUBRC =  ' SY-SUBRC.

ENDIF.

 

CALL FUNCTION 'WS_UPLOAD'

      EXPORTING

        FILENAME  =  FNAME

        FILETYPE  =  FTYPE

 

      TABLES

        DATA_TAB  =  SFLiGHT_TAB_2.

 

 

IF SY-SUBRC  <> 0.

    MESSAGE E888(SABAPDOCU) WITH  'SY-SUBRC  =  ' SY-SUBRC.

ENDIF.

 

IF  SFLIGHT_TAB_1  =  SFLIGHT_TAB_2.

    MESSAGE I888(SABAPDOCU) WITH 'OK'.

ENDIF.

 

程序运行效果图:

转载于:https://www.cnblogs.com/sesexxoo/archive/2006/12/07/6190371.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值