There are database entries in the tables in clusters B1 or B2 which cannot be removed by means of retroactive accounting.
Examples
- Retroactive accounting date in table NCT in cluster B1,
- Duplicate time events
- Incorrect time events
- Time events in tables NT1 or NT2 in cluster B1, which occur before the earliest day for which retroactive accounting can be performed.
Program error or incorrect operation
SolutionThe following report serves as a model for accessing and reorganizing the data.
You must modify the report according to the circumstances.
REPORT RPTT0000 .
TABLES: PCL1, PCL2.
INCLUDE RPCLST00.
INCLUDE RPC1B100.
INCLUDE RPC2B200.
INCLUDE RPPPXD00.
INCLUDE RPPPXD10.
INCLUDE RPPPXM00.
SELECT-OPTIONS: SELPERNR FOR B1-KEY-PERNR.
PARAMETERS: JAHR LIKE B2-KEY-PABRJ DEFAULT SY-DATUM+0(4).
PARAMETERS: PERIODE LIKE B2-KEY-PABRP DEFAULT SY-DATUM+4(2).
PARAMETERS: DATUM LIKE PDC00-LDATE DEFAULT SY-DATUM.
PARAMETERS: UPDATE.
DATA: SW_NOTWENDIG.
DATA: BEGIN OF PDPKEY.
INCLUDE STRUCTURE PDC30.
DATA: END OF PDPKEY.
START-OF-SELECTION.
PERFORM INIT_SORTFIELDS.
SELECT * FROM PCL1 WHERE RELID EQ 'B1'
AND SRTFD BETWEEN SRTFDLOW AND SRTFDHIGH
AND SRTF2 EQ 0.
B1-KEY = PCL1-SRTFD(8).
CHECK SELPERNR.
KEYTAB = PCL1-SRTFD.
APPEND KEYTAB.
ENDSELECT.
END-OF-SELECTION.
LOOP AT KEYTAB.
RP-INIT-BUFFER.
B1-KEY-PERNR = KEYTAB-SRTFD(8).
B2-KEY-PERNR = KEYTAB-SRTFD(8).
B2-KEY-PABRJ = JAHR.
B2-KEY-PABRP = PERIODE.
B2-KEY-CLTYP = '1'.
IF UPDATE EQ 'X'.
PERFORM ENQUEUE_B1.
IF SY-SUBRC NE 0.
WRITE: / B1-KEY-PERNR, 'Cluster B1 gesperrt'(001).
CHECK SY-SUBRC EQ 0.
ENDIF.
ENDIF.
RP-IMP-C1-B1.
RP-IMP-C2-B2.
PERFORM MODIFY_B1.
IF SW_NOTWENDIG EQ 'X'.
IF UPDATE EQ 'X'.
RP-EXP-C1-B1.
RP-EXP-C2-B2.
PERFORM UPDATE.
WRITE: / B1-KEY-PERNR, 'korrigiert'(T01).
ELSE.
WRITE: / B1-KEY-PERNR, 'notwendig'(T02).
ENDIF.
ELSE.
WRITE: / B1-KEY-PERNR, 'ok'(T03).
ENDIF.
CALL FUNCTION 'DEQUEUE_ALL'.
ENDLOOP.
FORM INIT_SORTFIELDS.
READ TABLE SELPERNR INDEX 1.
CHECK SY-SUBRC EQ 0.
SRTFDLOW+0(8) = SELPERNR-LOW.
DESCRIBE TABLE SELPERNR LINES SY-TFILL.
READ TABLE SELPERNR INDEX SY-TFILL.
IF NOT SELPERNR-HIGH IS INITIAL.
SRTFDHIGH+0(8) = SELPERNR-HIGH.
ELSE.
SRTFDHIGH+0(8) = SELPERNR-LOW.
ENDIF.
ENDFORM.
FORM ENQUEUE_B1.
DATA: SRTFD LIKE PCL1-SRTFD.
SRTFD = B1-KEY-PERNR.
CALL FUNCTION 'ENQUEUE_EPCLB1'
EXPORTING
RELID = 'B1'
SRTFD = SRTFD
EXCEPTIONS
FOREIGN_LOCK = 1
SYSTEM_FAILURE = 2 .
ENDFORM.
FORM UPDATE.
PERFORM PREPARE_UPDATE USING ' '.
INCLUDE RPPPXU00.
COMMIT WORK.
RP-INIT-BUFFER.
ENDFORM.
FORM CLEAN TABLES TAB.
DATA: LDATE LIKE MT-LDATE.
LOOP AT TAB.
LDATE = TAB.
IF LDATE LT DATUM.
DELETE TAB.
SW_NOTWENDIG = 'X'.
ENDIF.
ENDLOOP.
ENDFORM.
FORM MODIFY_B1.
CLEAR SW_NOTWENDIG.
PERFORM CLEAN TABLES: MT, DT, MTB1, DTB1, NT1, NT2, NCT, ERT.
ENDFORM.
Additional key words
Reorganization
Reorganizing
Retroactive accounting difficulty
No comments:
Post a Comment