SAP tableObjectRSDIOBJModuleBW_ANALYTICS

RSDIOBJ table — RSDIOBJ - InfoObject Metadata Repository Table

RSDIOBJ is the core BW metadata table holding one row per InfoObject per object version (active, modified, delivered). It stores the technical shell of a characteristic or key figure - data type, length, category - not its master data values, not its navigation attributes, and not its aggregation behaviour, which live in separate characteristic- or key-figure-specific tables joined on the same InfoObject name and version.

This page covers what a row in RSDIOBJ actually represents and how it fits into the wider BW metadata model of characteristic-specific, key-figure-specific and generated master data tables. It focuses on the version-handling trap that causes most confusion when consultants read this table directly, and on what the table cannot tell them.

Published 15 Sept 2026· 1,220 words

What it stores

One row in RSDIOBJ represents a single InfoObject at a single object version - one characteristic, key figure, time characteristic, or unit, as it exists in one state of the BW metadata repository (active, modified, or delivered). The row carries the object's technical shell: its data type, internal length, output length, object category, and flags indicating whether that object has its own generated text table, attribute table, or hierarchy table. It does not carry master data values, and it does not carry the full characteristic-specific or key-figure-specific configuration such as the navigation attribute list, aggregation behaviour, or compounding chain - those sit in companion tables keyed the same way. Every place in BW that resolves an InfoObject name to a concrete technical field - query definition, InfoProvider generation, DataSource-to-InfoObject mapping in a transformation - ultimately traces back to a row here.

Key fields

  • INFOOBJECT - technical name of the InfoObject (characteristic or key figure)
  • OBJVERS - object version: A active, M modified, D delivered
  • IOBJTP - InfoObject category (for example characteristic, key figure, time characteristic, unit)
  • DATATYPE - the ABAP data type used to store the object's value (CHAR, NUMC, DEC, DATS, TIMS and similar)
  • LENG - internal length of the field
  • OUTPUTLE - output length used for display
  • CONVEXIT - conversion exit applied on input and output
  • TXTTABFL - flag indicating a generated text table exists for this object
  • ATRTABFL - flag indicating a generated attribute table exists for this object
  • HIETABFL - flag indicating a hierarchy table exists for this object

How it joins the data model

The table is keyed on INFOOBJECT and OBJVERS, and almost every join back to it uses both fields together, because an object can exist simultaneously as active, modified, and delivered, and reading the wrong version returns stale or half-transported settings. Characteristic-only and key-figure-only properties sit in separate tables joined the same way. Consumption by an InfoCube or a DSO is not a direct foreign-key join against RSDIOBJ - the InfoProvider's own metadata stores the InfoObject name as a value, and the InfoObject's dedicated master data, SID, text and hierarchy tables are generated dynamically using that name as part of their own table name, not through a link stored in RSDIOBJ itself.

  • RSDIOBJ-INFOOBJECT = RSDCHA-INFOOBJECT and RSDIOBJ-OBJVERS = RSDCHA-OBJVERS, characteristic-specific settings, only populated where IOBJTP marks a characteristic
  • RSDIOBJ-INFOOBJECT = RSDKYF-INFOOBJECT and RSDIOBJ-OBJVERS = RSDKYF-OBJVERS, key-figure-specific settings, only populated where IOBJTP marks a key figure
  • RSDIOBJ-INFOOBJECT appears as a value, not a foreign key, inside InfoCube and DSO metadata to record which characteristics and key figures that InfoProvider carries
  • RSDIOBJ-INFOOBJECT is used as the naming component of the generated master data, SID, text and hierarchy tables belonging to that object

How to read it safely

RSDIOBJ is a client-independent repository table, there is no MANDT field to restrict on, and a change to an InfoObject's definition is visible across every client on that system as soon as it is activated, with no client-copy step involved. The table has one row per InfoObject per version, so its size is modest compared with transaction or master data tables, but selectivity still matters when scanning it broadly: restrict on OBJVERS first, almost always to the active version A, before looking at anything else, because the same InfoObject name will also show up with M and D rows that reflect a saved-but-not-activated change or the originally delivered content version. Restrict further by namespace prefix (0 for SAP-delivered content, a custom prefix for local objects) when doing a wide search rather than looking up one known name.

How to prove it in the data

Symptom: a query shows a truncated or unexpectedly formatted value for a characteristic, and someone suspects the InfoObject's definition was changed but not deployed. Select RSDIOBJ where INFOOBJECT equals the object name and OBJVERS equals A to see the length, output length and data type that are actually live. Run the same selection with OBJVERS equal to M for the same object name; if that row exists and differs from the A row, a change has been saved in the modelling transaction but never activated, which explains why the live behaviour has not changed.

ECC vs S/4HANA

On S/4HANA systems that run embedded BW or that connect to a standalone BW/4HANA system, RSDIOBJ remains the native repository table for InfoObject metadata; it has not been replaced by a CDS compatibility view because InfoObjects are a BW modelling construct, not part of the ABAP CDS-based virtual data model that S/4HANA analytics also offers as a separate stack. The two worlds coexist rather than one replacing the other, and a characteristic defined as an InfoObject will always trace back to a row in this table regardless of which S/4HANA deployment option is in use.

Common pitfalls

  • Reading only the OBJVERS = A row and concluding a recent change had no effect, without checking whether an M row exists that was never activated - the change is sitting unreleased, not lost
  • Assuming this table exposes navigation attributes, aggregation behaviour, or compounding for a characteristic; that configuration lives in the characteristic-specific companion table, RSDIOBJ only holds the generic shell
  • Assuming the table is client-dependent and looking for a client filter that does not exist; RSDIOBJ metadata is repository-level and applies across every client the instant it is activated
  • Treating two InfoObjects that share master data through a reference characteristic as unrelated because RSDIOBJ alone does not make that sharing obvious at a glance; the shared master data table is what actually links them
  • Assuming a row's existence in RSDIOBJ means the InfoObject is actively used somewhere; the table lists every InfoObject ever created in the system, used in a live InfoProvider or not, so presence here proves nothing about usage
  • Editing RSDIOBJ directly through a generic table maintenance tool instead of the InfoObject modelling transaction; direct edits bypass consistency checks and generation steps and will desynchronise the object from its generated master data and SID tables

Whose problem this is

The BW modelling team or BI competence centre owns any change to what this table holds, and changes are made exclusively through the InfoObject maintenance transaction, never through direct table edits. Basis gets involved only if the underlying database object itself is corrupted or oversized. Functional consultants care about this table only as far as a characteristic's technical type or length is producing a visible reporting defect.

Related SAP objects

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

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