Monday, June 29, 2015

SAP ABAP Custom program to release request including tasks


REPORT ZZLOCAL_RELEASE_TR.


DATA: gt_e070 TYPE TABLE OF e070,
      return TYPE bapiret2.
FIELD-SYMBOLS: <e070> TYPE e070.

SELECT-OPTIONS: so_num FOR <e070>-trkorr  NO INTERVALS OBLIGATORY.


START-OF-SELECTION.
  DATA lv_answer(01).

  CALL FUNCTION 'POPUP_TO_CONFIRM_STEP'
    EXPORTING
      DEFAULTOPTION  = 'N'
      TEXTLINE1      = text-001
*     TEXTLINE2      = ' '
      TITEL          = text-002
*     START_COLUMN   = 25
*     START_ROW      = 6
*     CANCEL_DISPLAY = 'X'
    IMPORTING
      ANSWER         = lv_answer.

  IF lv_answer EQ 'J'.
    SORT so_num by low.
    delete ADJACENT DUPLICATES FROM so_num.
    CHECK so_num is NOT INITIAL.

    SELECT * INTO TABLE gt_e070
      FROM e070
      WHERE trkorr IN so_num
        AND trstatus EQ 'D' " not yet released
        AND strkorr EQ space. " only request not task

    CHECK sy-subrc EQ 0.

    LOOP AT gt_e070 ASSIGNING <e070>.
      CALL FUNCTION 'BAPI_CTREQUEST_RELEASE'
        EXPORTING
          requestid = <e070>-trkorr
          complete  = 'X' " Release request including tasks
        IMPORTING
          return    = return.
      IF NOT return-type IS INITIAL.
        Write:/      'Error',
                     return-message_v1,
                     return-message_v2,
                     return-message_v3,
                     return-message_v4.

      ELSE.
        CONDENSE <e070>-trkorr.
        WRITE : / 'TR released ', <e070>-trkorr, ',', <e070>-AS4USER.
      ENDIF.
    ENDLOOP.
  ENDIF.