REPORT YSMT018A
 MESSAGE-ID YL.
* ABAP to append ribesnsl to ribes
* and remove input file using sxpg_command_execute

DATA: FILE1(25) VALUE '/vmedata/???/file1nsl'.
DATA: FILE2(25) VALUE '/vmedata/???/file2'.
DATA: W_MESSAGE(50).
DATA: RLBES LIKE RLBES.
FILE1+9(3) = SY-SYSID.
FILE2+9(3) = SY-SYSID.
* sxpg_command_execute parameters
DATA: REMOVE_FILE LIKE SXPGCOLIST-PARAMETERS.
DATA: PROTOCOL LIKE BTCXPM OCCURS 0.
*
OPEN DATASET FILE2 FOR APPENDING  IN TEXT MODE MESSAGE W_MESSAGE.
IF SY-SUBRC NE 0 .
  MESSAGE E114 WITH FILE2 W_MESSAGE.
ENDIF.
OPEN DATASET FILE1 FOR INPUT IN TEXT MODE MESSAGE W_MESSAGE.
IF SY-SUBRC NE 0.
  MESSAGE E114 WITH FILE1 W_MESSAGE.
ENDIF.

DO.
  READ DATASET FILE1 INTO RLBES.
  IF SY-SUBRC NE 0.
    EXIT.
  ENDIF.
  TRANSFER RLBES TO FILE2.
  IF SY-SUBRC NE 0.
    MESSAGE E009 WITH FILE2 SY-SUBRC.
  ENDIF.
ENDDO.

MESSAGE I114 WITH FILE1 'appended'.
***----------------------------------------------------------------****

DATA: COMMAND3(60)
*    VALUE 'rm /vmedata/???/rlbesnsl' .
      VALUE 'rm /vmedata/???/file1nsl' .

COMMAND3+12(3) = SY-SYSID.


*submit the unix command remove file1
REMOVE_FILE = COMMAND3+3.
* create y_remove command in sm69
CALL FUNCTION 'SXPG_COMMAND_EXECUTE'
     EXPORTING
          COMMANDNAME                   = 'Y_REMOVE'
*         OPERATINGSYSTEM               = SY-OPSYS
*         TARGETSYSTEM                  = SY-HOST
*         STDOUT                        = 'X'
*         STDERR                        = 'X'
*         TERMINATIONWAIT               = 'X'
*         TRACE                         = ' '
         ADDITIONAL_PARAMETERS         = REMOVE_FILE
*    IMPORTING
*         STATUS                        =
     TABLES
          EXEC_PROTOCOL                 = PROTOCOL
     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 I114 WITH FILE1 'deleted'.
ENDIF.