Você está na página 1de 3

*& REPORT Z_CORR_BUT021 *&--------------------------------------------------------------------* *>>>> START OF INSERTION <<<< *&---------------------------------------------------------------------* *& Report Z_CORR_BUT021 * *& * *&---------------------------------------------------------------------* *&

* *& * *&---------------------------------------------------------------------* * Correction of the inconsistencies in BUT021. * The cause of the problem is corrected with the note 627576. * The report is written as a repair program for the correction done * with note 627576. * All the partners in BUT021 which doesn't exist in BUT000 are deleted * through this report. A log of all the inconsistent partners in BUT021 * is provided. * The report can be run in test mode. In this mode there won't be any * database update. * ---------------------------------------------------------------------* REPORT zbp_but021_correction. TABLES but021. "For selection. TABLES but000. * -- Selection Screen ---------------------- * SELECTION-SCREEN BEGIN OF BLOCK b_partners WITH FRAME TITLE b_text1. SELECT-OPTIONS: bpartner FOR but021-partner. SELECTION-SCREEN END OF BLOCK b_partners. SELECTION-SCREEN BEGIN OF BLOCK b_testrun WITH FRAME TITLE b_text3. PARAMETER: testrun TYPE c AS CHECKBOX DEFAULT 'X'. SELECTION-SCREEN END OF BLOCK b_testrun. *-----------Loading of variable---------------LOAD-OF-PROGRAM. b_text1 b_text3 = 'Range of Partners to be checked'. = 'Mode'.

START-OF-SELECTION.

DATA: it_incons_partners TYPE TABLE OF but021. DATA: count TYPE i. FIELD-SYMBOLS: <incon_partner> TYPE but021. *----select all the BPs which doesn't exist in BUT000---------------SELECT * FROM but021 AS f INTO TABLE it_incons_partners WHERE NOT EXISTS ( SELECT * FROM but000 WHERE partner EQ f~partner ) AND partner IN bpartner. *-----Write all the inconsistent partners--------------------------IF it_incons_partners IS NOT INITIAL. FORMAT INTENSIFIED ON. WRITE : / 'List of the inconsistent Business Partners in BUT021', 'for the given range.'. FORMAT INTENSIFIED OFF. LOOP AT it_incons_partners ASSIGNING <incon_partner>. ON CHANGE OF <incon_partner>-partner. WRITE:/ 'Business Partner :' , <incon_partner>-partner. ENDON. ENDLOOP. ELSE. FORMAT INTENSIFIED ON. WRITE : / 'There are no inconsistent partners in BUT021', 'for the given range.'. FORMAT INTENSIFIED OFF. ENDIF. *----------delete the inconsistent entries from BUT021 if mode is not *testrun---------------IF testrun = ' ' AND it_incons_partners IS NOT INITIAL. DELETE but021 FROM TABLE it_incons_partners. IF sy-subrc EQ '0'.

WRITE: / 'The deletion of Partners is successful.'. ELSE. WRITE: / 'The deletion of Partners is Un-successful.'. ENDIF. ENDIF. *>>>> END OF INSERTION <<<<<< ... *&--------------------------------------------------------------------*

Você também pode gostar