List of SAP® Change Object Classes (CDHDR and CDPOS)
When talking about data analysis in the area of SAP®, you will inevitably come across to the big advantage of the change protocol in SAP® systems. In today's blog post I will give you the change raw tables and describe an important column - the object class of the changes (OBJECTCLASS) and where all occurrences of this field are stored.
The constellation of the tables corresponds to the SAP standard approach - separation of the information in header and item table. The classic head information, as changed by, changed on, are kept in the table CDHDR (Changes header). The information what exactly has changed and how the old and new value looks like is stored in the CDPOS (changes position). These two tables are connected by the change number. However, keep in mind that within one change document several changes can be made at the same time and therefore multiple entries may be provided in the positions to one record in the header table.
The assumption that the change header table only contains the changes of header tables (e.g. purchase order header "EKKO") and that the change position table only contains the changes of positions (e.g. purchase order items "EKPO") is FALSE.
A very important and true statement is that not all changes for all SAP ® fields are automatically logged. It is possible by customizing adjustments to enable it, but only the most important changes are recorded by default. You can find more details in the two-part blog post "What tables and field changes are actually getting logged, and where?".
Field/Column “Object Class” (OBJECTCLASS)
This column categorizes the changed SAP ® entries. Each object class collects the changes in a particular SAP ® area. The class "EINKBELEG" for example, is responsible for all changes of purchasing documents.
Why is the content of the object class so important?
Two reasons - on the one hand, the change tables are very large and by the restriction to a particular object class, the amount of data can be effectively filtered. On the other hand, the object class defines the contents of the column "Object value" (OBJECTID). In the object class "EINKBELEG", the object value contains the purchase order document number of the changed purchase order. When making changes to vendor master data (object class "KRED"), the content of the object value would be the vendor number.
A list of all available object classes in your SAP® system can be found in the table "TCDOB". The following figure provides a summary of this table and shows the object class "BELEG" with the related financial tables, which are recorded in this change object class.
Since all "T" system tables contain specific items (Customizing tables), the object classes may vary per SAP® system. This should not be the case in the main object classes, but this table should always be considered system-specific.
The change tables provide a number of analytical approaches; however you must be able to interpret the contents of the tables. The CDHDR and CDPOS are not very wide tables (little number of columns), but the number of entries is huge. Filtering on the object class makes the amount of data manageable and facilitates the interpretation of the content. The table "TCDOB" can provide entry into the world of change object classes.