DATA: BEGIN OF TVARI OCCURS 500.
INCLUDE STRUCTURE VARI.
DATA: END OF TVARI.
DATA: BEGIN OF TVARIT OCCURS 500.
INCLUDE STRUCTURE VARIT.
DATA: END OF TVARIT.
DATA: BEGIN OF TVARID OCCURS 500.
INCLUDE STRUCTURE VARID.
DATA: END OF TVARID.
DATA: BEGIN OF TZPGM OCCURS 500.
INCLUDE STRUCTURE ZPGM.
DATA: END OF TZPGM.
PERFORM CHECK-TCODE-AUTHORITY USING 'SE38'.
IF MANDT EQ SY-MANDT.
MESSAGE E999 WITH 'Cannot Specify Own Client'.
ENDIF.
IF SY-SYSID(3) EQ 'DEV'.
IF SY-MANDT NE 220
OR SY-SYSID(3) NE 'DEV'.
MESSAGE E999 WITH 'Can Only Run this Program in Client 220 on DEV'.
ENDIF.
ENDIF.
IF SY-SYSID(3) EQ 'PRD'.
IF SY-MANDT NE 402
OR SY-SYSID(3) NE 'PRD'.
MESSAGE E999 WITH 'Can Only Run this Program in Client 402 on PRD'.
ENDIF.
ENDIF.
* Delete Data from Specified Client
SELECT * FROM VARI CLIENT SPECIFIED WHERE MANDT EQ MANDT.
IF VARI-REPORT(1) EQ 'Z'
OR VARI-REPORT EQ 'RFYTXM00'
OR VARI-REPORT EQ 'RMMMPERI'.
MOVE VARI TO TVARI.
APPEND TVARI.
ENDIF.
ENDSELECT.
LOOP AT TVARI.
SELECT SINGLE FOR UPDATE * FROM VARI CLIENT SPECIFIED
WHERE MANDT EQ TVARI-MANDT
AND RELID EQ TVARI-RELID
AND REPORT EQ TVARI-REPORT
AND VARIANT EQ TVARI-VARIANT
AND SRTF2 EQ TVARI-SRTF2.
IF SY-SUBRC EQ 0.
DELETE VARI CLIENT SPECIFIED.
ENDIF.
ENDLOOP.
COMMIT WORK.
SELECT * FROM VARIT CLIENT SPECIFIED WHERE MANDT EQ MANDT.
IF VARIT-REPORT(1) EQ 'Z'
OR VARIT-REPORT EQ 'RFYTXM00'
OR VARIT-REPORT EQ 'RMMMPERI'.
MOVE VARIT TO TVARIT.
APPEND TVARIT.
ENDIF.
ENDSELECT.
LOOP AT TVARIT.
SELECT SINGLE FOR UPDATE * FROM VARIT CLIENT SPECIFIED
WHERE MANDT EQ TVARIT-MANDT
AND LANGU EQ TVARIT-LANGU
AND REPORT EQ TVARIT-REPORT
AND VARIANT EQ TVARIT-VARIANT.
IF SY-SUBRC EQ 0.
DELETE VARIT CLIENT SPECIFIED.
ENDIF.
ENDLOOP.
COMMIT WORK.
SELECT * FROM VARID CLIENT SPECIFIED WHERE MANDT EQ MANDT.
IF VARID-REPORT(1) EQ 'Z'
OR VARID-REPORT EQ 'RFYTXM00'
OR VARID-REPORT EQ 'RMMMPERI'.
MOVE VARID TO TVARID.
APPEND TVARID.
ENDIF.
ENDSELECT.
LOOP AT TVARID.
SELECT SINGLE FOR UPDATE * FROM VARID CLIENT SPECIFIED
WHERE MANDT EQ TVARID-MANDT
AND REPORT EQ TVARID-REPORT
AND VARIANT EQ TVARID-VARIANT
AND FLAG1 EQ TVARID-FLAG1
AND FLAG2 EQ TVARID-FLAG2.
IF SY-SUBRC EQ 0.
DELETE VARID CLIENT SPECIFIED.
ENDIF.
ENDLOOP.
COMMIT WORK.
SELECT * FROM ZPGM CLIENT SPECIFIED WHERE MANDT EQ MANDT.
MOVE ZPGM TO TZPGM.
APPEND TZPGM.
ENDSELECT.
LOOP AT TZPGM.
SELECT SINGLE FOR UPDATE * FROM ZPGM CLIENT SPECIFIED
WHERE MANDT EQ TZPGM-MANDT
AND PGM EQ TZPGM-PGM.
IF SY-SUBRC EQ 0.
DELETE ZPGM CLIENT SPECIFIED.
ENDIF.
ENDLOOP.
COMMIT WORK.
* Load up Internal Tables - with Data from this Client
REFRESH TVARI.
REFRESH TVARIT.
REFRESH TVARID.
REFRESH TZPGM.
SELECT * FROM VARI.
IF VARI-REPORT(1) EQ 'Z'
OR VARI-REPORT EQ 'RFYTXM00'
OR VARI-REPORT EQ 'RMMMPERI'.
MOVE VARI TO TVARI.
MOVE MANDT TO TVARI-MANDT.
APPEND TVARI.
ENDIF.
ENDSELECT.
SELECT * FROM VARIT.
IF VARIT-REPORT(1) EQ 'Z'
OR VARIT-REPORT EQ 'RFYTXM00'
OR VARIT-REPORT EQ 'RMMMPERI'.
MOVE VARIT TO TVARIT.
MOVE MANDT TO TVARIT-MANDT.
APPEND TVARIT.
ENDIF.
ENDSELECT.
SELECT * FROM VARID.
IF VARID-REPORT(1) EQ 'Z'
OR VARID-REPORT EQ 'RFYTXM00'
OR VARID-REPORT EQ 'RMMMPERI'.
MOVE VARID TO TVARID.
MOVE MANDT TO TVARID-MANDT.
APPEND TVARID.
ENDIF.
ENDSELECT.
COMMIT WORK.
SELECT * FROM ZPGM.
MOVE ZPGM TO TZPGM.
MOVE MANDT TO TZPGM-MANDT.
APPEND TZPGM.
ENDSELECT.
COMMIT WORK.
* Update Specified Client - from Tables loaded from this Client
LOOP AT TVARI.
SELECT SINGLE FOR UPDATE * FROM VARI CLIENT SPECIFIED
WHERE MANDT EQ TVARI-MANDT
AND RELID EQ TVARI-RELID
AND REPORT EQ TVARI-REPORT
AND VARIANT EQ TVARI-VARIANT
AND SRTF2 EQ TVARI-SRTF2.
MOVE TVARI TO VARI.
IF SY-SUBRC EQ 0.
MODIFY VARI CLIENT SPECIFIED.
ELSE.
INSERT VARI CLIENT SPECIFIED.
ENDIF.
ENDLOOP.
COMMIT WORK.
LOOP AT TVARIT.
SELECT SINGLE FOR UPDATE * FROM VARIT CLIENT SPECIFIED
WHERE MANDT EQ TVARIT-MANDT
AND LANGU EQ TVARIT-LANGU
AND REPORT EQ TVARIT-REPORT
AND VARIANT EQ TVARIT-VARIANT.
MOVE TVARIT TO VARIT.
IF SY-SUBRC EQ 0.
MODIFY VARIT CLIENT SPECIFIED.
ELSE.
INSERT VARIT CLIENT SPECIFIED.
ENDIF.
ENDLOOP.
COMMIT WORK.
LOOP AT TVARID.
SELECT SINGLE FOR UPDATE * FROM VARID CLIENT SPECIFIED
WHERE MANDT EQ TVARID-MANDT
AND REPORT EQ TVARID-REPORT
AND VARIANT EQ TVARID-VARIANT
AND FLAG1 EQ TVARID-FLAG1
AND FLAG2 EQ TVARID-FLAG2.
MOVE TVARID TO VARID.
IF SY-SUBRC EQ 0.
MODIFY VARID CLIENT SPECIFIED.
ELSE.
INSERT VARID CLIENT SPECIFIED.
ENDIF.
ENDLOOP.
COMMIT WORK.
LOOP AT TZPGM.
SELECT SINGLE FOR UPDATE * FROM ZPGM CLIENT SPECIFIED
WHERE MANDT EQ TVARID-MANDT
AND PGM EQ TZPGM-PGM.
MOVE TZPGM TO ZPGM.
IF SY-SUBRC EQ 0.
MODIFY ZPGM CLIENT SPECIFIED.
ELSE.
INSERT ZPGM CLIENT SPECIFIED.
ENDIF.
ENDLOOP.
COMMIT WORK.
INCLUDE ZCONINC3.
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum
All product names are trademarks of their respective companies. SAPNET.RU websites are in no way affiliated with SAP AG. SAP, SAP R/3, R/3 software, mySAP, ABAP, BAPI, xApps, SAP NetWeaver and any other are registered trademarks of SAP AG. Every effort is made to ensure content integrity. Use information on this site at your own risk.