Vous êtes sur la page 1sur 6

*&---------------------------------------------------------------------*

*& Report RHDEL_INTE10 *


*& *
*&---------------------------------------------------------------------*
*& *
*& *
*&---------------------------------------------------------------------*

REPORT RHDEL_INTE10 Delta 001 Context Block


REPORT RHDEL_INTE10 .

Delete Block

Insert Block
DATA: iplogi LIKE plogi OCCURS 0 WITH HEADER LINE.
DATA: act_plogi LIKE plogi OCCURS 0 WITH HEADER LINE.
DATA: i528b LIKE t528b OCCURS 0 WITH HEADER LINE.
DATA: i528t LIKE t528t OCCURS 0 WITH HEADER LINE.
DATA: i527x LIKE t527x OCCURS 0 WITH HEADER LINE.
DATA: i513 LIKE t513 OCCURS 0 WITH HEADER LINE.
DATA: i513s LIKE t513s OCCURS 0 WITH HEADER LINE.

TABLES: t513, t513s, t527x, t528b, t528t, t5c13, t5d13, t5k13, t5u13,
plogi.

DATA: subrc LIKE sy-subrc.


DATA: act_plvar LIKE wplog-plvar.
DATA: act_orga LIKE t77s0-gsval.
DATA: defplans LIKE plogi-objid.

INCLUDE rhodat00.

PARAMETERS: test AS CHECKBOX DEFAULT 'X'.


PARAMETERS: maint AS CHECKBOX DEFAULT 'X'.
*PARAMETERS: CORRTASK LIKE E071K-TRKORR OBLIGATORY.
PARAMETERS: otype LIKE plogi-otype.

INITIALIZATION.

PERFORM re77s0(mstt77s0) USING 'OTYPE' 'PLSTE' $plste subrc.


PERFORM re77s0(mstt77s0) USING 'OTYPE' 'WORKP' $workp subrc.
PERFORM re77s0(mstt77s0) USING 'OTYPE' 'ORGEH' $orgeh subrc.
PERFORM re77s0(mstt77s0) USING 'OTYPE' 'CLASS' $class subrc.
PERFORM re77s0(mstt77s0) USING 'PLOGI' 'PRELI' defplans subrc.
PERFORM re77s0(mstt77s0) USING 'PLOGI' 'PLOGI' act_plvar subrc.

START-OF-SELECTION.

CHECK act_plvar NE space.

SELECT * FROM plogi INTO TABLE iplogi


WHERE otype = otype
AND plvar = act_plvar.

CASE otype.
WHEN $orgeh.
CLEAR i527x.
REFRESH i527x.
IF maint IS INITIAL.
SELECT * FROM t527x INTO TABLE i527x.
ELSE.
SELECT * FROM t527x INTO TABLE i527x WHERE maint = 'P'.
ENDIF.
LOOP AT i527x.
READ TABLE iplogi WITH KEY objid = i527x-orgeh.
IF sy-subrc NE 0.
act_plogi-objid = i527x-orgeh.
COLLECT act_plogi.
ENDIF.
ENDLOOP.

WHEN $class.
CLEAR i513.
REFRESH i513.
IF maint IS INITIAL.
SELECT * FROM t513 INTO TABLE i513.
ELSE.
SELECT * FROM t513 INTO TABLE i513 WHERE maint = 'P'.
ENDIF.
LOOP AT i513.
READ TABLE iplogi WITH KEY objid = i513-stell.
IF sy-subrc NE 0.
act_plogi-objid = i513-stell.
COLLECT act_plogi.
ENDIF.
ENDLOOP.
CLEAR i513s.
REFRESH i513s.
IF maint IS INITIAL.
SELECT * FROM t513s INTO TABLE i513S.
ELSE.
SELECT * FROM t513S INTO TABLE i513S WHERE maint = 'P'.
ENDIF.
LOOP AT i513S.
READ TABLE iplogi WITH KEY objid = i513S-stell.
IF sy-subrc NE 0.
act_plogi-objid = i513S-stell.
COLLECT act_plogi.
ENDIF.
ENDLOOP.

WHEN $workp.
CLEAR i528b.
REFRESH i528b.
IF maint IS INITIAL.
SELECT * FROM t528b INTO TABLE i528b
WHERE otype = otype.
ELSE.
SELECT * FROM t528b INTO TABLE i528b
WHERE otype = otype
AND maint = 'P'.

ENDIF.
LOOP AT i528b.
CHECK i528b-plans NE defplans.
READ TABLE iplogi WITH KEY objid = i528b-plans
otype = otype.
IF sy-subrc NE 0.
act_plogi-otype = otype.
act_plogi-objid = i528b-plans.
COLLECT act_plogi.
ENDIF.
ENDLOOP.
CLEAR i528t.
REFRESH i528t.
IF maint IS INITIAL.
SELECT * FROM t528t INTO TABLE i528t
WHERE otype = otype.
ELSE.
SELECT * FROM t528t INTO TABLE i528t
WHERE otype = otype
AND maint = 'P'.
ENDIF.
LOOP AT i528t.
CHECK i528t-plans NE defplans.
READ TABLE iplogi WITH KEY objid = i528t-plans
otype = otype.
IF sy-subrc NE 0.
act_plogi-otype = otype.
act_plogi-objid = i528t-plans.
COLLECT act_plogi.
ENDIF.
ENDLOOP.

WHEN $plste.
CLEAR i528b.
REFRESH i528b.
IF maint IS INITIAL.
SELECT * FROM t528b INTO TABLE i528b
WHERE otype = otype.
ELSE.
SELECT * FROM t528b INTO TABLE i528b
WHERE otype = otype
AND maint = 'P'.
ENDIF.
LOOP AT i528b.
CHECK i528b-plans NE defplans.
READ TABLE iplogi WITH KEY objid = i528b-plans
otype = otype.
IF sy-subrc NE 0.
act_plogi-otype = otype.
act_plogi-objid = i528b-plans.
COLLECT act_plogi.
ENDIF.
ENDLOOP.
CLEAR i528t.
REFRESH i528t.
IF maint IS INITIAL.
SELECT * FROM t528t INTO TABLE i528t
WHERE otype = otype.
ELSE.
SELECT * FROM t528t INTO TABLE i528t
WHERE otype = otype
AND maint = 'P'.
ENDIF.
LOOP AT i528t.
CHECK i528t-plans NE defplans.
READ TABLE iplogi WITH KEY objid = i528t-plans
otype = otype.
IF sy-subrc NE 0.
act_plogi-otype = otype.
act_plogi-objid = i528t-plans.
COLLECT act_plogi.
ENDIF.
ENDLOOP.

WHEN OTHERS.
WRITE: / 'Otype is not possible:'(001), otype.
EXIT.
ENDCASE.

WRITE : 'Following objects have to be deleted in PA tables:'(002).


LOOP AT act_plogi.
CHECK NOT ( act_plogi-objid IS INITIAL ).

* delete objects from administration atbles


WRITE: / act_plvar, otype, act_plogi-objid.
IF test EQ space.
CASE otype.
WHEN $orgeh.
PERFORM update_t527x.
WHEN $class.
PERFORM update_t513.
WHEN $workp.
PERFORM update_t528.
WHEN $plste.
PERFORM update_t528.
ENDCASE.
COMMIT WORK.
ENDIF.
ENDLOOP.

*_____________________________________________________________________*
* FORM UPDATE_T527X *
*_____________________________________________________________________*
* ........ *
*_____________________________________________________________________*
FORM update_t527x.

* delete organizational units


DELETE FROM t527x WHERE orgeh = act_plogi-objid.
WRITE: / sy-dbcnt, 'records deleted from T527X'(003).
DELETE FROM T528B where otype = 'O'
and plans = '99999999'.
WRITE: / sy-dbcnt, 'O 99999999 deleted from T528B'.
DELETE FROM T528T where otype = 'O'
and plans = '99999999'.
WRITE: / sy-dbcnt, 'O 99999999 deleted from T528T'.
ENDFORM. "UPDATE_T527X

*_____________________________________________________________________*
* FORM UPDATE_T513 *
*_____________________________________________________________________*
* ........ *
*_____________________________________________________________________*

FORM update_t513.

* delete jobs
DELETE FROM t513 WHERE stell = act_plogi-objid.
WRITE: / sy-dbcnt, 'records deleted from T513'(004).
DELETE FROM t513s WHERE stell = act_plogi-objid.
WRITE: / sy-dbcnt, 'records deleted from T513S'(005).
DELETE FROM t5c13 WHERE stell = act_plogi-objid.
WRITE: / sy-dbcnt, 'records deleted from T5C13'(006).
DELETE FROM t5d13 WHERE stell = act_plogi-objid.
WRITE: / sy-dbcnt, 'records deleted from T5D13'(007).
DELETE FROM t5k13 WHERE stell = act_plogi-objid.
WRITE: / sy-dbcnt, 'records deleted from T5K13'(008).
DELETE FROM t5u13 WHERE stell = act_plogi-objid.
WRITE: / sy-dbcnt, 'records deleted from T5U13'(009).

ENDFORM. "UPDATE_T513

*_____________________________________________________________________*
* FORM UPDATE_T528 *
*_____________________________________________________________________*
* ........ *
*_____________________________________________________________________*

FORM update_t528.

* delete positions
DELETE FROM t528b WHERE otype = act_plogi-otype
AND plans = act_plogi-objid.
WRITE: / sy-dbcnt, 'records deleted from T528B'(010).
DELETE FROM t528t WHERE otype = act_plogi-otype
AND plans = act_plogi-objid.
WRITE: / sy-dbcnt, 'records deleted from T528T'(011).

ENDFORM. "UPDATE_T528

...

*&____________________________________________________________________*

Vous aimerez peut-être aussi