sap 读取服务器文件,ABAP写数据到SAP服务器文件并读取(示例代码)

REPORTydownvbak.TABLES:vbak,vbap.DATA:BEGIN OFwa_itab ,

vbelnLIKE vbak-vbeln,

vkorgLIKE vbak-vkorg,

erdatLIKE vbak-erdat,

kunnrLIKE vbak-kunnr,

posnrLIKE vbap-posnr,

matnrLIKE vbap-matnr,

kwmengLIKE vbap-kwmeng,END OFwa_itab.DATA:itab LIKE wa_itab OCCURS 0 WITH HEADER LINE.DATA:g_file LIKE rlgrap-filename.DATA:s_file LIKE rlgrap-filename.DATA:menge(20).DATA:line(1000) TYPEc.SELECTION-SCREEN BEGIN OF BLOCK bl1 WITHFRAME TITLE t1.SELECT-OPTIONS:s_erdat FOR vbak-erdat,

s_vbelnFOR vbak-vbeln,

s_kunnrFOR vbak-kunnr,

s_vkorgFOR vbak-vkorg.PARAMETERS:p_client AS CHECKBOX,

p_dnfileLIKE rlgrap-filename DEFAULT ‘D:\‘,

p_server AS CHECKBOX,

p_sefile LIKE rlgrap-filename DEFAULT‘/usr/sap/tmp/‘.

SELECTION-SCREEN END OF BLOCK bl1 .

INITIALIZATION.

t1 =‘选择条件‘.

START-OF-SELECTION.

PERFORM sub_read_data.

END-OF-SELECTION.

PERFORM sub_write_data.

*&---------------------------------------------------------------------*

*& Form SUB_READ_DATA

*&---------------------------------------------------------------------*

* text

*----------------------------------------------------------------------*

* --> p1 text

*

*----------------------------------------------------------------------*

FORM sub_read_data .

SELECT vbak~vbeln vkorg vbak~erdat kunnr posnr matnr kwmeng

INTO TABLE itab

FROM vbak

JOIN vbap ON vbap~vbeln = vbak~vbeln

WHERE vbak~vbeln IN s_vbeln

AND vbak~erdat IN s_erdat

AND vkorg IN s_vkorg

AND kunnr IN s_kunnr.

ENDFORM. " SUB_READ_DATA

*&---------------------------------------------------------------------*

*& Form SUB_WRITE_DATA

*&---------------------------------------------------------------------*

* text

*----------------------------------------------------------------------*

* --> p1 text

*

*----------------------------------------------------------------------*

FORM sub_write_data .

IF p_client =‘X‘.

CONCATENATE p_dnfile‘SD‘sy-datum sy-uzeit‘.TXT‘INTO g_file. "文本格式

CALL FUNCTION‘WS_DOWNLOAD‘EXPORTING

filename = g_file

filetype =‘DAT‘TABLES

data_tab = itab. "被下载的内表

ENDIF.

IF p_server =‘X‘.

CONCATENATE p_sefile‘SD‘sy-datum‘.txt‘INTO s_file. "服务器保存的目录和文件名

OPEN DATASET s_file FOR OUTPUT IN TEXT MODE ENCODING DEFAULT . "打开文件

if sy-subrc = 0.

LOOP AT itab INTO wa_itab.

menge = wa_itab-kwmeng.

CONCATENATE wa_itab-vkorg

wa_itab-kunnr

wa_itab-vbeln

wa_itab-erdat

wa_itab-posnr

wa_itab-matnr

menge

INTO line SEPARATED BY‘‘.

TRANSFER line TO s_file .

IF sy-subrc NE 0 .

MESSAGE‘ERROR!!‘type‘E‘.

ENDIF.

CLEAR line .

ENDLOOP.

CLOSE DATASET s_file.

else.

MESSAGE‘OPEN ERROR!!‘type‘E‘.

endif.

ENDIF.

ENDFORM. " SUB_WRITE_DATA

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值