SAP tableObjectRSDODSOModuleBW_ANALYTICS

RSDODSO table — RSDODSO Table Reference for BW DataStore Objects

RSDODSO is the header metadata table for classic DataStore objects (DSOs, formerly ODS objects) in SAP BW. Each row identifies one version of one DSO by technical name and version state (active, modified, delivery), plus who last changed it and when. It holds no actual DSO data, key fields, or record counts; those live in the DSO's own generated tables and child metadata tables.

This page covers RSDODSO, the table that stores the header-level definition and version state of classic DataStore objects in BW, and how it is used to confirm whether a DSO's active version matches what is actually running. It focuses on the version-state traps consultants fall into when reading this table mid-incident, and how RSDODSO relates to request monitoring, process chains, and the modelling workbench.

Published 15 Sept 2026· 1,124 words

What it stores

Each row in RSDODSO represents one version of the definition of a single classic DataStore object (previously called an ODS object) in a BW system. This is metadata, not data: the row records that a DSO with a given technical name exists, in which version state it currently sits, and when it was last changed. Every classic DSO created in the Data Warehousing Workbench gets an active version row here once activated, plus in-flight modified or delivery version rows while a change is being worked on or transported. The table does not hold the DSO's actual records, its key fields, its data fields, or its size; those live in the DSO's own generated data tables and in the field-mapping metadata tables that hang off this header.

Key fields

Only fields that are stable across BW releases and safe to rely on in an ad hoc read are listed here; internal type flags and activation settings sit in child tables, not in this header.

  • ODSOBJECT - technical name of the DataStore object (DSO)
  • OBJVERS - object version indicator: A active, M modified, D delivery
  • AEDAT - date of the last change to this object version
  • AENAM - user who made the last change
  • TIMESTMP - timestamp used by BW's internal version comparison logic

How it joins the data model

The joins that actually get written against RSDODSO are all keyed on ODSOBJECT, since that is the only stable identifier shared across the metadata and monitoring layers.

  • RSDODSO-ODSOBJECT = RSDIOBJ-INFOOBJECT for each DSO field that carries an InfoObject reference
  • RSDODSO-ODSOBJECT = RSMONICDP entries for the activation and SID generation steps monitored against the DSO
  • RSDODSO-ODSOBJECT = RSREQDONE entries recording which requests were loaded into or activated against the DSO
  • generated export DataSource follows the pattern 8<ODSOBJECT> and can be located in ROOSOURCE-OLTPSOURCE when the DSO feeds a downstream system

How to read it safely

RSDODSO is small, typically a handful of rows per DataStore object, so it is never a lookup performance problem by itself. It is cross-client metadata, like most Data Warehousing Workbench objects, so there is no client field to restrict on; the definition is identical in every client of that BW system. Always filter on OBJVERS = 'A' when the question is what is actually active and running; ignoring the version field is the most common way to pull in a stale modified row left behind mid-change, or a delivery row that only exists because a transport was released but never activated in the target. Avoid wildcard searches on ODSOBJECT across a whole naming range unless the project's namespace convention is well understood, since prefixes get reused across unrelated data flows over the years.

How to prove it in the data

Symptom: a DSO shows as inconsistent or will not activate in the modelling workbench, and someone insists no change was made. Selection: read RSDODSO where ODSOBJECT equals the DSO name, no version restriction, and look at the OBJVERS column across the returned rows. If both an A row and an M row exist for the same object, an un-activated change is sitting in the system, and that explains why downstream transformations further along the flow still see the old structure while the workbench shows a pending edit.

ECC vs S/4HANA

Classic DataStore objects and their RSDODSO header rows continue to exist in BW on HANA and in BW/4HANA for objects that have not been converted. BW/4HANA introduced the Advanced DataStore Object (ADSO) as the standard modelling object going forward, and ADSO metadata is stored separately, not in RSDODSO. Where a classic DSO has been migrated to ADSO, its RSDODSO entry effectively becomes historical; where it has not, RSDODSO remains the authoritative header for that object exactly as in classic BW.

Common pitfalls

Most of the wrong conclusions drawn from this table come from treating it as if it described data volume or runtime behaviour, when it only describes definition state.

  • Reading the active (A) version row in RSDODSO and assuming it reflects what is currently transported and running in a downstream system, without checking that system directly - the source system's active version can be ahead of what has actually landed in QA or production
  • Seeing a modified (M) version row and assuming a change is actively in progress, when it is often a leftover from someone opening the DSO in change mode years earlier and never activating or resetting it
  • Assuming default DSO behaviour (standard, write-optimized, direct update) without checking the actual type, since RSDODSO's header alone does not spell this out in an obviously named field, leading to wrong expectations about SID generation, the activation queue, or the change log
  • Deleting rows from this table directly to force-remove a DSO - this never removes the underlying data tables, activation queue, or change log, and leaves the system in a broken, half-deleted state that only the modelling transaction can clean up properly
  • Treating the row count in RSDODSO as the count of DSOs actually in active use - decommissioned or long-unused DSOs accumulate here for years with nothing forcing their removal
  • Expecting record counts or last-load timestamps for the DSO's actual data in this table - that information lives in the request and monitoring tables, not here

Whose problem this is

Ownership of a question against RSDODSO sits with the BW data architect or modeller responsible for the layer the DSO belongs to, not with a functional module team. Basis is only interested in the size of the underlying data tables, not the header metadata. A version-state discrepancy is a modelling or transport question, and gets escalated to whoever owns the LSA or LSA++ layering for that data flow.

Related SAP objects

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

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