SAP tableObjectDD04TModuleABAP

DD04T table — DD04T Data Element Text Table

DD04T holds the language-dependent texts for ABAP Dictionary data elements: the short dictionary description, the report heading, and the short, medium, and long field labels used on screens. One row is one data element in one language in one version. It does not hold the data element's technical definition (type, length, domain) — that lives in DD04L.

DD04T is the ABAP Dictionary table carrying translatable labels and headings for data elements. This page covers how to read it against active versus inactive versions, how to trace a wrong field label back to the responsible data element, and the recurring mistake of confusing it with domain value texts.

Published 15 Sept 2026· 1,046 words

What it stores

One row in DD04T represents the language-specific text set for a single data element, at a single dictionary version. A data element is defined once (in DD04L) with its type, length and domain assignment, but its display texts are maintained separately, per language, in DD04T. Those texts are what a user actually sees: the short field label next to an input field, the column heading in a list, the description shown when browsing the dictionary in SE11 or SE80. Changing a data element's underlying type does not touch DD04T; changing what a user reads on the screen does. Because texts are translated independently of structure, a data element can exist correctly for years with an English row present and a French row missing, silently falling back to the fallback language wherever the program runs.

Key fields

  • ROLLNAME - name of the data element, the join key shared with DD04L and with DD03L-ROLLNAME on any table field that uses it
  • DDLANGUAGE - language key of this text row (one row per language the data element has been translated into)
  • AS4LOCAL - version status of the row, active entries carry the value A
  • AS4VERS - version number of the dictionary object, used to distinguish active texts from pending inactive changes
  • DDTEXT - short description of the data element as shown in dictionary maintenance transactions, not necessarily what appears on a screen
  • REPTEXT - heading text used as the column header in reports and list output
  • SCRTEXT_S - short field label, the shortest of the three screen label lengths
  • SCRTEXT_M - medium field label
  • SCRTEXT_L - long field label, the fullest text shown when screen space allows

How it joins the data model

  • DD03L-ROLLNAME = DD04T-ROLLNAME (join a table's field list to the label text of the data element each field uses)
  • DD02L-TABNAME = DD03L-TABNAME (start from a table name, get its fields, then reach DD04T through the field's data element)
  • DD04T-ROLLNAME = DD04T-ROLLNAME across languages (self-join on ROLLNAME and AS4LOCAL to compare the same label in two languages)
  • DD07T is the equivalent text table for domain fixed values, joined separately through the domain, not through DD04T

How to read it safely

DD04T is client-independent, like the rest of the ABAP Dictionary, so there is no MANDT field to restrict on. Always filter by ROLLNAME first, the table carries a row per data element per language and is large across a fully translated system. Restrict AS4LOCAL to the active indicator unless the goal is specifically to inspect a pending, not-yet-activated change. Restrict DDLANGUAGE to the language actually being investigated; scanning without a language filter returns every translation and makes the result hard to read. Never query this table expecting a MANDT-scoped answer — a text change here is visible in every client at once.

How to prove it in the data

Symptom: a field label reads correctly in German but shows the wrong text, or no text, in English. First identify the data element behind the field, either from the ABAP Dictionary field display or by joining DD03L to the table and field name. Then select DD04T where ROLLNAME equals that data element, DDLANGUAGE = 'E', and AS4LOCAL is the active indicator. Compare SCRTEXT_S, SCRTEXT_M and SCRTEXT_L against what the screen actually renders — if no row comes back for English, the translation was never maintained and the system is falling back to another language.

ECC vs S/4HANA

DD04T is unchanged in S/4HANA. It is a core ABAP Dictionary table, not a business data table, and none of the S/4HANA data model simplifications touch it. There is no CDS compatibility view layered over it because nothing about its structure or purpose needed to change; the Dictionary's own text handling for data elements works the same way it did in ECC.

Common pitfalls

  • Treating DDTEXT as the field label shown on screen. It is the dictionary description used in maintenance transactions; the actual screen labels are SCRTEXT_S, SCRTEXT_M and SCRTEXT_L.
  • Confusing data element text with domain value text. DD04T carries the label for the field itself; the texts for the fixed values a domain allows (dropdown entries) live in DD07T. Changing DD04T never changes what appears in a value help dropdown.
  • Editing DD04T directly through a table maintenance tool like SE16N instead of through SE11. Direct table edits bypass the Dictionary's own version and activation handling and can leave an inconsistent state between active and inactive rows.
  • Assuming a missing row means the data element does not exist. It usually means only that particular language was never translated; the data element is defined fine in DD04L, only the text for that language is absent.
  • Querying without restricting AS4LOCAL and finding two apparently conflicting rows for the same ROLLNAME and language. That is an active row and an inactive, not-yet-transported row coexisting, not a data error.
  • Assuming a text change here takes effect immediately for a running program without regenerating anything. Compiled screen and report objects that embedded the old text may need regeneration or a restart of the buffer before the new label is visible.

Whose problem this is

A wrong or missing field label is normally raised as a functional defect but the fix belongs to whoever owns the custom or modified data element, typically the ABAP developer who created it. Standard SAP data elements are not to be edited; if a standard label is wrong, the fix path is a modification or an object-specific text override, not a direct table change.

Related SAP objects

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

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