Data Dictionary
Q1. What is the ABAP Data Dictionary?
Answer: The Data Dictionary (transaction SE11) is the central repository for data definitions — tables, structures, views, data elements, domains, search helps, and lock objects. Definitions created here are global and can be used by all ABAP programs.
Q2. What is the difference between a transparent table, a structure, and a view?
Answer: A transparent table has a one-to-one physical table in the database and stores data. A structure has fields but no database storage — it is used for work areas and screen fields. A view joins fields from one or more tables for display or selection without storing data itself.
Q3. What are data elements and domains?
Answer: A domain defines technical attributes (data type, length, value range, e.g. CHAR 10). A data element adds semantic meaning (field labels, documentation) on top of a domain. Multiple fields can share one domain, so changing the domain changes all fields using it.
Q4. What is a lock object and why is it used?
Answer: A lock object (created in SE11) prevents two users from changing the same data record simultaneously. Function modules ENQUEUE_<lockobject> and DEQUEUE_<lockobject> are generated automatically. It is used in update programs to ensure data consistency.
Q5. What are the different types of views in the Data Dictionary?
Answer: Database views (inner join of tables, used in SELECT), projection views (subset of one table’s fields), maintenance views (for maintaining data via SM30), and help views (for search helps). Database views are the most commonly used in reports.
Internal Tables
Q6. What are the three types of internal tables?
Answer: Standard tables (accessed by index, or by key with linear search), Sorted tables (always kept sorted by key, binary search by default), and Hashed tables (accessed only by key via hash algorithm — fastest single-record access, no index access).
Q7. When would you use a hashed table over a standard table?
Answer: Use a hashed table when you need fast single-record reads by a unique key and never need index access or sorting. Example: loading a large customizing table into memory once and reading it thousands of times in a loop.
Q8. What is the difference between a work area and a header line?
Answer: A work area is a separate structure variable used with internal tables that have no header line (e.g., `DATA: wa TYPE … . LOOP AT it INTO wa.`). A header line is a work area implicitly attached to the table itself (older syntax, e.g., `DATA it TYPE TABLE OF … WITH HEADER LINE`) — obsolete in modern ABAP and discouraged.
Q9. What are field symbols?
Answer: Field symbols are placeholders (pointers) that point to data objects at runtime, declared with `FIELD-SYMBOLS: <fs> TYPE …`. Assigned with `ASSIGN … TO <fs>` or inline in loops (`LOOP AT it ASSIGNING <fs>`). They are faster than work areas for large tables because no data is copied.
Q10. What is the difference between APPEND, INSERT, and COLLECT?
Answer: APPEND adds a row at the end of a standard table. INSERT adds a row at a specific position (or sorted position for sorted tables). COLLECT adds numeric fields to an existing row with the same key, or appends a new row if the key does not exist — useful for summarization.
Reports
Q11. What are the types of ABAP reports?
Answer: Classical reports (simple lists using WRITE), Interactive reports (drill-down via AT LINE-SELECTION and HIDE), and ALV reports (ABAP List Viewer — formatted grids with sorting, filtering, totals, via REUSE_ALV_GRID_DISPLAY or SALV classes).
Q12. What is an ALV report and which function module is used?
Answer: ALV (ABAP List Viewer) displays data in a formatted grid with built-in sorting, filtering, subtotals, and export to Excel. The classic function module is REUSE_ALV_GRID_DISPLAY; the modern object-oriented approach uses the SALV classes (CL_SALV_TABLE).
Q13. What are selection screens and what are SELECT-OPTIONS?
Answer: Selection screens (defined with PARAMETERS and SELECT-OPTIONS) collect user input before a report runs. PARAMETERS takes a single value; SELECT-OPTIONS takes ranges with low/high values and inclusion/exclusion options, generating a ranges table automatically.
Q14. What is the difference between AT SELECTION-SCREEN and START-OF-SELECTION?
Answer: AT SELECTION-SCREEN is the event for validating user input on the selection screen (before data is read). START-OF-SELECTION is the event where the main data selection and processing logic runs, after the selection screen is submitted.
BAPIs and BDC
Q15. What is a BAPI?
Answer: A BAPI (Business Application Programming Interface) is a standardized, stable function module that provides external access to SAP business processes (e.g., BAPI_SALESORDER_CREATEFROMDAT2, BAPI_MATERIAL_SAVEDATA). BAPIs are the preferred integration method over BDC, with stable interfaces across releases.
Q16. What is BAPI_TRANSACTION_COMMIT used for?
Answer: Most BAPIs only prepare data in memory; BAPI_TRANSACTION_COMMIT writes it to the database. You must call it (with WAIT = ‘X’ if you need synchronous commit) after the BAPI call, otherwise no data is saved.
Q17. What is BDC and what are its two methods?
Answer: BDC (Batch Data Communication) automates data entry by simulating transaction screens. The two methods are: (1) CALL TRANSACTION USING (processes the BDCDATA table directly in the program), and (2) Session method (creates a batch input session processed later via SM35). BDC is legacy — BAPIs or IDocs are preferred for new developments.
Q18. What is the difference between CALL TRANSACTION and SESSION methods in BDC?
Answer: CALL TRANSACTION processes data immediately in the foreground or background within the program and gives direct error handling via the messages table. The SESSION method creates a session stored in the system and processed later via SM35, which allows reprocessing of errors but is asynchronous.
Enhancements
Q19. What are user exits?
Answer: User exits are predefined hooks (usually function modules starting with EXIT_) in standard SAP programs where customers can add custom logic without modifying standard code. They are managed via SMOD/CMOD projects.
Q20. What is the difference between user exits, customer exits, and BADIs?
Answer: User exits are function-module hooks in standard programs. Customer exits are a formal framework (SMOD/CMOD) including function module exits, screen exits, and menu exits. BADIs (Business Add-Ins) are the object-oriented enhancement technique — filterable, multi-use, and the strategic direction; classic BADIs are largely replaced by the Enhancement Framework (enhancement spots) in newer releases.
Q21. What is the Enhancement Framework?
Answer: The Enhancement Framework (available since ECC 6.0) allows implicit and explicit enhancements — you can add code at predefined enhancement points or define your own enhancement spots, without modifying standard SAP code. It is the strategic replacement for classic modification and older exit techniques.
Q22. What is a BTE (Business Transaction Event)?
Answer: BTEs are enhancement hooks mainly in FI (e.g., open interfaces for document posting). They come in two types: P/S (publish and subscribe, informational) and process interfaces that can change data. They are configured in transaction FIBF.
Smart Forms and Output
Q23. What is the difference between Smart Forms and SAPscript?
Answer: SAPscript is the older text-based form tool (SE71) with limited layout control. Smart Forms (SMARTFORMS) is the graphical successor with a tree structure, table/loop nodes, and no scripting needed for basic layouts. Both are largely superseded by Adobe Forms in newer landscapes, but Smart Forms remain extremely common.
Q24. What is the driver program in Smart Forms?
Answer: The driver program is the ABAP report that calls the generated Smart Form function module (SSF_FUNCTION_MODULE_NAME), passes data, and controls print output — setting output options, handling multiple forms, and triggering print/fax/email.
Object-Oriented ABAP
Q25. What are the pillars of OO ABAP?
Answer: Encapsulation (data hidden inside classes, accessed via methods), Inheritance (a subclass inherits from a superclass via INHERITING FROM), and Polymorphism (the same method call behaves differently per class via redefinition and interfaces).
Q26. What is the difference between a class and an interface?
Answer: A class contains both method definitions and implementations. An interface contains only method definitions (signatures) — multiple classes can implement the same interface, which enables polymorphism. A class implements an interface with the INTERFACES statement.
Q27. What are static vs. instance methods?
Answer: Instance methods operate on a specific object instance (called via object reference, can access instance attributes). Static methods belong to the class itself (called via class name `=>`), cannot access instance attributes, and are often used for utility/helper functions.
Q28. What is a constructor in ABAP OO?
Answer: The CONSTRUCTOR method runs automatically when an object is created with CREATE OBJECT. It is typically used to initialize attributes and set up the object’s initial state.
Performance Tuning
Q29. Name five ABAP performance best practices.
Answer: (1) Never use SELECT * — list only needed fields. (2) Use FOR ALL ENTRIES instead of SELECT inside LOOP. (3) Read tables with keys and use BINARY SEARCH on sorted standard tables (or sorted/hashed table types). (4) Avoid nested SELECTs; use joins. (5) Minimize database hits by buffering frequently-read customizing data in internal tables.
Q30. What is FOR ALL ENTRIES and what precautions apply?
Answer: FOR ALL ENTRIES selects database rows matching the key values in an internal driver table — far faster than SELECT inside LOOP. Precautions: the driver table must not be empty (it would select the whole table — always check `IF it[] IS NOT INITIAL`), remove duplicates, and sort it for efficiency.
Q31. What tools do you use for ABAP performance analysis?
Answer: ST05 (SQL trace — see database calls), SE30/SAT (runtime analysis — find slow code sections), and ST12 (combined trace). Code Inspector (SCI) checks for performance anti-patterns statically.
Q32. What is the difference between a primary and secondary index?
Answer: The primary index is created automatically on the table’s key fields. Secondary indexes are created on non-key fields that are frequently used in WHERE conditions — they speed up reads but slow down inserts/updates, so they should be used judiciously.
Modularization and Miscellaneous
Q33. What are the modularization techniques in ABAP?
Answer: Subroutines (FORM/ENDFORM, internal to a program), Function Modules (global, in function groups, called via CALL FUNCTION), Methods (in classes/interfaces, OO), and Includes (source code files included via INCLUDE for structuring large programs).
Q34. What is the difference between a function module and a subroutine?
Answer: A subroutine (FORM) is local to its program (unless declared global in a function group). A function module is a global reusable unit stored in the Function Library (SE37) with defined import/export/changing parameters and exception handling — callable from any program.
Q35. What are the different types of function modules?
Answer: Normal function modules (synchronous), Remote-enabled (RFC — called from other systems), and Update function modules (executed in the update task via CALL FUNCTION … IN UPDATE TASK, used for database updates in the V1/V2 update process).
Q36. What is the difference between COMMIT WORK and ROLLBACK WORK?
Answer: COMMIT WORK writes all pending database changes (LUW — logical unit of work) permanently. ROLLBACK WORK discards all uncommitted changes in the current LUW. BAPIs require an explicit COMMIT via BAPI_TRANSACTION_COMMIT.
S/4HANA ABAP
Q37. What is a CDS view?
Answer: A CDS (Core Data Services) view is a data model defined in the ABAP dictionary using SQL-like DDL. CDS views push data processing down to the HANA database (code pushdown) for much better performance than selecting into ABAP and processing in the application layer. They are the foundation of S/4HANA embedded analytics and Fiori apps.
Q38. What is AMDP?
Answer: AMDP (ABAP Managed Database Procedures) lets you write database procedures (e.g., SQLScript) directly in ABAP classes, managed by the ABAP Dictionary. It is used when logic cannot be expressed in CDS or Open SQL and must run inside the HANA database for performance.
Q39. What is the code pushdown concept in S/4HANA ABAP?
Answer: Code pushdown means moving data-intensive logic from the ABAP application server down to the HANA database (via CDS views, AMDP, or Open SQL) so only aggregated results travel over the network. It is the core performance principle of S/4HANA development.
Q40. What should a classic ABAPer learn first for S/4HANA?
Answer: CDS views (DDL + annotations), the new Open SQL syntax (inline declarations, strict mode), AMDP basics, and the Fiori programming model (RAP — RESTful ABAP Programming) at a conceptual level. Classic skills — internal tables, ALV, BAPIs, enhancements — remain fully relevant.
Frequently Asked Questions
Q1. How many questions are in this SAP ABAP interview guide?
40 real interview questions and answers, covering the Data Dictionary, internal tables, reports, BAPIs, BDC, enhancements, Smart Forms, OO ABAP, performance tuning, and S/4HANA topics — updated for 2026.
Q2. What are the most important ABAP topics for interviews?
Internal tables (types and when to use each), the ALV report flow, BAPI vs BDC, user exits vs BADIs, and performance tuning (FOR ALL ENTRIES, avoiding SELECT *). These five areas appear in nearly every ABAP interview.
Q3. Is OO ABAP mandatory for interviews in 2026?
Increasingly, yes — at least the basics: classes vs interfaces, inheritance, polymorphism, and static vs instance methods. S/4HANA development (CDS, AMDP) is built on OO concepts, so interviewers probe them even for classic ABAP roles.
Q4. Do I need to know S/4HANA topics as an ABAP fresher?
Know the concepts: what CDS views are, what code pushdown means, and that Business Partners replaced customer/vendor masters. You will not be expected to write AMDP on day one, but awareness of the direction matters.
Q5. BAPI or BDC — which should I recommend in an interview?
Always recommend BAPIs first: they are stable and designed for programmatic access, with consistent interfaces across releases. Mention BDC (CALL TRANSACTION / SM35 sessions) as the legacy fallback when no BAPI exists.
Conclusion
These 40 SAP ABAP interview questions span the full classic-to-modern spectrum. Pair conceptual answers with hands-on practice and you will answer with real confidence. For the functional side of the processes your code supports, our SAP FICO interview questions and SAP MM tables guide are useful companions.