SAP ABAP Interview Questions & Answers
1. What is a singleton class?
A singleton class in ABAP is a design pattern that restricts the instantiation of a
class to only one object. This is useful when exactly one object is needed to
coordinate actions system-wide, such as logging, configuration, or shared utilities.
2. What is a persistent class?
Persistent classes are part of the ABAP Persistence Framework. They are used to
define and manage persistent objects whose state is stored in the database. These
classes are generated from persistent object definitions (persistent classes and root
classes) and allow seamless access to DB data through object-oriented methods.
3. How to add/remove required columns in ALV reports?
To add or remove columns in ALV, you modify the field catalog passed to the ALV
function. For example, in REUSE_ALV_GRID_DISPLAY, update the internal table
lt_fieldcat by including or excluding entries for the fields you want shown or
hidden.
4. Will you use COMMIT / ROLLBACK in BADI?
Ideally, no. COMMIT and ROLLBACK should be handled in the main program or
standard transaction logic, not within BADI. Using them inside enhancements can
cause database inconsistencies or interrupt the logical unit of work.
5. Types of BADI?
There are two types:
Classical BADI: Created using SE18 and implemented using SE19.
New BADI (Enhancement Spot): Introduced with the Enhancement Framework,
supports filter conditions, multiple implementations, and better lifecycle
management.
6. Difference between BAPI and RFC-enabled FM?
All BAPIs are RFC-enabled, but not all RFC FMs are BAPIs. BAPIs follow SAP’s
standard for interfacing business objects, are consistent, and stable. RFC-enabled
function modules can be custom-developed and don’t follow the same rules or
documentation standards.
7. MM/SD tables you’ve worked with?
MM: MARA (Material Master), EKKO/EKPO (PO Header/Item), MSEG (Material
Doc Segment)
SD: VBAK/VBAP (Sales Order), VBRK/VBRP (Billing), LIKP/LIPS (Delivery)
8. MM/SD/FI business flow?
MM: PR → PO → GR → IR (Procurement cycle)
SD: Inquiry → Quotation → Order → Delivery → Billing
FI: Posting → Clearing → Payment → Reporting
Understanding the flow helps in identifying where custom logic or reports may be
needed.
9. Difference between SELECTION-SCREEN and SELECTION-SCREEN
OUTPUT?
SELECTION-SCREEN is used to define selection criteria fields.
SELECTION-SCREEN OUTPUT is an event triggered before the selection screen
is displayed, allowing dynamic modifications like hiding/showing or
enabling/disabling fields.
10. How to find a user exit?
You can use transaction SMOD and CMOD, or go to the program via SE93 and
find enhancement points or user exits. You can also search for CALL CUSTOMER-
FUNCTION or use SPRO -> IMG -> Additional Info -> Enhancements.
11. Tcode for message text?
SE91 is used to create and maintain message classes and their corresponding texts
used in reports and validations.
12. Tcode for processing IDOCs?
WE19: Test IDoc creation
WE02: View IDoc status
BD87: Reprocess IDocs
13. Code to call transaction on line item click in interactive report?
In AT LINE-SELECTION, use:
CALL TRANSACTION 'VA03' USING bdcdata MODE 'E'.
Pass necessary screen fields to simulate the transaction flow.
14. Strongest RICEF area?
This is subjective but often refers to areas like Reports (ALV, Interactive),
Enhancements (user exits/BADIs), or Forms (SmartForms/Adobe). Answer based
on your experience and share examples.
15. Why is Adobe Form better than Smartform?
Adobe Forms support better layout, interactivity (fillable PDFs), and modern UI
integration. They are web-compatible and can be embedded in Fiori apps or
emails, offering enhanced user experience.
16. Session vs Call Transaction in BDC?
Session: Records transactions in batch, error handling is easier, but processing is
delayed.
Call Transaction: Immediate execution, useful for quick processing but requires
manual error handling.
17. FMs used in Session method?
BDC_OPEN_GROUP: Opens a session
BDC_INSERT: Adds a transaction to the session
BDC_CLOSE_GROUP: Closes and saves the session
18. Tcode for BDC recording?
SHDB – Used to record user transactions and generate BDC-compatible data.
19. Interfaces used so far?
Common interfaces include:
IDocs (Inbound/Outbound)
RFC/BAPI
File-based (FTP/SFTP)
OData for Fiori apps
Mention the ones you’ve implemented or debugged.
20. ABAP version for new syntax?
ABAP 7.4 introduced inline declarations, constructor expressions, etc. ABAP 7.5
added FOR, REDUCE, FILTER, and full support for modern syntax.
21. How to show only 'from' field in SELECT-OPTIONS?
Use NO-INTERVALS:
SELECT-OPTIONS: s_matnr FOR mara-matnr NO-INTERVALS.
This will display only the ‘from’ input box.
22. Abstraction vs Interface in ABAP OOP?
Abstraction: Allows partial implementation; abstract methods can be defined with
or without logic.
Interface: Defines only method signatures with no implementation. A class must
implement all methods.