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:
Unfortunately, not all the objects in SAP leave traces in CDHDR/CDPOS. However, some of them leave traces in Transport Requests. How you can search through them? Read another article: How to track changes in SAP configuration objects.
You may also have some project-specific objects. How to track changes in these bespoke SAP objects? Read about this!
Do you want to know more? Subscribe to this site for future updates. Otherwise, ask questions through the You need our help page.
hi for SAP HR PA there’s report rpuaud00 for OM there’s another one; however you also need to customize what changes will be able to trace etc.
and probably lots more for all the different modules:( as far as i know there is no generic solution to cover all objects also probably because there is never the need to report on it:)
Thanks for your input, Joel! Much appreciated!
Options for config tables and development objects to find who/when changed.
1. For config objects like tables/views, you can search E071K with wild card (i.e., with ‘*’ ) search strings for transport request no., view/table name, key value.
For development objects like ABAP code, search table E071 with trans.req#, object type, object name.
Then copy the transport req.no’s and in SE03 txn, go get details of the transport request details.
However if the transport request has been deleted, you would be able to find its details.
2. You can also use txn SE03 – get details of transport request.
I find option 1 more convenient. This is commonly used by functional consultants for keeping track of changes being done for an object.
Thanks, Jagan, for the very useful addition!
how can i view the sap change documents in table or in a list? just need the answer badly. thanks.
Tables for change documents are listed directly in this post. Please read carefully.
Hi Expects
Somebody disabled object in a role, Now I would like to search who did that. Can you please tell me how can I investigate who did that.
How to find – who made changes to user id under the field “Last Changed On”
for Ex., in SU01 – i could see who made changes to a user’s id in “Last Changed On”
I need that to find for a 500+ users. So can i fetch that data from any Table?
[…] 5. How to track changes in SAP objects […]