Wednesday, March 04, 2009

ABAP Program to fix Released Transport tasks.

*&---------------------------------------------------------------------*
*& Report  YBAS_TRANS_FIX
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
 
REPORT  YBAS_TRANS_FIX.
 
* this program helps to fix some problems with tasks that have been
* released but are not setup correct.
* be carefull what you do and make shure you understand what the
* problem was, in the first place.
*
TABLES: TLOCK, E070, E070C, TDEVC.
PARAMETERS: CORRNR LIKE TLOCK-TRKORR.
parameters: newmand like sy-mandt.
PARAMETERS: NEWdev LIKE TADIR-DEVCLASS.
PARAMETERS: KNOWIT AS CHECKBOX.
PARAMETERS: TARdum AS CHECKBOX DEFAULT ' '.
PARAMETERS: CHTARCLI AS CHECKBOX DEFAULT ' '.
PARAMETERS: SRCCLI AS CHECKBOX DEFAULT ' '.
PARAMETERS: DELLOCK AS CHECKBOX DEFAULT ' '.
PARAMETERS: DISLOCK AS CHECKBOX DEFAULT ' '.
PARAMETERS: SETLOCA AS CHECKBOX DEFAULT ' '.
PARAMETERS: SETTRAN AS CHECKBOX DEFAULT ' '.
PARAMETERS: SETTRCP AS CHECKBOX DEFAULT ' '.
PARAMETERS: SETCORR AS CHECKBOX DEFAULT ' '.
PARAMETERS: SETREPA AS CHECKBOX DEFAULT ' '.
PARAMETERS: SETDEVC AS CHECKBOX DEFAULT ' '.
PARAMETERS: SETOWN  AS CHECKBOX DEFAULT ' '.
PARAMETERS: relcorr AS CHECKBOX DEFAULT ' '.
PARAMETERS: reltran AS CHECKBOX DEFAULT ' '.
 
IF KNOWIT <> 'X'.
   EXIT.
ENDIF.
IF DISLOCK = 'X'.
   SELECT * FROM TLOCK WHERE TRKORR = CORRNR.
   WRITE: / '* lock entry: ', TLOCK-OBJECT, TLOCK-TRKORR, TLOCK-AUTHOR .
   IF DELLOCK = 'X'.
     DELETE TLOCK.
   ENDIF.
   ENDSELECT.
ENDIF.
 
IF TARdum = 'X'.
   SELECT * FROM E070 WHERE TRKORR = CORRNR.
     WRITE: / '* e070 entry: ', E070.
     MOVE 'DUM' TO E070-TARSYSTEM.
     MODIFY E070.
     WRITE: / '* e070 entry: ', E070.
   ENDSELECT.
ENDIF.
 
IF CHTARCLI = 'X'.
  SELECT * FROM E070C WHERE TRKORR = CORRNR.
    WRITE: / '* e070C entry: ', E070C.
    MOVE newmand TO E070C-TARCLIENT.
    MODIFY E070C.
    WRITE: / '* e070C entry: ', E070C.
  ENDSELECT.
ENDIF.
 
IF SRCCLI = 'X'.
  SELECT * FROM E070C WHERE TRKORR = CORRNR.
    WRITE: / '* e070C entry: ', E070C.
    MOVE newmand TO E070C-CLIENT.
    MODIFY E070C.
    WRITE: / '* e070C entry: ', E070C.
  ENDSELECT.
ENDIF.
 
IF SETLOCA = 'X'.
  SELECT * FROM E070 WHERE TRKORR = CORRNR.
    WRITE: / '* e070 entry: ', E070.
    MOVE 'L' TO E070-TRFUNCTION.
    MOVE 'L' TO E070-TRSTATUS.
    MODIFY E070.
    WRITE: / '* e070 entry: ', E070.
  ENDSELECT.
ENDIF.
 
IF SETTRAN = 'X'.
  SELECT * FROM E070 WHERE TRKORR = CORRNR.
    WRITE: / '* e070 entry: ', E070.
    MOVE 'K' TO E070-TRFUNCTION.
    MOVE 'L' TO E070-TRSTATUS.
    MODIFY E070.
    WRITE: / '* e070 entry: ', E070.
  ENDSELECT.
ENDIF.
 
IF SETTRCP = 'X'.
  SELECT * FROM E070 WHERE TRKORR = CORRNR.
    WRITE: / '* e070 entry: ', E070.
    MOVE 'T' TO E070-TRFUNCTION.
    MOVE 'L' TO E070-TRSTATUS.
    MODIFY E070.
    WRITE: / '* e070 entry: ', E070.
  ENDSELECT.
ENDIF.
 
IF SETREPA = 'X'.
  SELECT * FROM E070 WHERE TRKORR = CORRNR.
    WRITE: / '* e070 entry: ', E070.
    MOVE 'R' TO E070-TRFUNCTION.
    MOVE 'D' TO E070-TRSTATUS.
    MODIFY E070.
    WRITE: / '* e070 entry: ', E070.
  ENDSELECT.
ENDIF.
 
IF SETCORR = 'X'.
  SELECT * FROM E070 WHERE TRKORR = CORRNR.
    WRITE: / '* e070 entry: ', E070.
    MOVE 'S' TO E070-TRFUNCTION.
    MOVE 'D' TO E070-TRSTATUS.
    MODIFY E070.
    WRITE: / '* e070 entry: ', E070.
  ENDSELECT.
ENDIF.
 
IF relcorr = 'X'.
  SELECT * FROM E070 WHERE TRKORR = CORRNR.
    WRITE: / '* e070 entry: ', E070.
    MOVE 'S' TO E070-TRFUNCTION.
    MOVE 'R' TO E070-TRSTATUS.
    MODIFY E070.
    WRITE: / '* e070 entry: ', E070.
  ENDSELECT.
ENDIF.
 
IF reltran = 'X'.
  SELECT * FROM E070 WHERE TRKORR = CORRNR.
    WRITE: / '* e070 entry: ', E070.
    MOVE 'K' TO E070-TRFUNCTION.
    MOVE 'R' TO E070-TRSTATUS.
    MODIFY E070.
    WRITE: / '* e070 entry: ', E070.
  ENDSELECT.
ENDIF.
 
 
 
* if setdevc = 'X'.
*  select * from tdevc where devclass = newdev.
*    write: / '* tdevc entry: ', tdevc.
*    move '   ' to tdevc-intsys.
*    move '   ' to tdevc-consys.
*    move '    '  to tdevc-pdevclass.
*    move ' '  to tdevc-korrflag.
*    modify tdevc.
*    write: / '* tdevc entry: ', tdevc.
*  endselect.
*  commit work.
* endif.
 
IF SETOWN = 'X'.
   SELECT * FROM E070 WHERE TRKORR = CORRNR.
     WRITE: / '* e070 entry: ', E070.
     MOVE SY-UNAME TO E070-AS4USER.
     MODIFY E070.
     WRITE: / '* e070 entry: ', E070.
   ENDSELECT.
ENDIF.
 
p.s: Courtesy Rene M for sharing this.

No comments: