Various ways for File Moving from one folder to other on application server
Business Requirement
Various ways for File Moving from one folder to other on application server: Move file on application server (T coade AL11) from one folder to another folder
Implementation Logic in BW
This can be achieved in BW in three different ways:
- Using Trasnfer dataset statement
- Using external operating system commands
- Using function module ‘ARCHIVFILE_SERVER_TO_SERVER’
Logic
Case 1: Using Transfer Dataset statement
ABAP Code
PARAMETERS: PS_dir(50) TYPE C ,
pa_dir(50) TYPE c
PF_name(50) TYPE C OBLIGATORY LOWER CASE.
DATA: L_OLDFILE type localfile,
L_NEWFILE type localfile,
L_NEWLINE(240) type c,
Concatenate ps_dir pf_ name into l_oldfile.
Concatenate pa_dir pf_name into l_newfile.
OPEN DATASET l_oldfile FOR INPUT IN BINARY MODE.
If sy-subrc = 0.
OPEN DATASET l_newfile FOR OUTPUT IN BINARY MODE.
If sy-subrc = 0.
DO.
READ DATASET l_oldfile INTO l_newline.
IF sy-subrc EQ 0.
TRANSFER l_newline TO l_newfile.
ELSE.
if l_newline is not initial.
TRANSFER l_newline TO l_newfile.
endif.
EXIT.
ENDIF.
ENDDO.
Endif.
CLOSE DATASET l_newfile.
Else.
Message ‘Can not open source file’ type ‘E’.
Endif.
CLOSE DATASET l_oldfile.
DELETE DATASET l_oldfile.
Advantages of this approach:
Simple Process which transfers data in set of 240 characters
Disadvantages
Data is handled while moving file
For large files program will take more time
Case 2: Using External Operating System Command
ABAP Code
PARAMETERS: p_src TYPE sapb-sappfad,
p_tgt TYPE sapb-sappfad.
DATA: l_para TYPE btcxpgpar,
l_stat(1) TYPE c.
CONCATENATE p_src p_tgt INTO l_para SEPARATED BY space.
CALL FUNCTION ‘SXPG_COMMAND_EXECUTE’
EXPORTING
commandname = ‘ZMV’
additional_parameters = l_para
IMPORTING
status = l_stat
EXCEPTIONS
no_permission = 1
command_not_found = 2
parameters_too_long = 3
security_risk = 4
wrong_check_call_interface = 5
program_start_error = 6
program_termination_error = 7
x_error = 8
parameter_expected = 9
too_many_parameters = 10
illegal_command = 11
wrong_asynchronous_parameters = 12
cant_enq_tbtco_entry = 13
jobcount_generation_error = 14
OTHERS = 15
.IF sy-subrc <> 0.
MESSAGE ‘Error’ TYPE ‘E’ DISPLAY LIKE ‘I’.
ELSE.
if l_stat = ‘O’.
message ‘File Archived successfully’ type ‘I’.
endif.
ENDIF.
Advantages :
o No file data handling
o Time taken is less as we using system command to move file
Disadvantages:
o We need create Operating system command in T code SM49
Case 3: Using Function module ‘ARCHIVFILE_SERVER_TO_SERVER’
ABAP Code:
PARAMETERS: p_src TYPE sapb-sappfad,
p_tgt TYPE sapb-sappfad.
CALL FUNCTION ‘ARCHIVFILE_SERVER_TO_SERVER’
EXPORTING
sourcepath = p_src
targetpath = p_tgt* IMPORTING* LENGTH =
EXCEPTIONS
error_file = 1
no_authorization = 2
OTHERS = 3
.IF sy-subrc <> 0.
WRITE : ‘Error in archival’, sy-subrc.
ELSE.
WRITE ‘File archived successfully’.
ENDIF.
Advantages:
o Standard Function Module is used for file archival
Disadvantages
o File names passed to Function Module should be logical paths to file
o How to create logical path for file is given in below link
New NetWeaver Information at SAP.com
Very Helpfull