Tuesday, June 10, 2014

Move File from One Directory to Another in ABAP

*&---------------------------------------------------------------------*
*& REPORT  YFILEMOVE
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  YFILEMOVE.

SELECTION-SCREEN:BEGIN OF BLOCK F1 WITH FRAME TITLE TEXT-001.
PARAMETERS: FILEPATH LIKE IBIPPARMS-PATH OBLIGATORY.
SELECTION-SCREEN:END OF BLOCK F1.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR FILEPATH.

  CALL FUNCTION '/SAPDMC/LSM_F4_SERVER_FILE'
   EXPORTING
    DIRECTORY              = 'YOUR DIRECTORY PATH HERE'
*    FILEMASK               = ' '
   IMPORTING
     SERVERFILE             =  FILEPATH
*   EXCEPTIONS
*    CANCELED_BY_USER       = 1
*    OTHERS                 = 2
            .
  IF SY-SUBRC = 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    "MESSAGE 'SUCCESS' TYPE 'I'.
  ENDIF.

 "----------------------------------------------------------------------------"

  START-OF-SELECTION.

  DATA: L_MSG(100),
        P_W_CONF_MSG(100),
        P_WA_ANSWER(100).

  L_MSG = 'Confirm'.  " YOUR TEXT
  P_W_CONF_MSG = 'Are You Sure You Want To Move The File?'.

  CALL FUNCTION 'POPUP_TO_CONFIRM'
  EXPORTING
    TITLEBAR              =  L_MSG
    TEXT_QUESTION         = P_W_CONF_MSG
    TEXT_BUTTON_1         = 'Yes'(002)
    TEXT_BUTTON_2         = 'No'(005)
    DEFAULT_BUTTON        = '1'
    DISPLAY_CANCEL_BUTTON = ''
  IMPORTING
    ANSWER                = P_WA_ANSWER.

IF P_WA_ANSWER EQ '1'.

  DATA: D1 TYPE LOCALFILE,
  P1(100),
  P2(100),
  P3(100),
  P4(100),
  P5 TYPE EPSFILNAM,
  DEL(1) VALUE '/'.

  D1 = FILEPATH.
* WRITE D1.

"Building up the filename in P5.
  SPLIT D1 AT DEL INTO P1 P2 P3 P4 P5.

*  WRITE / P1.
*  WRITE / P2.
*  WRITE / P3.
*  WRITE / P4.

  DATA: D2(100), D3 TYPE LOCALFILE.
  D2 = '/FOLDER NAME/'.
  CONCATENATE D2 P5 INTO D3.
* WRITE / D3.

  DATA: BEGIN OF ITAB OCCURS 0,
        REC(100) TYPE C,
        END OF ITAB.
  DATA: WA(100) TYPE C.


    CALL METHOD CL_CTS_LANGUAGE_FILE_IO=>COPY_FILES_LOCAL
    EXPORTING
      IM_SOURCE_FILE           = P5
      IM_SOURCE_DIRECTORY      = 'SOURCE PATH'
      IM_TARGET_FILE           = P5
      IM_TARGET_DIRECTORY      = 'DESTINATION PATH'
*      IM_OVERWRITE_MODE        = SPACE
*    IMPORTING
*      EX_FILE_SIZE             =
    EXCEPTIONS
      OPEN_INPUT_FILE_FAILED   = 1
      OPEN_OUTPUT_FILE_FAILED  = 2
      WRITE_BLOCK_FAILED       = 3
      READ_BLOCK_FAILED        = 4
      CLOSE_OUTPUT_FILE_FAILED = 5
      OTHERS                   = 6.

     IF SY-SUBRC = 0.
      MESSAGE 'File Moved.' TYPE 'I'.
      DELETE DATASET D1.
     ELSE.
      MESSAGE 'File Not Moved' TYPE 'E'.
     ENDIF.
ENDIF.

No comments:

Post a Comment