Anda di halaman 1dari 3

*$*$ $*$*

*$ Correction Inst. 0120024545 0000154901 $*


*$ Valid for : $*
*$ Software Component SAP_APPL SAP Application $*
*$ Release 40A To SAPKH40A25 $*
*$ Release 40B All Support Package Levels $*
*$ Release 45A All Support Package Levels $*
*$ Release 45B All Support Package Levels $*
*$ Release 46A To SAPKH46A34 $*
*$ Release 46B All Support Package Levels $*
*$ Release 46C All Support Package Levels $*
*$ $*
*$ Changes/Objects Not Contained in Standard SAP System $*
*$*$ $*$*
*& *
*& Object REPS ZZZOMBIE
*& Object Header PROG ZZZOMBIE
*& *
*& REPORT ZZZOMBIE
*& *
*>>>> START OF INSERTION <<<<
REPORT zzzombie .
* *
* consistency check for RESB:
* - DEP_REQS: Find and delete 'zombie'-dependent requirements:
* + dep. req. for deleted planned orders
* + second (inconsistent) set of dep. req. for planned order
* *
* !!!!!!!!!!!!!!!!!!!!!!!!!! DANGER !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
* *
* - copy the program EXACTLY as described (cut & paste)
* - let the program be checked by 2 different persons
* - errors in this program (causing wrong deletion of RESB)
* could ruin the system and destroy production and planning data
* - do not modify the program
* *
* USAGE
* *
* - run the program in TESTMODE ( TESTMODE = 'X' ) first
* (in this mode no changes are written on the dababase)
* - running the program may impact system performance !!
* (full scan on RESB plus reading planned orders)
* -> do not execute the program when system load is high
* - print and save (system->list->save->..office) the result list
* - check the result, try to find a reproducable example
* - if inconsistencies are found (and confirmed)
* then run the program with TESTMODE = ' '
* *
TABLES:

resb,
plaf. "planned orders

SELECT-OPTIONS
plant FOR resb-werks.

PARAMETERS:
testmode DEFAULT 'X' AS CHECKBOX.

DATA:
count1 TYPE i,
count2 TYPE i,
found LIKE sy-subrc,
resbz LIKE resb OCCURS 0 WITH HEADER LINE,
rsnum_old LIKE resb-rsnum.
* > consistency check dependent requirements - planned orders

CLEAR plaf.

WRITE:
/1(10) 'RSNUM',
12(4) 'POS',
17(18) 'component',
36(4) 'plant',
41(10) 'pl. order ',
51(18) 'assembly'.
FORMAT INTENSIFIED OFF.

SELECT * FROM resb WHERE werks IN plant


AND plnum NE space
AND bdart NE 'AR'.

IF resb-plnum NE plaf-plnum. "performance


SELECT SINGLE * FROM plaf WHERE plnum = resb-plnum.

found = sy-subrc.
ENDIF.
IF found NE 0.
plaf-plnum = resb-plnum.
WRITE: /
resb-rsnum, resb-rspos, resb-matnr, resb-werks, resb-plnum,
resb-baugr.
ADD 1 TO count1.
IF testmode IS INITIAL.
DELETE resb.
ENDIF.
ELSE.
IF plaf-rsnum NE resb-rsnum.
FORMAT INTENSIFIED ON.
WRITE: /
resb-rsnum, resb-rspos, resb-matnr, resb-werks, resb-plnum,
resb-baugr.

FORMAT INTENSIFIED OFF.


ADD 1 TO count2.
IF testmode IS INITIAL.
DELETE resb.
ENDIF.
ENDIF.
ENDIF.
ENDSELECT.

WRITE: / 'Dependent requirements:', sy-dbcnt.


WRITE: / 'Dependent req. for non-existing planned order:', count1.
FORMAT INTENSIFIED ON.

WRITE: / 'Inconsistent (double) dependent req. for planned order:',

count2.

*>>>> END OF INSERTION <<<<<<

Anda mungkin juga menyukai