There are hundreds, if not thousands, of different objects in SAP. To take Finance alone, we can create, maintain and process GL accounts, financial documents, cost centres, profit centres, fixed assets and so forth.
But the creation of the object is not the only step in its lifecycle. It can also be changed and, rarely, deleted. Some of the changes can have serious consequences on linked processes. When that happens, the question arises among business users and the support team: who did this and why did they make that change?
While the question “why” remains solely on the conscience of the responsible person, SAP often has the ability to tell “who, when and what” changed. Many objects in SAP ERP have “Change documents” listed somewhere in the menu or on the transaction screen itself.
But what if you need to track changes for multiple objects at one time?
It is easy for some objects. For example, you can track changes for Vendor and Customer Master Records using transaction codes S_ALR_87012089 and S_ALR_87012182 respectively.
However, it is not possible for some other objects. For example, you will not find standard reports to track changes on multiple Cost Centres or FI documents, though you can see changes for individual objects.
Here is the time for some technical wheeziness to come into play.
SAP stores changes for most of the standard objects in 2 tables: CDHDR and CDPOS. Changes in SAP’s terms are also documents. That’s why each change has header (CDHDR) and items (CDPOS). Now, looking into the tables CDHDR and CDPOS, you will be able to see who, what and when changed.
Now, this is a place to hold up a big warning sign.
Never ever, try to run reports on tables CDHDR and CDPOS without a proper understanding of how information is stored there. Determine first, what your object’s class and ID are, and how ID is generated. Table TCDOB can help you in this.
For example, changes in Cost Centres are recorded with Object Class KOSTL and Object ID consisting of concatenated Controlling Area and Cost Centre code. At the same time, changes in Bank master data are recorded with Object Class BANK and Object ID consisting of concatenated Client number, country and bank key. Don’t forget in the latter case that the SAP field for country code is 3 characters long, so expect a space between the country code and bank key if you use “standard” country codes like GB, DE, ZA or US.
Now, when you have figured out the rules, you can write a short specification for the developer and write a report showing the changes in object of interest.
You may ask, why not use simpler tools like SAP Query or Quick Viewer to link just these 2 tables together? I can tell you 3 reasons for that:
- CDPOS is a cluster table, which is not available as Data Source in these simple tools. That should be enough already.
- There are no easy ways to concatenate values in SAP Query or Quick Viewer to run selection only for particular objects. I doubt your user will type proper Object ID “200ZA 506009″ if he wants to see changes for bank 506009 in South Africa.
- On the flip side, there are no easy ways in SAP Query or Quick Viewer to split values from one technical field into several display fields. I doubt your user will be happy to see changes for the object “200ZA 506009″, while he is interested in changes for the bank 506009 in South Africa.