ERPClimb logoERPClimb
SAP tableObjectCDPOSModuleABAP

CDPOS table — Change Document Items

CDPOS stores field-level change-document items linked to CDHDR. Each item identifies the changed table or structure, record key, field, change type, and old/new value where available. It is the detailed evidence behind a change-document header, but data interpretation requires the same OBJECTCLAS, OBJECTID, and CHANGENR context rather than searching field names in isolation.

A consultant-focused reference for CDPOS covering its purpose, key fields, joins, safe query restrictions, proof steps, release context, ownership and recurring interpretation traps.

Published 20 Sept 2026· 694 words

What it stores

CDPOS stores field-level before-and-after values belonging to a change-document header. Each row must be interpreted using the complete technical key and the application process that writes it. A consultant should first establish whether the row represents current state, a dated master-data slice, a document item, a history event, an index entry or a compatibility representation. Organizational levels, validity dates, fiscal years, ledgers, languages, statuses and sequence numbers are part of the grain whenever those dimensions exist. The table should be read as evidence of application behavior, not as an isolated spreadsheet. Confirm the owning business object and configuration before deciding that a value is wrong.

Key fields

Read OBJECTCLAS, OBJECTID and CHANGENR together with TABNAME, TABKEY and FNAME to identify which field change belongs to which recorded business object. Tab keys are encoded and must be interpreted using the affected table definition.

  • OBJECTCLAS/OBJECTID/CHANGENR — link the item to its change-document header.
  • TABNAME — changed table or structure.
  • TABKEY — changed record key as captured by the framework.
  • FNAME — changed field.
  • CHNGIND — change type.
  • VALUE_OLD/VALUE_NEW — old and new values where recorded.

How it joins the data model

Correlate change items with CDHDR using object class, object ID and change number (and client when relevant). CDPOS can contain multiple changed fields per change header, so joining and then counting headers may multiply events.

  • OBJECTCLAS, OBJECTID and CHANGENR to CDHDR
  • TABNAME to DD02L for Dictionary metadata
  • TABNAME and FNAME to DD03L for field metadata

How to read it safely

When investigating an unexpected material, vendor or sales-order field change, start with the business object and its change-document class. Read the CDHDR time/user context, then isolate the CDPOS field and old/new values to avoid blaming unrelated updates.

How to prove it in the data

Take one reproducible example from the relevant SAP screen, report or application log. Record its full displayed key, organizational context, key date, language and status. Locate the matching CDPOS row using those values, then follow the documented parent and child joins without dropping key components. Compare the result using the same key date and ledger. When values differ, test for leading-zero conversion, multiple validity slices, inactive history, parallel ledgers, fiscal-year boundaries, archived data and asynchronous replication. Save the read-only evidence before escalating. If the row is wrong, reproduce the maintenance path in a non-production system and route the fix to the application owner rather than changing the table.

ECC vs S/4HANA

CDPOS remains the standard field-level change-document store in S/4HANA for applications using the classic change-document framework. Some applications additionally expose change history through dedicated logs or CDS views, so CDPOS coverage is application dependent.

Common pitfalls

  • Selecting by one convenient identifier and silently mixing organizational units, years, ledgers, languages or validity periods.
  • Joining on a partial key or descriptive value and creating duplicates that appear to be legitimate business rows.
  • Ignoring inactive, deletion, reversal or status indicators and reporting retained history as current state.
  • Assuming this table is authoritative without checking S/4HANA simplification, Business Partner synchronization, Universal Journal, MATDOC, CDS views or an external cloud source.
  • Treating a missing row as proof that an event never occurred even though logging, replication, authorization and archiving scope can differ.
  • Updating table rows directly instead of correcting data through the supported transaction, app, API or migration process.

Whose problem this is

The functional owner establishes whether the change was authorized. ABAP/application support traces the change-document object and enhancement behavior, while security investigates confirmed unauthorized access.

Related SAP objects

Reviewed pages this object connects to in the ERPClimb knowledge graph.

Source: ERPClimb — https://erpclimb.com/sap-tables/cdposERPClimb is an independent platform and is not affiliated with SAP SE. Reference pages are written and reviewed by SAP consultants for learning and troubleshooting.