ABAP DAY-2-SAP ABAP & Data Dictionary

On a journey of continuous learning 🚀 I share the concepts I learn daily through blogs. Learn concepts with me — one topic at a time.
#LearningInPublic #ContinuousLearning
SAP is a comprehensive enterprise software system used by organizations to manage business processes such as sales, purchasing, finance, human resources, and manufacturing. Instead of separate tools for each department, SAP provides a single integrated platform where all business data is connected. Understanding SAP is crucial for businesses to streamline operations and improve efficiency.
ABAP (Advanced Business Application Programming) is the programming language of SAP. It is used to create reports, interfaces, enhancements, and—most importantly—to work with SAP’s data layer. Mastering ABAP is essential for customizing SAP to meet specific business needs.
Before writing even a single line of ABAP code, it is critical to understand how SAP stores data, how that data is structured, and how it is protected. This article walks through those foundations step by step, using clear explanations, tables, and real-world thinking.
SAP System, SAP Logon, and Client Concept
To access SAP, users connect through a desktop application called SAP Logon. In many corporate or training environments, a Global Product VPN is required. This VPN ensures secure access to SAP servers, similar to connecting to an internal office network.
SAP Logon itself is not SAP. It is only a GUI (Graphical User Interface)—a window that allows your computer to communicate with SAP servers.
A client in SAP is a logical separation within the same SAP system. Think of it as a “mini-company” inside SAP. Each client has its own users, master data, transaction data, and configuration, even though the underlying system is the same.
| Component | What It Means | Important Note |
| SAP Logon | Front-end GUI | No business data stored locally |
| SAP System | Backend environment | Runs business logic |
| Client (e.g., 800) | Separate company/unit | Data is isolated |
👉 Key idea: SAP Logon 800 is just a gateway. All data is stored and processed on central SAP servers, usually backed by databases like SAP HANA.
SAP Transaction Codes (T-Codes)
SAP is very large, so navigating through menus would be slow. To solve this, SAP uses Transaction Codes (T-Codes)—short commands that directly open specific tools or screens.
For ABAP developers and consultants, some T-codes are used daily.
| T-Code | Tool | Purpose |
| SE11 | ABAP Dictionary | Create and manage data definitions |
| SE16 | Data Browser | View table data |
| SE80 | Object Navigator | Create packages and objects |
| SM30 | Table Maintenance | Maintain table entries |
T-codes improve speed and efficiency and are one of the first things SAP learners get comfortable with.

ABAP Data Dictionary (DDIC)
The ABAP Data Dictionary (DDIC) is the heart of SAP’s data architecture. It is a central repository that defines how data is structured, not the data itself.
DDIC acts as a bridge between ABAP programs and the database. Every table, field, data type, search help, and lock mechanism is defined here. Because it has global scope, any program or screen in SAP can use these definitions.
In simple terms:
👉 DDIC decides what data looks like, how long it is, and how it behaves—before data is ever stored.
Core Components of the ABAP Data Dictionary
Domains – Technical Definition
A Domain defines the technical attributes of a field. This includes data type, length, and allowed values. Domains ensure that technical definitions are reused consistently across the system.
For example, if multiple tables store a customer ID, all of them can use the same domain. If the domain changes, all related fields automatically follow.
| Attribute | Example |
| Data Type | NUMC |
| Length | 10 |
| Value Range | 0000000001–9999999999 |
Data Elements – Business Meaning
A Data Element gives semantic (business) meaning to a field. While a domain defines how data is stored, a data element defines what the data represents.
It also controls how the field appears on screens—labels, headings, and documentation.
| Domain | Data Element |
| ZCUST_ID | CUSTOMER_NUMBER |
This ensures that users see meaningful labels instead of technical field names.
Tables – Physical Data Storage
A Table is a physical database object that stores real business data. Tables are where customers, materials, orders, and invoices actually live.
SAP supports different table types, but most modern development uses transparent tables, which map directly to database tables.
| Concept | Description |
| Storage | Permanent |
| Purpose | Business data |
| Example | MARA (Material Master) |
Structures – Logical Grouping
A Structure looks like a table but does not store data permanently. It is used to group fields for temporary use—such as passing data between programs or formatting output.
| Usage | Example |
| Data exchange | BAPIRET2 |
| Program logic | Invoice display |
Table Types – Internal Tables
A Table Type defines the structure of internal tables, which exist only during program execution. These are essential for processing large datasets efficiently in ABAP.
| Feature | Meaning |
| Storage | Runtime only |
| Access Type | Standard / Sorted / Hashed |
| Purpose | Program logic |
Client (MANDT), Data Class, and Delivery Class
Client (MANDT)
The field MANDT exists in most SAP tables and identifies which client a record belongs to. This ensures strict data separation.
| Client | Business Unit |
| 100 | India |
| 200 | USA |
| 300 | Europe |
Why Client (MANDT) Is Required in SAP Tables
In SAP, MANDT (Client field) is used to identify which client a particular record belongs to. SAP systems are designed to support multiple companies or business units within a single system, and MANDT ensures that data from one client never mixes with another.
Whenever a user logs in, they log in to a specific client. SAP automatically filters all database operations using the logged-in client, so users can see and work only with their own client’s data, even though the tables are physically shared.
Because most business data (customers, materials, sales orders) is client-specific, MANDT is included in almost all SAP tables and is part of the primary key. This design provides data isolation, security, and scalability, allowing one SAP system to safely serve multiple organizations or environments (production, testing, training) at the same time.
Data Class
The Data Class tells SAP what type of data a table stores, helping the database optimize performance.
| Data Class | Data Type |
| APPL0 | Master Data |
| APPL1 | Transaction Data |
| APPL2 | Organizational Data |
Delivery Class
The Delivery Class controls how table data behaves during system operations like upgrades and transports.
| Delivery Class | Meaning |
| A | Application data |
| C | Customizing data |
| L | System data |
Types of SAP Data
SAP data falls into three major categories, each serving a different purpose.
| Data Type | Meaning | Example |
| Master Data | Who/What | Customers, Materials |
| Transaction Data | Events | Sales Orders |
| Configuration Data | Rules | Company Codes |
Master data is reused, transaction data records events, and configuration data controls behavior.
Keys and Performance Concepts
Primary and Foreign Keys
A Primary Key uniquely identifies a record.
A Foreign Key links one table to another, ensuring data consistency.
| Key Type | Example |
| Primary | Customer ID |
| Foreign | Sales Order → Customer |
Table Buffering
Table buffering improves performance by storing frequently accessed data in memory, reducing database calls.
Data Browser (SE16)
The Data Browser (SE16) allows users to view table data directly without writing ABAP code. It is widely used for debugging, validation, and analysis.
| Feature | Benefit |
| Filters | Targeted search |
| No coding | Quick access |
| Restrictions | Often limited in PROD |
Table Maintenance Generator (TMG)
The Table Maintenance Generator (TMG) automatically creates user-friendly screens to maintain table data. This avoids writing custom maintenance programs.
| Feature | Advantage |
| Auto UI | Saves development time |
| SM30 Access | Easy maintenance |
| Transport support | Safe changes |
Search Help (F4 Help)
Search Helps guide users during data entry by showing valid values.
| Type | Description |
| Elementary | One data source |
| Collective | Multiple search paths |
This improves usability and reduces errors.
SAP Views
Views are logical representations of data that do not store data themselves.
| View Type | Purpose |
| Database View | Join tables |
| Projection View | Filter fields |
| Maintenance View | Maintain related tables |
| Help View | Support F4 help |
Lock Objects, Packages, and Transports
A Lock Object prevents multiple users from updating the same data simultaneously, ensuring data integrity.
A Package is a container that organizes SAP objects.
A Transport Request safely moves changes across systems (DEV → QA → PROD).
| Concept | Purpose |
| Lock Object | Prevent conflicts |
| Package | Organize development |
| Transport | Controlled deployment |
Conclusion
SAP ABAP is not just about writing code. It is about understanding data, system architecture, and business processes. The ABAP Data Dictionary acts as the brain of SAP, ensuring data is consistent, secure, and reusable. Once these fundamentals are clear, ABAP programming becomes logical, structured, and far easier to master. Understanding these concepts is crucial for anyone looking to excel in SAP development and customization.




