- 1. When you create another cost center interval which directly borders on an existing one, the intervals are not grouped even if the existing interval was used as a reference and no manual changes were made before saving. A check for the table CSKS with SE16 shows that the field company code is empty in the new interval.
- 2. Cost centers without company code assignment. The creation is as described above.
Because of this problem it is possible that the following termination occurs in systems with Release 3.0 and later:
ERROR_IN_COIOB in program LKALPF20, FORM routine GET_ORGUNITS_FROM_COIOB.
In this case, execute only the attached report ZKCORR04.
Key words:
master data, cost center, interval, analysis period, company code, controlling area
Program: SAPMKMA1
Transaction: KS01
- There is a 1:1 allocation of controlling area and company code, or cross-company cost accounting is used. However, only one company code is currently allocated to the controlling area.
- The newly created cost center interval does not correspond to a posting period according to the fiscal year variant.
Correction for Release 3.0A
The error does not occur anymore as of Release 2.2I since another FORM routine is used there.
You can also use correction report ZKCORR04 for Release 4.0.
For Release 2.2A to 2.2H, you can implement the correction in advance as follows.
Procedure:
- 1. Implement the correction.
- 2. Execute below report ZKCORR04 to correct the wrong cost center master data.
You need not implement the note if you have already implemented Note 48183 or 30977.
**********************************************************************
REPORT ZKCORR04 .
TABLES: TKA01, TKA02, CSKS.
PARAMETER TESTRUN LIKE KREO-TESTLAUF DEFAULT 'X'.
DATA: BEGIN OF KOKSTAB OCCURS 20,
KOKRS LIKE TKA02-KOKRS,
BUKRS LIKE TKA02-BUKRS,
END OF KOKSTAB.
DATA: BEGIN OF BUKRS_TAB OCCURS 20,
BUKRS LIKE TKA02-BUKRS,
END OF BUKRS_TAB.
* Read all controlling areas
SELECT * FROM TKA01.
MOVE-CORRESPONDING TKA01 TO KOKSTAB.
APPEND KOKSTAB.
ENDSELECT.
* Read company codes for controlling areas
LOOP AT KOKSTAB.
CLEAR BUKRS_TAB.
REFRESH BUKRS_TAB.
SELECT * FROM TKA02 WHERE KOKRS = KOKSTAB-KOKRS.
BUKRS_TAB-BUKRS = TKA02-BUKRS.
APPEND BUKRS_TAB.
ENDSELECT.
DESCRIBE TABLE BUKRS_TAB LINES SY-TFILL.
IF SY-TFILL = 0 OR
SY-TFILL > 1.
DELETE KOKSTAB.
ELSE.
READ TABLE BUKRS_TAB INDEX 1.
KOKSTAB-BUKRS = BUKRS_TAB-BUKRS.
MODIFY KOKSTAB.
ENDIF.
ENDLOOP.
* find missing lines in DB-table CSKS
LOOP AT KOKSTAB.
WRITE: / 'Scanning controlling area ', KOKSTAB-KOKRS, ' ...'.
SELECT * FROM CSKS WHERE KOKRS = KOKSTAB-KOKRS
AND BUKRS NE KOKSTAB-BUKRS.
WRITE: / ' cost-center', CSKS-KOSTL.
IF TESTRUN = 'X'.
WRITE 'not modified (test run)'.
ELSE.
CSKS-BUKRS = KOKSTAB-BUKRS.
UPDATE CSKS.
WRITE: 'modified with company-code ', KOKSTAB-BUKRS.
ENDIF.
ENDSELECT.
IF SY-SUBRC <> 0.
WRITE: / ' no inconsistencies found.'.
ENDIF.
ENDLOOP.
No comments:
Post a Comment