Quick Answer
- ABAP interviews test 8 core areas: fundamentals, Data Dictionary, reports/ALV, performance, dialog programming, OOABAP/enhancements, interfaces, and ABAP on HANA (CDS/AMDP).
- Senior roles weight performance optimization and OOABAP heavily — memorized syntax alone won't pass a senior interview.
- ABAP on HANA (CDS Views, AMDP, code pushdown) is now a standard section in almost every 2026 SAP ABAP interview, not just S/4HANA specialist roles.
- Interviewers consistently favor candidates who explain why a technique is used over those who just recite definitions.
- This guide is aligned with the SAP C_ABAPD certification syllabus, so it doubles as exam prep.
ABAP Fundamentals
The building blocks every ABAP interview starts with — data types, internal tables, control structures, and how ABAP fits into the SAP system landscape.
SELECT SINGLE requires the WHERE clause to specify all primary key fields and uses an efficient key lookup. SELECT UP TO 1 ROWS can use a partial WHERE clause and just stops after the first matching row — less predictable and potentially less performant on large unsorted tables.MOVE (or the = assignment) copies data field-by-field in position order, so source and target need matching layouts. MOVE-CORRESPONDING copies by matching field names between two structures, which is safer when layouts differ but field names overlap.DATA), and it's the data object that actually holds a value at runtime.TYPES defines a new data type — a template — without allocating memory. DATA declares an actual variable (data object) with memory allocated, optionally based on a type defined with TYPES or an existing Dictionary type.ASSIGN to loop through internal tables without copying data into a work area each time, improving performance on large tables.LOOP AT itab INTO wa) physically copies each row's data into the work area's memory — an extra copy operation per row. Looping with a field symbol (LOOP AT itab ASSIGNING <fs>) just points directly at the table row's memory, avoiding the copy — noticeably faster on large tables.IF/ELSEIF/ELSE, CASE/WHEN. Loops: DO...ENDDO (fixed/indefinite loop), WHILE...ENDWHILE (condition-based), and LOOP AT...ENDLOOP (iterating over an internal table).USING value(param)) copies the data into the subroutine/method — changes inside don't affect the original variable unless explicitly passed back. Pass by reference passes the memory address directly, so changes inside the routine immediately affect the original variable's value.SE11 (Data Dictionary), SE24 (Class Builder), SE37 (Function Builder), SE80 (Object Navigator/Workbench), and SE24/SE91 for message classes.Data Dictionary
How SAP centrally defines and manages every table, field, and relationship in the system — and the questions interviewers use to check you actually understand the data model, not just the syntax.
Reports & ALV
Every ABAP developer builds reports early and often. These questions test whether you understand the report types, selection screens, and the ALV framework that powers most SAP list output.
AT LINE-SELECTION.REUSE_ALV_GRID_DISPLAY, or the modern CL_SALV_TABLE) giving sorting, filtering, subtotals, column reordering, and Excel export automatically — without hand-coding that display logic.PARAMETERS and SELECT-OPTIONS. Validation happens in AT SELECTION-SCREEN — you can check individual fields with AT SELECTION-SCREEN ON <field> or validate the whole screen before processing begins.PARAMETERS declares a single-value input field. SELECT-OPTIONS declares a range/multi-value input (generating a table with SIGN, OPTION, LOW, HIGH fields), letting the user enter ranges, multiple single values, or exclusions on the selection screen.SELECT *; filter as much as possible in the WHERE clause; use appropriate internal table types; avoid SELECT statements inside loops; use FOR ALL ENTRIES or JOINs instead of nested SELECTs; and on S/4HANA, consider pushing logic into a CDS view or AMDP.FOR ALL ENTRIES runs a second SELECT using values from an already-fetched internal table — useful across different database connections, but implicitly removes duplicates and requires the driver table to be non-empty. An INNER JOIN combines both tables in a single SQL statement executed by the database, generally more efficient when both tables share the same database.INITIALIZATION (before selection screen displays), AT SELECTION-SCREEN (validation), START-OF-SELECTION (main processing logic begins), and END-OF-SELECTION (final output/summary logic after all processing).TOOLBAR and USER_COMMAND events on the ALV object model (CL_GUI_ALV_GRID), which lets you append your own buttons and respond to their clicks.CL_GUI_FRONTEND_SERVICES for downloading, or build the data as a proper spreadsheet using the ABAP2XLSX open-source library for more advanced formatting needs.AT LINE-SELECTION triggers when the user double-clicks/selects a specific list line — used for drill-down to detail. AT USER-COMMAND triggers when the user chooses a custom function code from a menu or button you've defined, independent of which line is selected.lt_sort) with the field name, sort order (ascending/descending), and a subtotal flag per field, then passing that table into the ALV display function/method — the ALV framework then handles grouping and subtotal calculation automatically.AT LINE-SELECTION (or the ALV hotspot click event), you re-query the detail records for the selected key and display a secondary detail list.Internal Tables & Performance
Performance questions separate candidates who memorized syntax from those who've actually optimized real code under load — a heavily weighted category in senior ABAP interviews.
BINARY SEARCH, ABAP does a linear scan through the internal table (checking each row in order) — slow on large tables. With BINARY SEARCH, it performs a much faster binary search, but the table must be sorted by the key you're searching on beforehand, or results are unreliable.APPEND adds a row to the end of a standard table (fastest option for standard tables). INSERT can add a row at a specific position, or is required for sorted/hashed tables where the position is determined by the table's own sort/hash logic rather than simply appending at the end.SELECT * retrieves every column even if you only need two or three, increasing network transfer, memory usage, and database read time — especially expensive on wide tables. Explicitly listing needed fields reduces all of that and is considered standard best practice, and is specifically flagged by the SAP Code Inspector.INTO wa copies each row into the work area's memory on every iteration. Looping ASSIGNING <fs> uses a field symbol to point directly at the row in the table's memory — no copy — which is measurably faster, especially with large or wide tables.APPEND LINES OF itab2 TO itab1 appends an entire internal table's contents in a single optimized statement. Looping and calling APPEND row-by-row does the same thing but with more statement overhead — the bulk statement is preferred for performance and cleaner code.APPEND always adds a new row. COLLECT checks if a row with matching non-numeric key fields already exists — if so, it adds the numeric fields to that existing row instead of creating a duplicate, effectively aggregating on the fly, which is useful for building totals without a separate aggregation step.Dialog Programming
Building custom transactions means understanding SAP's screen event model — PBO/PAI — and how user interaction flows through a module pool program.
SET CURSOR — rather than navigating away or clearing the screen.AT EXIT-COMMAND runs even when the user presses Back/Exit/Cancel, and skips field validation — used specifically to let users exit a transaction without being blocked by mandatory field checks.CALL SCREEN pushes a new screen onto the screen call stack and returns control to the calling screen when the called screen is left. SET SCREEN sets which screen will be shown next after the current PBO/PAI cycle finishes, without pushing a new stack level — control does not automatically return.VRM_SET_VALUES (function module) to populate a value list programmatically in PBO, tied to a screen field defined as a listbox in Screen Painter — commonly used when the dropdown options come from a Z-table or logic rather than a fixed domain value list.SET PF-STATUS, and each button/menu item is tied to a function code that then appears in OK_CODE when the user triggers it.LOOP AT SCREEN iterates over the fields on the current screen itself (useful for dynamically hiding/graying out fields based on conditions). Looping a table control iterates over the rows of an internal table bound to a table control UI element to populate its visible rows.Enhancements & OOABAP
Modifying standard SAP directly creates upgrade risk. This section covers how developers safely extend SAP behavior — and the object-oriented ABAP concepts underlying modern development.
REDEFINITION in ABAP). At runtime, calling that method on a subclass instance executes the subclass's version — this is polymorphism in action, since the same method call behaves differently depending on the actual object type.CLASS-METHODS) belongs to the class itself and can be called without creating an object instance — useful for utility/factory logic. An instance method (METHODS) requires an actual object instance and can access that instance's specific attribute values.CONSTRUCTOR runs automatically whenever a new object is created, typically to initialize instance attributes. The CLASS_CONSTRUCTOR runs exactly once, the first time the class is accessed at all, used to initialize static/class-level attributes shared across all instances.TRY...CATCH...ENDTRY blocks with exception classes (inheriting from CX_ROOT), letting errors propagate up the call stack until caught, with structured exception objects carrying context. Classic MESSAGE-based handling is simpler but less structured, typically stopping processing immediately or requiring manual sy-subrc checks after every call.Forms & Interfaces
Business documents and system-to-system connectivity — SmartForms, Adobe Forms, BAPIs, RFCs, and IDocs are where ABAP developers connect SAP to the outside world.
BAPI_TRANSACTION_COMMIT to persist changes — giving you structured control over rollback on error. Direct table updates via native SQL bypass business logic and validation entirely, which is why BAPIs are the standard, safer approach for creating/changing business data.@OData.publish: true, or explicit service definition/exposure via @UI and service binding objects) to the CDS view, then activate and publish it via the SAP Gateway/service binding tools (SEGW for classic, or the modern RAP — RESTful ABAP Programming model) so it becomes callable as a proper REST/OData endpoint.BAPI_TRANSACTION_COMMIT is specifically designed to be called after BAPI usage, since BAPIs often use their own internal update logic and this BAPI ensures that update is properly triggered and, optionally, waits for confirmation. A plain COMMIT WORK triggers the standard SAP LUW (logical unit of work) commit but isn't guaranteed to correctly finalize BAPI-specific update processing in all cases.ABAP on HANA — CDS & AMDP
The current standard for S/4HANA development. Expect these questions in any interview for a company running or migrating to S/4HANA — this is where the field is heading.
@AbapCatalog.sqlViewName (defines the underlying SQL view name), @OData.publish: true (exposes it as an OData service), @Analytics.query: true (marks it for analytical consumption), and @UI.lineItem (controls Fiori list display).@AccessControl annotation linked to a DCL (Data Control Language) source, which defines the authorization logic (e.g. checking against an authorization object) applied automatically whenever the CDS view is accessed — keeping security enforcement centralized at the data layer rather than scattered across every consuming report.EXEC SQL lets you embed native database SQL directly in an ABAP program but is tied to that specific database and harder to maintain/transport cleanly. AMDP is HANA-specific, but integrates properly with ABAP's class/method model, transport system, and version management — it's the modern, supported replacement for ad hoc native SQL in HANA-based development.Reading the answers helps.
Mock interviews make it stick.
Book a free 30-minute demo class — get personalized guidance on SAP ABAP on HANA interview prep, see live SAP training, and find out if VoiSAP is the right fit. No obligation.
No commitment required · Typically respond within a few hours