Chapter 05 Β· Core Classic ABAP
Data Dictionary (SE11)
The central repository where SAP defines every table, data element, and structure β and how modern Cloud developers work with it too.
Welcome to Part 2 of the series. From this chapter onward, we enter the world of Core Classic ABAP β the part of the ABAP ecosystem that still powers roughly 70 percent of SAP jobs today.
Up to now, you have stored data in variables. But variables live only as long as the program is running. The moment you exit, everything is gone. Real enterprise systems need data that persists β that survives program runs, system restarts, and years of business operations.
That is where the ABAP Data Dictionary comes in. It is SAP’s central repository for defining every type and every table used across the entire system. When you write a SELECT statement in Chapter 6, the table you query was defined here. When you create a custom report that stores its output, the structure of that output was defined here. The Data Dictionary is the foundation of everything that stores data in SAP.
π― Who Is This Chapter For?
This is a pivotal chapter because the Data Dictionary is where the free and paid paths diverge the most. Here is how to read it:
- If you are on the FREE BTP Trial β you cannot access SE11. Instead, you will learn the concepts of the Data Dictionary and see how they map to modern ABAP Cloud equivalents like CDS Views and DDIC-based types available in Eclipse ADT. You will still understand every concept β just through a different lens.
- If you have PAID SAP access β you will do the full SE11 work. You will create domains, data elements, structures, and transparent tables directly in SAP GUI, then use them from ABAP Cloud (via released CDS Views) and Classic ABAP (via SELECT).
- Both paths teach the same core ideas: how SAP separates type definitions from data storage, why domains and data elements exist, and what makes a transparent table different from a structure. The tooling differs; the thinking is identical.
π― What You Will Learn in This Chapter
- What the ABAP Data Dictionary is and why SAP has a central repository
- The three-level type model: domain β data element β table field
- How to create custom data elements and domains in SE11 (paid path)
- How to create a custom transparent table (paid path)
- How the Data Dictionary maps to CDS Views and ABAP Cloud concepts (free path)
- The difference between a structure and a transparent table
- How tables are activated and what activation means for DDIC objects
π§ Which Path Should I Choose?
Before starting, decide which path applies to you. This chapter is where the two paths differ most.
Two learner types β find yourself
What You Can Do With Each Path
| Task | π’ Free Path (BTP Trial) | π΅ Paid Path (SAP System) |
|---|---|---|
| Access SE11 | β Not available | β Full access |
| Create domains and data elements | β Not available | β Via SE11 |
| Create transparent tables | β Not available | β Via SE11 |
| Work with CDS Views | β Full support in Eclipse ADT | β Full support |
| Use ABAP DDIC types | β Via released DDIC types | β Full DDIC access |
| Define custom tables in Cloud | β οΈ Limited β through RAP business objects | β Full control via SE11 |
| Editor | Eclipse ADT | SAP GUI + Eclipse ADT |
π What is the ABAP Data Dictionary?
The ABAP Data Dictionary, also called the DDIC, is SAP’s central repository of type definitions. Every table, every field, every structure used in the entire SAP system is defined here. Nothing is stored anywhere else.
Think of it this way:
The Data Dictionary does four essential jobs:
- Defines types: What is a customer ID? What is an order date? These definitions live here.
- Defines tables: Where customer data is stored, with which fields, in which order.
- Enforces consistency: Every program across the system uses the same definition, so data is uniform.
- Integrates with the database: When you create a transparent table in the DDIC, SAP automatically creates the corresponding table in the underlying database (HANA, Oracle, etc.).
The three-level type model
Before you create anything, you must understand how SAP structures its type definitions. It uses a three-level hierarchy:
| Level | What it is | Example |
|---|---|---|
| Domain | Defines the technical characteristics: data type and length | Character, length 10 |
| Data Element | Adds semantic meaning: field labels and documentation | “Customer ID” (uses the domain) |
| Table Field | A field in a table, typed by a data element | “CUSTOMER_ID” field in a customer table |
Why three levels? Because SAP separates technical definitions from business definitions. The domain says “this is a 10-character field”. The data element says “this is a Customer ID and the label is Customer ID”. This separation lets you reuse the same domain across many data elements.
ZDOM_CHAR10 (character, 10 characters) can be reused by a dozen data elements: Customer ID, Vendor ID, Product Code, Employee Number. Each data element has its own meaning and labels, but shares the underlying technical definition.
DDIC Concepts in Cloud
In ABAP Cloud, you do not create DDIC objects manually. Instead, you use released DDIC types provided by SAP and define your own types through CDS Views or ABAP Cloud types.
- Read about domains and data elements (concepts)
- See how CDS Views replace some DDIC work
- Use SAP-released DDIC types in your code
- Learn what you would do with SE11 if you had it
Full SE11 Access
You will create each DDIC object step by step, activate it, and see how SAP generates the underlying database table.
- Create a custom domain
- Create a data element on that domain
- Create a structure using data elements
- Create a transparent table and activate it
π₯οΈ The SE11 Transaction β Your DDIC Workspace
All Data Dictionary work happens in transaction SE11. This is one of the most-used transactions in all of SAP.
When you open SE11, you will see a simple screen with radio buttons for the type of object you want to work with:
- Database Table β Create or edit transparent tables
- View β Create database views, projection views, and other DDIC views
- Data Type β Create data elements, structures, and table types
- Type Group β Rarely used except in older code
- Domain β Create domains
- Search Help β Create F4 help dialogs
- Lock Object β For concurrency control
π¦ Step 1: Create a Domain (Paid Path)
A domain defines the technical characteristics of a field: its data type and length, and optionally a list of allowed values.
π΅ Paid Path (SE11)
In SAP GUI, type SE11 in the command field and press Enter.
Select the Domain radio button. Enter a name like ZDOM_CUST_ID. Click Create.
On the domain maintenance screen, set:
- Data Type: CHAR
- Length: 10
- Description: Customer ID Domain
Save and activate with Ctrl + F3.
In the Value Range tab, you can add a list of allowed values (for example, “A” = Active, “I” = Inactive). For a Customer ID, you usually skip this β the values are too numerous.
π’ Free Path (ABAP Cloud)
You cannot create a domain. In ABAP Cloud, the equivalent is to define a CDS View with a typed cast, or to use an SAP-released DDIC type that already exists. For example, the SAP-released data element BU_PARTNER serves the same purpose as a domain-plus-data-element for customer/vendor IDs.
π¦ Step 2: Create a Data Element (Paid Path)
A data element adds business meaning to a domain. It defines the field labels and documentation.
Go back to SE11. Select Data Type and enter ZDE_CUST_ID. Click Create.
Choose the Data Element radio button and click Continue.
In the Type Information section:
- Type: Domain
- Domain: ZDOM_CUST_ID
Go to the Field Labels tab and enter:
- Short: Cust. ID
- Medium: Customer ID
- Long: Customer Identification Number
- Heading: Customer ID
These labels appear automatically in reports, screens, and F4 help dialogs. Save and activate.
ZDE_CUST_ID as its type, and it will automatically inherit the technical definition and labels.
π’ Free Path (ABAP Cloud)
The Cloud equivalent is a CDS View field with an annotation that provides a label. For example, in a CDS View, you can write:
@EndUserText.label: 'Customer ID'
key customer_id as CustomerId
This attaches the same business label to the field. The concept is identical β just expressed in CDS syntax.
ποΈ Step 3: Create a Structure (Paid Path)
A structure groups related fields. Unlike a table, a structure does not store data β it defines the shape of data that will be used somewhere else (as a parameter, a result, or part of a table).
In SE11, select Data Type and enter ZST_CUSTOMER. Click Create, then choose Structure.
Add these components:
customer_idTYPEZDE_CUST_IDcustomer_nameTYPECHAR50cityTYPECHAR30join_dateTYPEDATS
Save with Ctrl + S, activate with Ctrl + F3.
ZST_CUSTOMER and use it directly.
π’ Free Path (ABAP Cloud)
In ABAP Cloud, you have two options. You can declare a structure using TYPES: BEGIN OF ... END OF ... as you learned in Chapter 4, or you can use a CDS View as an “interface” for structure-like data. Both approaches work β the choice depends on whether the structure needs to persist or just describe in-memory data.
ποΈ Step 4: Create a Transparent Table (Paid Path)
A transparent table is the most important DDIC object. It corresponds directly to a physical table in the underlying database. When you activate it, SAP automatically creates the table in HANA, Oracle, SQL Server, or whichever database the system uses.
In SE11, select Database Table and enter ZCUSTOMER. Click Create.
On the initial screen:
- Delivery Class: A (Application table)
- Data Browser/Table View Maintenance: Display/Maintenance Allowed
Switch to the Fields tab. Add:
- MANDT β Type
MANDT(client field β required for application tables) - CUSTOMER_ID β Type
ZDE_CUST_ID(mark as Key field) - CUSTOMER_NAME β Type
CHAR50 - CITY β Type
CHAR30 - JOIN_DATE β Type
DATS
Click the Technical Settings button and set:
- Data Class: APPL0 (Master data)
- Size Category: 0
- Buffering: Buffering not allowed (for now)
Save with Ctrl + S. SAP will prompt you to create the database table β confirm. Activate with Ctrl + F3. The table now exists in both the DDIC and the underlying database.
ZCUSTOMER that can store actual data. In Chapter 6 you will use INSERT, UPDATE, and SELECT statements to work with it.
MANDT field of type MANDT. This is the client field, used for multi-tenancy. If you forget it, SAP will warn you and most tools will not work with the table.
π’ Free Path (ABAP Cloud)
In ABAP Cloud, you cannot create a transparent table directly. Instead, you define data as part of a RAP business object, which generates the persistence layer for you. This is covered in Chapter 17. For now, understand that the concept is the same β the difference is that Cloud enforces Clean Core principles, so tables are managed through business objects rather than raw DDIC work.
βοΈ Structure vs Table β What is the Difference?
This is one of the most common interview questions. Both group fields. The difference is entirely about whether data is stored.
| Aspect | Structure | Transparent Table |
|---|---|---|
| Stores data? | β No β describes a shape | β Yes β data persists |
| Exists in the database? | β No | β Yes β SAP creates it automatically |
| Used as a variable type? | β Yes β declare with DATA | β Yes β declare with DATA or SELECT INTO |
| Can have keys? | β No | β Yes β one or more key fields |
| Typical use case | Parameters, method signatures, temporary data | Storing master and transactional data |
| Naming convention | ZST_ | Z or ZT |
βοΈ How DDIC Concepts Map to ABAP Cloud
For free path learners, here is how every classic DDIC concept has a Cloud equivalent:
| Classic DDIC (SE11) | ABAP Cloud Equivalent |
|---|---|
| Domain | CDS View field type / cast expression |
| Data Element | CDS View field with @EndUserText.label |
| Structure | ABAP Cloud TYPES: BEGIN OF or CDS View interface |
| Transparent Table | RAP Business Object with managed persistence (Chapter 17) |
| Search Help | Value Help CDS Views with @Consumption.valueHelpDefinition |
| Lock Object | Managed RAP with built-in locking |
| View | CDS Views (Chapter 16) |
π§ What Just Happened Under the Hood
When you activate a transparent table, several things happen automatically:
| Stage | What SAP Does |
|---|---|
| DDIC entry | Stores the definition in the ABAP Data Dictionary |
| Database table | Issues a CREATE TABLE statement to the underlying database |
| Runtime type | Makes the type available for use in ABAP programs |
| Generic services | Enables the Table Maintenance Generator and Data Browser (SE16N) automatically |
| Version history | Records the activation as a version so you can roll back |
This is why SAP has such a powerful “single source of truth” model. Because everything is defined in one place and generated automatically, the DDIC, the database, and every program that uses the table are always in sync.
π Chapter Summary
- The ABAP Data Dictionary is SAP’s central repository for all type and table definitions.
- It uses a three-level hierarchy: domain β data element β table field.
- Domains define technical characteristics (type, length).
- Data elements add business meaning (labels, documentation).
- Structures group fields but do not store data.
- Transparent tables store data and are created automatically in the underlying database when activated.
- Every application table requires a MANDT field for client isolation.
- In ABAP Cloud, the same concepts exist as CDS Views, ABAP types, and RAP business objects.
- All DDIC work is done in transaction SE11 (Classic ABAP only).
π€ Interview Questions & Answers
Data Dictionary questions appear in nearly every ABAP interview. Know these answers cold.
The ABAP Data Dictionary (DDIC) is SAP’s central repository for defining all data types, tables, and views used in the system. Every table, field, and structure in SAP is defined here, ensuring consistency across the entire system.
It is important because it eliminates redundancy. Instead of each program defining its own version of what a “customer ID” is, the DDIC provides a single definition that every program references. This also automatically generates the underlying database tables when you create transparent tables.
A domain defines the technical characteristics of a field: its data type (CHAR, NUMC, INT, etc.), length, and any fixed value list. It says “this is a 10-character text field” but nothing about meaning.
A data element adds business meaning on top of a domain. It provides field labels (short, medium, long, heading) and documentation. It says “this 10-character field is a Customer ID and its label is ‘Customer ID'”.
You can reuse one domain across many data elements. This separation of technical and business definitions is a key DDIC design principle.
A transparent table stores data physically. It corresponds directly to a table in the underlying database (HANA, Oracle, SQL Server, etc.). When you activate a transparent table in SE11, SAP issues a CREATE TABLE statement to the database.
A structure does not store data. It is just a template that describes the shape of data β useful for passing parameters, defining method signatures, and describing in-memory variables.
Rule of thumb: if the data needs to survive after the program ends, use a table. If it is only needed while the program is running, use a structure.
MANDT is the client field. SAP systems support multiple clients (essentially separate logical databases) within one physical system. The MANDT field isolates data by client β so client 100 and client 200 can have tables with the same name but completely separate data.
Every application transparent table must have MANDT as the first key field. SAP automatically filters SELECT statements by the user’s client, so users only see their own client’s data. This is called “client isolation” and it is one of SAP’s core multi-tenancy mechanisms.
When you activate a transparent table in SE11, several things happen automatically:
- The DDIC stores the definition in the ABAP Data Dictionary
- SAP issues a
CREATE TABLEstatement to the underlying database - The runtime type becomes available to all ABAP programs
- The Data Browser (SE16N) and Table Maintenance Generator become available for the table
- A version is recorded for change history
If you later change the table and reactivate it, SAP issues an ALTER TABLE statement. Some changes (like adding fields at the end) are safe; others (like reordering keys) require data migration.
ABAP Cloud uses modern equivalents for all classic DDIC objects:
- Domains β CDS View field types and casts
- Data elements β CDS View fields with
@EndUserText.labelannotations - Structures β ABAP Cloud
TYPES: BEGIN OFor CDS View interfaces - Transparent tables β RAP Business Objects with managed persistence
- Search helps β Value Help CDS Views
The concepts are the same, but Cloud enforces Clean Core principles so you do not write raw tables directly. This makes Cloud systems upgrade-safe and future-proof.
π Practice Task for This Chapter
Complete the tasks for your path before moving to Chapter 6.
π’ Free Path (BTP Trial)
- Research and list 5 SAP-released DDIC data elements you can use in ABAP Cloud (for example,
BU_PARTNER,MATNR,VKORG). - Create a new class
ZCL_DDIC_CH5in your package. - Inside a method, declare variables using those SAP-released DDIC types.
- Write a comment above each variable explaining what the underlying DDIC data element represents.
- Output the field labels using
cl_demo_outputand take a screenshot.
π΅ Paid Path (SAP System)
- Complete all the free path steps above.
- Then open SE11 and create:
- A domain called
ZDOM_EMAIL(CHAR 100) - A data element called
ZDE_EMAILusing that domain, with labels “Email Address” - A structure called
ZST_CONTACTwith fields:contact_id,name(CHAR50),email(ZDE_EMAIL) - A transparent table called
ZCONTACTSwith MANDT, contact_id (key), name, and email
- A domain called
- Activate each object in order (domain first, then data element, then structure, then table).
- Open SE16N and try to display the new table (it will be empty). Take a screenshot.
Test: Kon Banega Crorepati?
5 questions. βΉ1 Crore. Prove you understood Chapter 5. No pressure β restart anytime.
Explore Our Instructor-Led SAP & IT Courses
Self-study works. But if you want guided training, real project practice, and placement support β here are the courses we offer. Book a free demo before you decide.
WhatsApp us