SAP ECC Data Dictionary and Repository Tables (DD02L, DD03L, T100, E070, TSTC)
This reference lists the SAP ECC 6.0 repository and dictionary tables that answer the questions developers and Basis admins ask every week: which table has table names, field lists, domain values, messages, transports and transaction codes. Each row gives key fields and the join you need.
| Table | Description | Key fields | Join to | Typical question it answers |
|---|---|---|---|---|
DD02L | SAP tables (dictionary header); TABCLASS = TRANSP, CLUSTER, POOL, VIEW, INTTAB (structure), APPEND | TABNAME, AS4LOCAL, AS4VERS | DD02T on TABNAME | Does table X exist and is it transparent? |
DD02T | Table short texts | TABNAME, DDLANGUAGE, AS4LOCAL, AS4VERS | DD02L on TABNAME | What is the description of table X? Which tables mention 'shipment'? |
DD03L | Table fields | TABNAME, FIELDNAME, AS4LOCAL, AS4VERS, POSITION | DD04T on ROLLNAME | List the fields of a table with KEYFLAG, ROLLNAME, DATATYPE, LENG |
DD03T | Field short texts (only for fields without a data element) | TABNAME, DDLANGUAGE, AS4LOCAL, FIELDNAME | DD03L on TABNAME, FIELDNAME | Text of a field typed directly with a predefined type |
DD04L | Data elements | ROLLNAME, AS4LOCAL, AS4VERS | DD01L on DOMNAME | Which domain does data element X use? |
DD04T | Data element texts (DDTEXT, REPTEXT, SCRTEXT_S, SCRTEXT_M, SCRTEXT_L) | ROLLNAME, DDLANGUAGE, AS4LOCAL, AS4VERS | DD03L on ROLLNAME | Field labels as shown on screens and in SE16 |
DD01L | Domains | DOMNAME, AS4LOCAL, AS4VERS | DD04L on DOMNAME | Data type, length and value table of a domain |
DD01T | Domain texts | DOMNAME, DDLANGUAGE, AS4LOCAL, AS4VERS | DD01L on DOMNAME | Description of a domain |
DD07L | Domain fixed values | DOMNAME, AS4LOCAL, VALPOS, AS4VERS | DD07T on DOMNAME, VALPOS | What are the allowed values of a status field? |
DD07T | Domain fixed value texts | DOMNAME, DDLANGUAGE, AS4LOCAL, VALPOS, AS4VERS | DD07L on DOMNAME, VALPOS | What does value 'R' of TRSTATUS mean? |
DD08L | Foreign keys (check table relationships) | TABNAME, FIELDNAME, AS4LOCAL, AS4VERS | DD03L on TABNAME, FIELDNAME | Which check table validates this field? |
DD09L | Technical settings: data class TABART, size category TABKAT, logging flag PROTOKOLL | TABNAME, AS4LOCAL, AS4VERS | DD02L on TABNAME | Is change logging switched on for this table? |
DD12L | Secondary indexes, header | SQLTAB, INDEXNAME, AS4LOCAL, AS4VERS | DD17S on SQLTAB, INDEXNAME | Which secondary indexes exist on a table, and are they unique? |
DD17S | Secondary index fields | SQLTAB, INDEXNAME, POSITION, AS4LOCAL, AS4VERS | DD12L | Fields of index Z01 in order |
TADIR | Object directory | PGMID, OBJECT, OBJ_NAME | TDEVC on DEVCLASS | Which package and original system does an object belong to? |
TDEVC | Packages (development classes) | DEVCLASS | TADIR on DEVCLASS | Software component and parent package of a package |
TSTC | Transaction codes | TCODE | TSTCT on TCODE; TRDIR on PGMNA | Which program runs transaction X? |
TSTCT | Transaction code texts | SPRSL, TCODE | TSTC on TCODE | Find a transaction by its description |
TRDIR | Program directory (SUBC program type, CNAM, UNAM) | NAME | TADIR on OBJ_NAME (OBJECT PROG) | Who created or last changed a program? |
TFDIR | Function modules (PNAME function pool, FMODE remote flag) | FUNCNAME | TADIR via function group | Which function group holds a function module and is it RFC-enabled? |
T100 | Messages (TEXT with placeholders &1 to &4) | SPRSL, ARBGB, MSGNR | T100A on ARBGB | What is the text of message M7 021? |
T100A | Message classes (message IDs) | ARBGB | T100 on ARBGB | Who owns message class ZSD? |
E070 | Transport request and task headers (TRFUNCTION K workbench, W customizing; TRSTATUS D modifiable, R released) | TRKORR | E071 on TRKORR; E07T on TRKORR; E070 STRKORR for parent request | Who owns a request, when was it released? |
E071 | Objects in requests and tasks | TRKORR, AS4POS | E070 on TRKORR | Which transports contain program ZFOO? |
E07T | Short texts of requests | TRKORR, LANGU | E070 on TRKORR | Find a transport by its description |
DBTABLOG | Table change logs (needs logging flag in DD09L and profile parameter rec/client) | LOGDATE, LOGTIME, LOGID | TABNAME to DD02L | Who changed a customizing table entry? (read through SCU3) |
CDHDR | Change document header | MANDANT, OBJECTCLAS, OBJECTID, CHANGENR | CDPOS on same keys | Who changed this material or purchase order, and when? |
CDPOS | Change document items (VALUE_OLD, VALUE_NEW) | MANDANT, OBJECTCLAS, OBJECTID, CHANGENR, TABNAME, TABKEY, FNAME, CHNGIND | CDHDR | Old and new value of a changed field |
TDDAT | Table authorization groups (CCLASS) | TABNAME | DD02L on TABNAME | Which authorization group (S_TABU_DIS) protects a table in SE16 or SM30? |
Key fields shown exclude the client field where a table is client-dependent (CDHDR and CDPOS keep MANDANT because it is part of the documented key). Most DD tables are cross-client. Read them with SE16N or SE11; avoid direct database selects on CDPOS without OBJECTCLAS and OBJECTID because the table is large.
Want these questions answered by query, not by hand?
We can set up read-only queries over your ECC repository tables so developers get transport, object and change history answers in one step.
Optional. The tool and every export work without this. No spam.
How to use it
Search the table for the question you have, for example "transport" or "message". Then open the table in SE16N with the key fields shown. Dictionary tables keep several versions of each object, so filter AS4LOCAL = A to get only the active version, otherwise you see inactive and backup rows too. For texts, always filter the language field (DDLANGUAGE, SPRSL or LANGU). If you need the full field list of a table including descriptions, join DD03L to DD04T on ROLLNAME rather than reading DD03T, because most fields take their text from the data element.
- SE11: dictionary display, the safe way to read structure
- SE16N: data browser for these tables
- SE91: maintain messages in T100
- SE09 / SE10: transport organizer over E070 and E071
Worked example: all fields of VBAK with labels
In SE16N, read DD03L with TABNAME = VBAK and AS4LOCAL = A, sorted by POSITION. Rows with FIELDNAME starting with .INCLUDE or .APPEND are include markers, not fields; skip them or follow their PRECFIELD. For each remaining row, ROLLNAME is the data element: read DD04T with that ROLLNAME, DDLANGUAGE = E and AS4LOCAL = A to get SCRTEXT_M as the label. KEYFLAG = X marks primary key fields (MANDT and VBELN for VBAK). In ABAP, function module DDIF_FIELDINFO_GET returns the same result in one call and handles includes for you, which is the better choice inside programs.
Gotchas
DD03T only holds texts for fields without a data element, so an empty result there is normal. Pooled and cluster tables appear in DD02L but cannot be joined in Open SQL in ECC. E071 lists objects at the level they were recorded: a single changed function module shows as LIMU FUNC and a changed report or include source as LIMU REPS, not R3TR PROG, so search both PGMID R3TR and LIMU entries. DBTABLOG is filled only if DD09L-PROTOKOLL is set for the table and rec/client includes the client; many customizing tables are logged, application tables are not. T100 texts use &1 to &4 or & placeholders filled at runtime.
How to check the result in the system
Compare your SE16N result with SE11 for the same object: field count and keys should match the active version. For transports, SE09 or SE01 with the request number shows the same objects as E071. For messages, SE91 with the message class and number shows the T100 text in each language. For transaction codes, SE93 shows the TSTC program and screen.
Frequently Asked Questions
Which SAP table stores table names and descriptions?
DD02L holds the list of tables with their class (transparent, cluster, pool, view, structure), and DD02T holds the description per language. Read DD02T with DDLANGUAGE = E and AS4LOCAL = A, and search DDTEXT with wildcards to find tables by description.
Which SAP table stores table fields?
DD03L lists every field of a table with position, key flag, data element (ROLLNAME), data type and length. Field labels come from DD04T through the data element. Filter AS4LOCAL = A for the active version, and use DDIF_FIELDINFO_GET in ABAP when you need the resolved list including includes.
Which SAP table stores error messages?
T100 stores message texts by language (SPRSL), message class (ARBGB) and number (MSGNR). T100A holds the message classes. Long texts for messages are stored as documentation, not in T100; display them in SE91 or through the message long text button.
Which table stores transport requests and transaction codes?
E070 holds transport request and task headers (owner, type, status, date), E071 the objects in each request and E07T the descriptions. Transaction codes are in TSTC with the program and screen, and TSTCT holds their texts. SE93 is the maintenance transaction for TSTC.
If you want developers and support staff to ask your SAP ECC repository questions such as "which transports touched this table" in plain English on your own servers, we can set that up.
Related Tools
SAP ECC ABAP Runtime Errors (ST22 Dumps) and Error Log Transactions Reference
The ST22 dumps you meet most in SAP ECC, with the exception class, usual cause and first fix, plus the transactions that show every other error log.
SAPSAP ECC MRP Tables and MRP Element (DELKZ) Codes Reference
The SAP ECC tables behind MRP (planning file, MRP areas, controllers, groups, planned orders) and the DELKZ codes for each MRP element with its source table.
SAPSAP ECC Shipment and Shipment Cost Tables Reference (VTTK, VTTP, VFKK, VFKP)
Tables and transactions for SAP LE-TRA shipments and shipment costs, with key fields and the join path from delivery to shipment cost document.
SAPSAP IDoc and ALE Transactions, Tables and Programs Reference
One searchable list of the transactions, tables and standard programs an SAP integration developer uses to build, monitor and repair IDoc and ALE interfaces.
More Developer Tools tools
See all- SAP ECC Enhancement Transactions and Exit Tables Reference (SMOD, CMOD, SE18, MODSAP, SXC_EXIT)
- SAP ECC Background Job History ABAP Query Generator (TBTCO + TBTCP)
- SAP ECC Background Job Creation ABAP Generator (JOB_OPEN, SUBMIT, JOB_CLOSE)
- SAP ECC IDoc Segment Data Reader ABAP Generator (EDIDC, EDID4, EDIDS)
- SAP ECC Custom Inbound IDoc Function Module Skeleton Generator
- SAP ECC BAPI_SALESORDER_CHANGE ABAP Generator
- SAP ECC BAPI_PO_CHANGE ABAP Generator
- SAP ECC BAPI_MATERIAL_SAVEDATA Material Creation ABAP Generator
- SAP ECC BAPI_ACC_DOCUMENT_POST G/L and Vendor Posting ABAP Generator
Keep exploring
Free tools
- SAP ECC Table Structure and Message Text Query Generator (DD03L, DD04T, T100)Choose a mode to generate a query that lists a table's fields with labels, finds transparent tables by description, or returns a message text from T100.
- SAP Transport Request Tables Reference (E070, E071, E07T)Key fields of the SAP transport tables E070, E07T, E071, E071K, E070C and TADIR, with the TRFUNCTION and TRSTATUS values and the joins to report on transports.
- SAP Core Tables and Key Fields ReferenceA searchable lookup of the SAP tables ABAP developers use most, with their primary key fields and owning module.