二、打开文件读取OPEN DATASET <dsn> FOR INPUT IN TEXT MODE ENCODING DEFAULT .(以TXT文件打开)
三、打开文件写入OPEN DATASET <dsn> FOR OUTPUT IN TEXT MODE ENCODING DEFAULT .(以TXT文件打开写入,这种是打开文件完全重写)
四、打开文件追加 OPEN DATASET <dsn> FOR APPENDING IN TEXT MODE ENCODING DEFAULT .(以TXT文件打开写入,这种是打开文件追加记录)
五、关闭应用服务器上的文件 CLOSE DATASET <dsn>.
六、删除应用服务器上的文件 DELETE DATASET <dsn>.
七、向应用服务器上文件上写入数据TRANSFER <f> to <dsn> [LENGTH <len>].
八、向应用服务器上文件上读取数据READ DATASET <dsn> INTO <f> [LENGTH <len>].
常用事务代码:
1.AL11,服务器上的文件
2.CG3Y 下载文件
3.CG3Z 上传文件
注:以上文字内容来自http://blog.csdn.net/lbxp521/article/details/6741534
保存内表数据到服务器程序:
REPORT ydownvbak.
TABLES:vbak,vbap.
DATA:BEGIN OF wa_itab ,
vbeln LIKE vbak-vbeln,
vkorg LIKE vbak-vkorg,
erdat LIKE vbak-erdat,
kunnr LIKE vbak-kunnr,
posnr LIKE vbap-posnr,
matnr LIKE vbap-matnr,
kwmeng LIKE vbap-kwmeng,
END OF wa_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) TYPE c.
SELECTION-SCREEN BEGIN OF BLOCK bl1 WITH FRAME TITLE t1.
SELECT-OPTIONS:s_erdat FOR vbak-erdat,
s_vbeln FOR vbak-vbeln,
s_kunnr FOR vbak-kunnr,
s_vkorg FOR vbak-vkorg.
PARAMETERS:p_client AS CHECKBOX,
p_dnfile LIKE 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
* <-- p2 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
* <-- p2 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
读取服务器上的文件:
REPORT zdemo_read_file.
*------------------------------------------------------------------------------*
* internal table declaration
*------------------------------------------------------------------------------*
DATA: BEGIN OF it_final OCCURS 0,
str TYPE char100,
c1 TYPE char8,
c2 TYPE char8,
c3 TYPE char8,
c4 TYPE char8,
c5 TYPE char8,
c6 TYPE char8,
c7 TYPE char8,
END OF it_final.
*--- work area for the internal table
DATA wa_it_final LIKE LINE OF it_final.
*------------------------------------------------------------------------------*
* variable declaration
*------------------------------------------------------------------------------*
DATA: v_excel_string(2000) TYPE c,
v_file LIKE v_excel_string VALUE '/upload/20140721.txt', " name of the file
delimiter TYPE c VALUE ' '. " delimiter with default value space
*------------------------------------------------------------------------------*
* read the file from the application server
*------------------------------------------------------------------------------*
OPEN DATASET v_file FOR INPUT IN TEXT MODE ENCODING DEFAULT.
IF sy-subrc NE 0.
WRITE:/ 'error opening file'.
ELSE.
WHILE ( sy-subrc EQ 0 ).
READ DATASET v_file INTO wa_it_final.
IF NOT wa_it_final IS INITIAL.
APPEND wa_it_final TO it_final.
ENDIF.
CLEAR wa_it_final.
ENDWHILE.
ENDIF.
CLOSE DATASET v_file.
*------display the data from the internal table
DATA:l_line TYPE i.
DESCRIBE TABLE it_final LINES l_line.
WRITE:'读取总条数:',l_line.
ULINE.
LOOP AT it_final.
WRITE:/ it_final-str.
ENDLOOP.
转载自:http://blog.csdn.net/hjz419116185/article/details/7026427