原文出處:
在SAP的ABAP編程中,經常涉及到文件的處理abap把文件下載到本地,SAP的按照不同分類,有服務端文件和客戶端文件,文本文件和二進制文件(EXE文件,文件abap把文件下載到本地,PDF文件等)。
服務器文件的瀏覽
可以是用TCode:AL11查看服務器的文件夾和文件,可以點擊配置“”創建和管理文件夾。
創建和修改服務器文件
使用ABAP的OPEN 帶FOR 語句打開文件;
使用語句寫入文件;
使用CLOSE 關閉文件(保存)。
DATA: type -
DATA: type table of .
DATA: type i.
FIELD-: TYPE
START-OF-.
= 'C:\.txt'.
OPEN FOR IN TEXT MODE .
LOOP AT .
FIELD IN BYTE MODE.
TO .
.
CLOSE .
讀取服務器文件
使用ABAP的OPEN 帶FOR INPUT語句打開文件;
使用READ 語句讀取文件;
使用CLOSE 關閉文件。
TYPE -.
START-OF-.
OPEN IN TEXT MODE FOR INPUT.
DO.
READ INTO .
IF sy-subrc 0.
EXIT.
ENDIF.
TO .
ENDDO.
CLOSE .
檢查服務器文件是否存在
使用函數
DATA: TYPE TABLE OF .
TYPE -.
AT -.
CALL ''
=
= '*'
=
或 使用OPEN ,判斷系統返回值判斷文件
TYPE -.
AT -.
OPEN FOR INPUT IN TEXT MODE .
IF sy-subrc = 0.
CLOSE .
ELSE.
'the input file does not exist.' TYPE 'E'.
ENDIF.
讀取服務器文件夾的文件列表
使用或 STING函數
如何使用 Help
使用''函數
TYPE -.
AT - ON VALUE- FOR .
CALL ''
= ''
= sy-repid
= sy-dynnr
= 'P'
= 'A'
= ' '.
: 'P' file name; 'L' file name.
: 'A' ; 'P' .
使用函數創建自定義的輸入幫助
代碼參見:+for+files+on++or++
注意
為了避免文件名稱可變化,我們應該使用邏輯文件。使用TCODE:FILE可以定義邏輯文件,使用函數去獲取文件名;
創建客戶端文件
使用函數
*DATA for .
DATA : type .
= file.
: TYPE VALUE 'ASC'.
CALL ''
=
= 'ASC'
= 'IBM'
=
= 1
= 2
FER = 3
= 4
= 5
= 6
= 7
D = 8
= 9
= 10
= 11
= 12
= 13
= 14
= 15
= 16
= 17
= 18
= 19
ON = 20
= 21
= 22.
file = .
使用函數ICES=>
DATA : TYPE ,
TYPE ,
TYPE ,
TYPE .
MOVE TO .
CALL ices=>
=
=
path =
= .
IF sy-subrc 0.
ENDIF.
CALL ices=>
=
= 'ASC'
= 'X'
=
= 1.
注意: 和不建議使用
讀取客戶端文件
使用''函數
DATA : type .
: TYPE VALUE 'ASC'.
CALL ''
=
= 'DAT'
= 'IBM'
=
= 1
= 2
= 3
FER = 4
= 5
= 6
= 7
= 8
= 9
D = 10
= 11
= 12
= 13
= 14
= 15
= 16
= 17.
使用ICES=> 方法
注意: 和 函數不建議使用
檢查客戶端文件是否存在
使用ECK 函數
DATA: (1) TYPE c.
TYPE -.
AT -.
CALL 'ECK'
=
pc = 'X'
* =
=
IF NOT ( sy-subrc = 0 and = 'X' )
'the input file does not exist.' TYPE 'E'.
ENDIF.
Pay to the 'pc', it be set as 'X'.
使用ICES=>函數
DATA: (1) TYPE c.
TYPE -.
AT -.
CALL ices=>
file =
=
IF NOT ( sy-subrc = 0 and = 'X' )
'the input file does not exist.' TYPE 'E'.
ENDIF.
讀取客戶端文件列表
使用 函數
或 ICES=> 方法
使用 Help
使用ICES=> 方法
DATA: TYPE .
DATA: TYPE I.
TYPE -.
AT - ON VALUE- FOR .
CALL ices=>
= ' a file'
=
rc =
IF sy-subrc = 0.
READ TABLE
INTO INDEX 1.
= -.
ENDIF.
使用ICES=> 方法
使用函數
使用 函數(版本要求:R/3 and ECC only)
TYPE -.
AT - ON VALUE- FOR .
CALL ''
*
* =
* =
* =
= .
注意對于選取文件夾請使用ICES=>方法
TCode:CG3Y (from to )
TCode:CG3Z (from to )
使用ICES=> 方法;
使用上文提到服務器和客戶端操作的組合來實現;
使用;
使用,這個類只能在內存中進行數據的壓縮和解壓處理;
對服務器端我們可以使用OPEN 帶實現
DATA file TYPE VALUE `/usr/test.Z`.
OPEN file FOR IN MODE
''.
...
CLOSE file.
OPEN file FOR INPUT IN MODE
''.
...
CLOSE file.
使用OLE/DOI for files (Excel, Word, etc.)
ICES類提供大量有關文件操作的方法
相關鏈接:
+With+Files
+file+types
+for+files+on++or++