方法一: 在目标目录新建文件,然后Copy 来源文件的内容,最后删除来源文件,变相达到移动的目的:
FORM MOVE_FILE_TO_FOLDER USING P_FROM_PATH
P_TO_PATH
P_FILE_NAME
P_ZTYPE.
data: lv_str type string.
data:p_file_n_f like rlgrap-filename,
p_file_f like rlgrap-filename,
p_file_n_t like rlgrap-filename,
p_file_t like rlgrap-filename.
if st01 eq 'X'.
clear: p_file_n_f, p_file_f, p_file_n_t, p_file_t.
"To file
* concatenate P_ZTYPE p_file_n_t
* into p_file_n_t separated by '_'.
p_file_n_t = p_file_name.
concatenate p_to_path p_file_n_t
into p_file_t separated by '\'.
"From file
concatenate p_from_path p_file_name
into p_file_f separated by '\'.
"open to file, and trans data to it
open dataset p_file_t for output in text mode encoding UTF-8.
if sy-subrc eq 0.
close dataset p_file_f.
open dataset p_file_f for input in text mode encoding UTF-8.
if sy-subrc eq 0.
do.
clear lv_str.
read dataset p_file_f into lv_str.
if sy-subrc ne 0.
exit.
endif.
transfer lv_str to p_file_t.
enddo.
endif.
close dataset p_file_f.
*" Delete original file
if sy-subrc eq 0.
delete dataset p_file_f.
endif.
endif.
close dataset p_file_t.
endif.
ENDFORM. " MOVE_FILE_TO_ERR_FOLDER
方法二:调用外部命令处理
FORM MOVE_FILE tables p_table
using p_delete_file
p_flag.
data: IN_FILE(255) TYPE C,
OUT_FILE(255) TYPE C.
DATA: CMND LIKE SXPGCOLIST-NAME,
PARM LIKE SXPGCOLIST-PARAMETERS .
DATA: BEGIN OF OUT_DATA OCCURS 50.
INCLUDE STRUCTURE BTCXPM.
DATA: END OF OUT_DATA .
DATA: RTN_CH.
*< 1 >* Call LHA Command
* create system command
CMND = 'ZMOVE'. "<-- system command name. Refer "SM69"
********************************************************
* Configuration *
* operating system command : "cmd" *
* parameters for operating system command : "/c move" *
********************************************************
* MOVE need parameter "<source file> _ <target file>"
move p_delete_file TO OUT_FILE.
if move_succ = 'X'.
concatenate i_path '\COMPLETE\' into IN_FILE.
endif.
if move_err = 'X'.
concatenate i_path '\NONCOMPLETE\' into IN_FILE.
endif.
CONCATENATE OUT_FILE IN_FILE INTO PARM SEPARATED BY SPACE.
*call system command
CLEAR RTN_CH.
CALL FUNCTION 'SXPG_CALL_SYSTEM'
EXPORTING
COMMANDNAME = CMND
ADDITIONAL_PARAMETERS = PARM
* IMPORTING
* STATUS = RTN_CH
TABLES
EXEC_PROTOCOL = OUT_DATA
EXCEPTIONS
NO_PERMISSION = 01
COMMAND_NOT_FOUND = 02
PARAMETERS_TOO_LONG = 03
SECURITY_RISK = 04
WRONG_CHECK_CALL_INTERFACE = 05
PROGRAM_START_ERROR = 06
PROGRAM_TERMINATION_ERROR = 07
X_ERROR = 08
PARAMETER_EXPECTED = 09
TOO_MANY_PARAMETERS = 10
ILLEGAL_COMMAND = 11.
ENDFORM.