Preparing for enterprise IT interviews, SAP campus drives, or S/4HANA entry-level roles requires a rock-solid grasp of core ABAP fundamentals[cite: 3, 29, 30]. In this first installment of our comprehensive SAP ABAP Interview Master Series, we provide clear, ready-to-speak answers for the top 25 foundational questions covering Basic ABAP Programming and the Data Dictionary (DDIC)[cite: 3, 16].
📲 Preparing for SAP ABAP & IT Hiring Drives?
Join Our WhatsApp Channel for Daily Tech Drives & Study Guides ➔Topic 1: Basic ABAP Questions (Q1 – Q10)
1. What is SAP ABAP?
Answer: ABAP stands for Advanced Business Application Programming[cite: 13]. It is SAP's proprietary high-level 4GL programming language used to develop business applications within the ABAP runtime environment[cite: 13]. Tightly integrated with modules like MM, SD, FI, and PP, it operates directly on relational database tables, DDIC metadata, and enterprise business processes[cite: 13].
2. What are the different types of ABAP programs?
Answer:
- Executable Programs (Type 1): Can run independently via transaction
SE38or by pressing F8. Controlled by standard report events[cite: 4, 23]. - Module Pool Programs (Type M): Screen-driven programs created for custom interactive UI dialogs, executed strictly via transaction codes (PBO/PAI logic)[cite: 7].
- Function Groups (Type F): Containers that house related Function Modules (cannot be executed directly)[cite: 4].
- Include Programs (Type I): Non-executable code modularization containers used to logically separate large programs[cite: 4, 29].
- Class Pools (Type K) & Interface Pools (Type J): Object-oriented ABAP global classes and interfaces maintained in
SE24[cite: 10, 29]. - Subroutine Pools (Type S): House external
FORMroutines[cite: 29].
3. What is a Report Program?
Answer: A Report Program is an executable Type 1 program primarily designed to retrieve data from database tables, apply filtering and transformation logic, and present output to users in standard list formats or interactive ALV grid displays[cite: 4, 8, 23].
4. What is the difference between Type 1 and Type M (Module Pool) programs?
Answer: Type 1 programs are event-driven and execute directly without needing a designated transaction code (using standard reporting screens)[cite: 4, 23]. Type M programs are dialog-driven, require a custom transaction code to launch, and process through explicit Dynpro screens using PBO (Process Before Output) and PAI (Process After Input) event blocks[cite: 7].
5. What are the standard Events in ABAP reporting?
Answer: ABAP executable programs trigger events in a defined sequential lifecycle[cite: 4, 23]:
LOAD-OF-PROGRAM: Triggered when the program is first loaded into internal memory[cite: 4].INITIALIZATION: Executes before the selection screen appears (used to set default input values)[cite: 4, 23].AT SELECTION-SCREEN OUTPUT: PBO of the selection screen (used for dynamic field modifications)[cite: 7].AT SELECTION-SCREEN: PAI of the selection screen (used for user input validation)[cite: 7].START-OF-SELECTION: Primary event triggered when F8 is pressed; fetches database records[cite: 23].END-OF-SELECTION: Executes after data retrieval is complete, right before list output is rendered[cite: 23].TOP-OF-PAGE&END-OF-PAGE: Controls header and footer rendering during classical list generation[cite: 8, 23].
6. What is the difference between SY-SUBRC and SY-TABIX?
Answer:
SY-SUBRC: Return code variable evaluated after ABAP statements (such asSELECT,READ TABLE, orAUTHORITY-CHECK)[cite: 4, 7, 21]. A value of0indicates complete success, while non-zero values indicate an error or failure to find records[cite: 21].SY-TABIX: The current row index number when processing or reading an internal table[cite: 4]. During aLOOP AT itab, it reflects the current loop iteration index[cite: 4, 5].
7. What is the difference between a Function Module and a Subroutine?
Answer:
- Function Module: Global modularization block defined inside a Function Group via transaction
SE37[cite: 4]. It supports strict typed parameters (Importing, Exporting, Changing, Tables), structured exception handling, and can be remote-enabled as an RFC[cite: 4, 8, 24]. - Subroutine (FORM/ENDFORM): Local modularization unit created directly inside the program using
PERFORM[cite: 4, 29]. It lacks strict interface verification and cannot be triggered remotely[cite: 24, 29].
8. What is the difference between PARAMETERS and SELECT-OPTIONS?
Answer: Both keywords accept selection screen inputs[cite: 15, 20]:
PARAMETERScreates a single elementary input box that accepts only one discrete value at a time[cite: 15, 20].SELECT-OPTIONSautomatically generates an internal range table structure containing four internal components (SIGN,OPTION,LOW, andHIGH), allowing users to enter single values, intervals, wildcards, and complex exclusions[cite: 15, 20].
9. What is the difference between Internal Sessions and External Sessions?
Answer: An external session corresponds to a separate GUI window or browser tab (SAP allows up to 6 external sessions per user logon). An internal session is the actual isolated memory area opened within an external session to execute an ABAP program. Calling a program via SUBMIT ... AND RETURN creates a new internal session within the same external window.
10. What are SE38 and SE80 used for?
Answer: SE38 is the ABAP Program Editor used strictly for creating and maintaining executable and include source code[cite: 4]. SE80 is the comprehensive Object Navigator, which acts as a complete IDE providing unified hierarchical access to all development repository objects (programs, function groups, DDIC models, BSPs, Web Dynpro, and packages)[cite: 4].
Topic 2: ABAP Data Dictionary (DDIC) (Q11 – Q25)
11. What is the ABAP Data Dictionary (DDIC)?
Answer: The central metadata repository (accessible via SE11) that creates, alters, and manages all database structures, data integrity constraints, foreign key definitions, search helps, and lock objects without requiring direct SQL database administrative privileges[cite: 4, 16].
12. What is the difference between a Data Element and a Domain?
Answer:
- Domain: Governs technical properties: data type, character length, output format, conversion exits, and value ranges/fixed values[cite: 16].
- Data Element: Governs semantic and UI context: descriptions, short/medium/long headers, and attached search helps[cite: 16]. Multiple data elements can reference the same domain[cite: 16].
13. What is a Transparent Table, and how does it differ from Pooled and Cluster tables?
Answer:
- Transparent Table: Has a direct 1:1 relationship with the underlying database table[cite: 4]. Field names, types, and primary keys match the database schema exactly[cite: 4]. Used for standard business data storage (e.g.,
MARA,VBAK)[cite: 16]. - Pooled Table: Has an $N:1$ relationship where multiple small pooled tables are clustered together into a single physical table pool on the database to reduce catalog overhead[cite: 4].
- Cluster Table: Has an $N:1$ relationship where multiple logical tables are stored together in an encrypted/compressed binary string format within a table cluster (e.g.,
BSEGin classic ECC, payroll results)[cite: 4].
14. What are the different types of Views in ABAP DDIC?
Answer:
- Database View: An inner join over multiple transparent tables that exists physically on the database layer; read-only access[cite: 4].
- Projection View: Hides unneeded columns from a single table to suppress unnecessary data loads[cite: 4].
- Maintenance View: Supports outer joins to create user-friendly maintenance dialogs via Table Maintenance Generator (
TMG)[cite: 4]. - Help View: Used as the data source for search helps where outer joins are required[cite: 4].
15. What is the Table Maintenance Generator (TMG)?
Answer: TMG is a built-in DDIC utility (accessed via Utilities ➔ Table Maintenance Generator in SE11) that automatically generates interactive Dynpro screens and modules[cite: 4]. This allows end users to safely insert, edit, and delete custom configuration records via transaction SM30 without developer intervention[cite: 4].
16. What is the difference between an Append Structure and an Include Structure?
Answer:
- Include Structure: Added manually by the original table owner/developer during table creation[cite: 4]. A single include structure can be reused across multiple tables and structures[cite: 4].
- Append Structure: Used by customers to enhance standard SAP tables without modifying the SAP delivery source code[cite: 4, 9]. An append structure belongs exclusively to one table and is appended to the bottom of the table fields[cite: 4].
17. What is the difference between a Check Table and a Value Table?
Answer:
- Value Table: Defined at the domain level[cite: 4]. It serves as a default recommendation for foreign key validation proposals when a data element referencing this domain is added to a table[cite: 4]. It does not enforce data validation by itself[cite: 4].
- Check Table: Defined at the table field level using an active Foreign Key relationship[cite: 4]. It actively enforces referential integrity: any record inserted into the foreign key table must already exist in the check table[cite: 4].
18. What is a Lock Object in SAP?
Answer: Lock Objects (created with prefix EY or EZ in SE11) manage concurrency and prevent race conditions when multiple users or processes attempt to modify the same business data record simultaneously[cite: 4]. Activating a lock object automatically generates two function modules:
ENQUEUE_<LockObjectName>: Requests and places the lock in the SAP lock table[cite: 4].DEQUEUE_<LockObjectName>: Releases the held lock after the transaction completes[cite: 4].
19. What are the common Lock Modes in SAP?
Answer:
- Shared Lock (Read Lock - S): Allows multiple users to read the data concurrently, but blocks any other process from placing an Exclusive write lock.
- Exclusive Lock (Write Lock - E): Grants a single program exclusive write access; all other read or write locks are rejected.
- Exclusive Non-Cumulative Lock (X): Similar to Exclusive, but cannot be accumulated or locked multiple times by the same transaction thread.
- Optimistic Lock (O): Operates as a shared lock initially and converts into an exclusive lock only when the user commits modifications.
20. What is a Search Help, and what are the two main types?
Answer: A Search Help is an input assistance tool (F4 help) that displays a list of allowable values when a user selects a field[cite: 4].
- Elementary Search Help: Defines a single data retrieval path using a selection method (table or view) and a set of dialog parameters[cite: 4].
- Collective Search Help: Combines multiple elementary search helps into a single tabbed dialog, allowing users to search using different criteria[cite: 4].
21. What is Table Buffering, and when should it NOT be used?
Answer: Table buffering copies records from the physical database into the local application server buffer memory, eliminating repetitive network and database roundtrips[cite: 4, 5].
Do NOT use buffering on:
- Frequently updated transactional tables (e.g., sales orders, ledger postings) due to the overhead of invalidating buffers across application instances[cite: 4].
- Tables requiring immediate strict transactional consistency across servers.
- Tables exceeding hundreds of thousands of records that consume excessive memory[cite: 4].
22. What are the different types of Table Buffering?
Answer:
- Single-Record Buffering: Only records that are explicitly requested using full primary key specifications are loaded into buffer memory.
- Generic Buffering: All records sharing a defined generic key prefix (e.g., client or company code) are loaded simultaneously into the buffer.
- Full Buffering: The entire table contents are loaded into memory as soon as a single record is accessed (best for small lookup tables with <500 rows).
23. What are Data Class and Size Category in technical settings?
Answer: In SE11 Technical Settings[cite: 5]:
- Data Class: Dictates the physical tablespace storage area on the database (e.g.,
APPL0for master data,APPL1for transaction data,APPL2for organizational customizing tables)[cite: 5]. - Size Category: Specifies the estimated initial physical extents and space allocation reserved by the database engine for table growth (from category 0 to 9)[cite: 5].
24. What are Delivery Classes in SAP tables?
Answer: Delivery classes govern who owns table data and how records are handled during system upgrades, client copies, and transport operations[cite: 5]:
- A: Application table (stores business master and transactional data)[cite: 5].
- C: Customizing table (maintained by customers, preserved during upgrades)[cite: 5].
- L: Temporary table for storing transient processing data[cite: 5].
- E: Control table with predefined SAP system keys[cite: 5].
25. What is the difference between a Structure and a Table Type?
Answer:
- Structure: Represents a single line type definition containing field names and data types (used to type a Work Area)[cite: 4, 5]. It does not store multiple rows in memory[cite: 5].
- Table Type: A global DDIC definition that describes the attributes of an entire Internal Table (its line type structure, table kind, and primary keys)[cite: 5]. It allows typed internal table declarations across classes and function interfaces[cite: 4, 5].
0 Comments