ABAP Interview Ready Reckoner

ABAP Interview Ready Reckoner

System Architecture

  1. What are the central interfaces of the R/3 system?

Ans: Presentation interface

Database interface

Operating system interface

  1. Which interface controls what is shown on the p.c. ?

Ans: Presentation interface

  1. Which interface converts SQL requirements in the SAP development system to those of the database ?

Ans: Database interface

  1. What is SAP dispatcher ?

Ans: SAP dispatcher is the control agent which manages the resources for the R/3 applications.

  1. What are the functions of dispatcher ?

Ans: Equal distribution of transaction load to the work processes Management of buffer areas in main memory Integration of the presentation levels Organization of communication activies

  1. What is a work process ?

Ans: A work process is where individual dialog steps are actually processed and the work is done. Each work process handles one type of request.

  1. Name various work processes of R/3 system ?

Ans: 1) Dialog or Online ( processes only one request at a time )

2) Background (started at a specified time)

3) Update (primary or secondary)

4) Enque (lock mechanism)

5) Spool (generated online or during back ground processing For printing )

  1. What are the types of Update requests?

Ans: An update request can be divided into one primary (V1) and several Secondary update components (V2). Time-critical operations are placed in V1 component and those whose timing are less critical are placed in V2 components. If a V1 update fails, V2 components will not be processed.

  1. What are the roll and page areas ?

Ans: Roll and page areas are SAP R/3 buffers used to store user contexts ( process

requests ) . The SAP dispatcher assigns process requests to work processes as they are

received. If the work process is unavailable the process requests are queued in the roll

and page areas.

Paging area holds data from the application programs.

Roll area holds data from previous dialog steps and data that characterizes user.

  1. What is a Spool request?

Ans: Spool requests are generated during dialog or background processing and placed in the spool database with information about the printer and print format. The actual data is placed in the Tem Se (Temporary Sequential objects).

  1. What are the different database integrities?

Ans: Semantic integrity

Relational integrity

Primary key integrity

Value set integrity

Foreign key integrity and

Operational integrity.

  1. What are presentation and application servers in SAP?

Ans:- The application layer of an R/3 System is made up of the application servers and the message server. Application programs in an R/3 System are run on application servers. The application servers communicate with the presentation components, the database, and also with each other, using the message server.

Data Dictionary

  1. What is domain & data element?

Ans: Domains: Domain is the central object for describing the technical characteristics of an attribute of a business objects. It describes the value range of the field. Data Element: It is used to describe the semantic definition of the table fields like description the field. Data element describes how a field can be displayed to end-user.

  1. What are check table & value table?

Ans: When we define a foreign key in a table (A). If this key refers to primary key of another table (B). Table B is check table. Fields referring to a domain may assume values contained in the corresponding fields of the value table. Field referring to the domain should have a foreign key

  1. What are the differences between value table & value range?

Ans: VALUE TABLE: If the domain of the check field has a value table, this is proposed by the system as check table in the foreign field maintenance. The key fields of the value table are in this case assigned fields of the foreign key table with the same domain. These fields may assume only those values allowed by the value table.

The value range of the domain can be defined by specifying value table. All table fields referring to this domain can then be checked against the corresponding field of this value table. In order the check can be executed, a foreign key must be defined for the value table.

  1. What is the importance of parameter id?

Ans: To fill the input fields of a called transaction with data from the calling program, you can use the SPA/GPA technique. SPA/GPA parameters are values that the system stores in the global, user-specific SAP memory. SAP memory allows you to pass values between programs. A user can access the values stored in the SAP memory during one terminal session for all parallel sessions. Each SPA/GPA parameter is identified by a 20-character code. You can maintain them in the Repository Browser in the ABAP Workbench. The values in SPA/GPA parameters are user-specific.

  1. How a new parameter id is created?

  1. What is a conversion routine in a domain?

Ans: A conversion routine conv is represented by two function modules that adhere to the naming convention CONVERSION_EXIT_conv_INPUT|OUTPUT. In these function modules, no statements can be executed that interrupt the program flow or end a SAP LUW. A conversion routine can be assigned to a domain in the ABAP Dictionary. If a screen field refers to a domain with a conversion routine, the system automatically executes the function module …_INPUT for every input in the relevant screen field and the function module …_OUTPUT when values are displayed in this screen field and uses the converted content in each case. If a data object refers to such a domain, the function module …_OUTPUT is executed for the output of the data object in a list and the converted content is displayed.

  1. What are collective search help?

Ans : A collective search help combines several elementary search helps. The user can thus choose one of several alternative search paths with a collective search help.

When you define a collective search help, you only have to specify the search helps that are to be combined in the collective search help. In the input help, the values are transported between the elementary search help selected by the user and the input template using the collective search help. This is why a collective search help also has an interface for transporting the values.

  1. What are lock objects and what are the different kinds of lock objects?

Ans : Lock objects are use in SAP to avoid the inconsistency at the time of data is being insert/change into database.

SAP Provide three types of Lock objects.
Read Lock (Shared Locked)
protects read access to an object. The read lock allows other transactions read access but not

write access to the locked area of  the table

Write Lock (exclusive lock)
protects write access to an object. The write lock allows other transactions neither read nor write

access to the locked area of the  table.

Enhanced write lock (exclusive lock without cumulating)
works like a write lock except that the enhanced write lock also  protects from further accesses

from the same transaction.

You can create a lock on a object of SAP through transaction SE11 and enter any meaningful name start with EZ Example EZTEST_LOCK.

Use: you can see in almost all transaction when you are open an object in Change mode SAP could not allow to any other user to open the same object in change mode.

Example: in HR when we are enter a personal number in master data maintainance screen SAP can’t allow to any other user to use same personal number for changes.

When you create a lock object System automatically creat two function module.
1. ENQUEUE_<Lockobject name>. to insert the object in a queue.
2. DEQUEUE_<Lockobject name>. To remove the object is being queued through above FM.

You have to use these function module in your program

  1. What is a view? What are different types of view?

Ans:– A view is a logical view on one or more tables. A view on one or more tables i.e, the data from a view is not actually physically stored instead being derived from one or more tables. A view can be used to summarize data which is distributed among several tables

  • Database View (SE11)

Database views are implement an inner join, that is, only records of the primary table (selected via the join operation) for which the corresponding records of the secondary tables also exist are fetched. Inconsistencies between primary and secondary table could, therefore, lead to a reduced selection set.

In database views, the join conditions can be formulated using equality relationships between any base fields. In the other types of view, they must be taken from existing foreign keys. That is, tables can only be collected in a maintenance or help view if they are linked to one another via foreign keys.

  • Help View ( SE54)

Help views are used to output additional information when the online help system is called.

When the F4 button is pressed for a screen field, a check is first made on whether a matchcode is defined for this field. If this is not the case, the help view is displayed in which the check table of the field is the primary table. Thus, for each table no more than one help view can be created, that is, a table can only be primary table in at most one help view.

  • Projection View

Projection views are used to suppress or mask certain fields in a table (projection), thus minimizing the number of interfaces. This means that only the data that is actually required is exchanged when the database is accessed.

A projection view can draw upon only one table. Selection conditions cannot be specified for projection views.

  • Maintenance View ( SE54 )

Maintenance views enable a business-oriented approach to looking at data, while at

the same time, making it possible to maintain the data involved. Data from several

tables can be summarized in a maintenance view and maintained collectively via this

view. That is, the data is entered via the view and then distributed to the underlying

tables by the system.

  1. What is the importance of table maintenance generator? How can you attach a transaction code to a TMG?

  1. What functions does a data dictionary perform ?

Ans:– In a data management system, the principal functions performed by the data dictionary


– Management of data definitions

– Provision of information for evaluation

– Support for software development

– Support for documentation

– Ensuring that the data definitions are flexible and up-to-date.

  1. A field containing currency amounts (data type CURR) must be assigned to a reference table and a reference field. Explain.

Ans:– As a reference table, a system table containing all the valid currencies is assigned or any

other table which contains a field with the currency key format. This field is called as reference field.

The assignment of the field containing currency amounts to the reference field is made at runtime. The value in the reference field determines the currency of the amount.

  1. What is the significance of Technical settings (specified while creating a table in the data dictionary) ?

Ans:– By specifying technical settings we can control how database tables are created in the database.

The technical settings allows us to

– optimize storage space requirements

– table access behavior

– buffering required

– changes to entries logged

  1. What is the significance of Delivery Class ?

Ans:– The delivery class controls the degree to which the SAP or the customer is responsible for table maintenance

– whether SAP provides the table with or without contents.

– determines the table type.

– determines how the table behaves when it is first installed, at upgrade, when it is transported,

and when a client copy is performed.

  1. What is the maximum number of structures that can be included in a table or structure

Ans:– Nine.

  1. What are the two methods of modifying SAP standard tables?

Ans:– – Append Structures and

– Customizing Includes.

  1. What is the difference between a Substructure and an Append Structure ?

Ans:– In case of a substructure, the reference originates in the table itself, in the form of a

statement .include… . In case of an append structure, the table itself remains unchanged and the reference originates in the append structure.

  1. What is database utility ?

Ans:– Database utility is the interface between the ABAP/4 Dictionary and the underlying the SAP system. The database utility is the interface between the ABAP/4 Dictionary and the relational database underlying the SAP system. You can call the database utility from the initial screen of the ABAP/4 Dictionary with Utilities Database utility.

The database utility allows you to create, delete and convert objects from the ABAP/4 Dictionary in the database.

  1. What is a Data Class?

Ans:- The Data class determines in which tablespace the table is stored when it is created in the database.

  1. What is a Size Category?

Ans:- The Size category describes the probable space requirement of the table

in the database.

  1. What are the different types of data dictionary objects? 

Ans:- Tables, structures, views, domains, data elements, lock objects, Match code objects.

  1. Can a transparent table exist in data dictionary but not in the data base physically?


Reports (Simple & Interactive)

  1. What are the different events in a simple report?

Ans:– The events of a simple report are:

*      Initialization

At Selection-Screen output
*      At Selection-Screen
*      Start-Of-Selection
*      End-Of-Selection
*      Top-Of-Page
*      End-Of-Page
*      At Line-Selection
*      At Pf-keys
*      At User-Command
*      Top-Of-Page During Line Selection

  1. What is the difference between the events AT SELECTION SCREEN and AT SELECTION SCREEN OUTPUT?

Ans:– The selection criteria is validated in the processing block of the AT SELECTION SCREEN event for the input values on the screen and respective messages can be sent.

To display initial values in the selection screen:


Use DEFAULT VALUE option of PARAMETERS Statement

Use SPA/GPA Parameters (PIDs).

The AT SELECTION SCREEN OUTPUT manages the dynamic output of the screen which is equivalent to PBO event

  1. What you need to do to activate the two events AT LINE-SELCTION and AT-USER COMMAND to work on the same screen?

Ans: AT LINE-SELCTION: In most cases, the information from the selected line is used to retrieve more comprehensive information by direct reading. When displaying the original list, you store the key terms needed for this in the HIDE area of the output line. This should normally be the function key F2, because it has the same effect as double-clicking the mouse, or clicking once in the case of a hotspot and function PICK in the interface definition.

AT-USER COMMAND: This event is executed whenever the user presses a function key in the list or makes an entry in the command field. Some functions are executed directly by the system and thus cannot be processed by programs. These include:

PICK, PFn AT PFn and others

  1. What is a PF-STATUS? How can you use the same PF-STATUS for different secondary windows?

Ans:- PF status is GUI control of a report. It is used in interactive report for enhancing the functionality. If we go to se41, we can get menus, items and different function keys, which we are using for secondary list in interactive report. The same PF status is used by excluding the icons and appending the internal table accordingly. You may use the SET PF status …. EXCLUDING statement to disable certain functions on an application screen.

  1. What is the difference between the control commands AT NEW and ON CHANGE?

Ans:- You can use these key words for control break processing with internal tables only if a loop is actively processing an internal table and reference is to the innermost currently active loop.
The control level structure with internal tables is static. It corresponds exactly to the sequence of columns in the internal table (from left to right). In this context, the criteria according to which you sort the internal table are unimportant. At new fires when all the fields to the left of the designated field changes whereas On changes fires when the particular field changes

  1. How many maximum numbers of secondary windows can be opened from a report?

Ans: 20

  1. What is a parallel cursor method? How can be the nested looping be replaced by the parallel cursor method? Write one sample code to illustrate this.

  1. What you will have to take care while using the clause FOR ALL ENTRIES and why?

Ans: The table against which the subquery is fired should not be initial else the main query will fetch all the data ignoring the where criterion. Duplicates are discarded from the result set. If the internal table does not contain any entries, the system treats the statement as though there were no WHERE condition, and selects all records (in the current client).

  1. How do you modify records in an internal table without header line?

Ans: By using Work area

  1. What is a collect statement? How is it different from append? 

Ans:- If an entry with the same key already exists, the COLLECT statement does not append a new line, but adds the contents of the numeric fields in the work area to the contents of the numeric fields in the existing entry. 

  1. What is an interactive report?

Ans:- Interactive report is a dynamic drill down report that produces the list on users choice.
a)  THE LIST PRODUCED BY CLASSICAL REPORT DOESN’T allow user to interact with the system
the list produced by interactive report allows the user to interact with the system.

  1. What are logical databases? What are the advantages/disadvantages of logical databases? 

Ans:- To read data from a database tables we use logical database.
A logical database provides read-only access to a group of related tables to an ABAP/4 program.

The programmer need not worry about the primary key for each table. Because Logical database knows how the different tables relate to each other, and can issue the SELECT command with proper where clause to retrieve the data.
i) An easy-to-use standard user interface.
ii) Check functions which check that user input is complete, correct, and plausible.
iii) Meaningful data selection.
iv) Central authorization checks for database accesses.
v) Good read access performance while retaining the hierarchical data view determined by the application logic. 

i) If you donot specify a logical database in the program attributes, the GET events never occur.
ii) There is no ENDGET command, so the code block associated with an event ends with the next event
statement (such as another GET or an END-OF-SELECTION). 


  1. What is the difference between SAPSCRIPT & SMARTFORMS?

Ans: SAPSCRIPT: It is Client Dependent. It is a third party Tool. Need to cal a subroutine from the

driver program in order to pass variables.

SMARTFORMS: It is client independent. It is SAP’s own tool. Can write code in the Global area as

well as in Program lines. It generates a function module dynamically.

  1. What is the role of the driver program of a SAPSCRIPT?

Ans: The role of a driver program in SAPSCRIPT is to control the form interface by means of

Open and Close, Start and End as well as writing the contents by passing variables and printing

the elements. The communication between a SAPSCRIPT and the driver program is via the

communication structure ITCSY.

  1. How a subroutine can be called from a SAPSCRIPT?

Ans: The subroutine can be called from SAPSCRIPT as Perform <sub routine name>in Program <program name> using <var> Changing <var> EndPerform

  1. How a picture can be printed through SAPSCRIPT?

Ans: 1.   First save the file as BMP
2.   Open the BMP file in IMaging (Goto -> Programs -> Accessories -> Imaging) and
make it Zoom as 100% and save as *.TIFF 

3.   Open SE38 and execute program RSTXLDMC
4.   Give your TIFF file path name
5.   Select Bcol (for Color)
6.   TEXT ID will be ZHEX-MACRO-*.
7.   Inplace of * write your own logo name (ZCOMPANYLOGO)
8.   Execute the program
9.   Now Goto SE71 create your ZFORM
10. Create logo window
11. Goto text element of logo window 

  1. How bar code can be printed through SAPSCRIPT?

Ans: Bar Code is printed in SAPSCRIPT through the Character format and selecting the necessary option of Bar Codes already defined in the system. Else we can create the same through the font maintenance option via SE73.

  1. How do you use different color and font in SMARTFORMS?

Ans: We need to create the same through STYLE option of smart forms and create the same. Then we can use the same in the nodes of the Smart forms.

  1. How do you write ABAP code in SMARTFORMS?

Ans: ABAP codes are written in the Global Definition under the Initialization and the Form routines section as well as the Program lines under a node.

  1. How do you print a picture in SMARTFORMS?

Ans: In order to print pictures in SMARTFORMS we need to create a Graphics node and then select the appropriate picture in the same. Set the resolution accordingly.

  1. Can a SAPSCRIPT be converted into a SMARTFORM? If yes How?

Ans: Yes, We can either use the FM FB_MIGRATE_FORM or under utilities section Migrate SAPSCRIPT form.

  1. What are the necessary parts should be present in the driver program of a SMARTFORM?

Ans: The necessary parts are: OPEN_FORM, START_FORM, WRITE_FORM, END_FORM, CLOSE_FORM along with control commands.

  1. Where do we define Tab space for data in SAPScript?

Ans: When defining the paragraph for the text element we can define the TABS then. There is parameter called TABS to be defined in paragraph definition.

  1. What is difference between Window & a Page Window?

Ans:- Window: An area that is predefined in the layout set. Windows are text modules, which are positioned on a document page.

We define the window type, Default Paragraph, specify the text elements or a SAPscript text to be included etc in the Window Component.

Page Window: we define the parameters of the earlier defined Window, appearance on the document like left or right margins, Width & Height.

  1. Name a few system global variables you can use in ABAP programs


  1. What are the different elements in layout sets? 

Ans:- PAGES, Page windows, Header, Paragraph, Character String, Windows.


  1. What are the difference between CALL TRANSACTION and SESSION METHOD BDC?

Ans: Session method.
1) synchronous processing.
2) can tranfer large amount of data.
3) processing is slower.
4) error log is created
5) data is not updated until session is processed.

Call transaction.
1) asynchronous processing
2) can transfer small amount of data
3) processing is faster.
4) errors need to be handled explicitly
5) data is updated automatically

  1. How do you trap the error message in a CALL TRANSACTION BDC?

Ans: The error messages are trapped in CALL Transaction via the BDCMSGCOLL

  1. What are different modes in BDC?

Ans: ‘A’ Display screen

‘E’ Display only if an error occurs

‘N’ Do not display
‘P’ Do not display; debugging possible

  1. What are the steps in a BDC session ?

Ans: The first step in a BDC session is to identify the screens of the transaction that the program will process. Next step is to write a program to build the BDC table that will be used to submit the data to SAP. The final step is to submit the BDC table to the system in the batch mode or as a single transaction by the CALL TRANSACTION command.

  1. What are different types of Update modes

Ans: In BDC’s we have two types of updation modes – 1) Synchronous 2) Asynchronous

  1. What is main difference between session method and LSMW

Ans: In the context of session method,

the method of updating is “Batch Input” ,

we require a program to be coded,

But in the context of LSMW method,

The methods of updating

using “Batch Input/Direction Input”

from an IDOC,

from a BAPI structure.

No source code is required, the complete operation is performed in 16 steps sequence

  1. What is main difference between CATT and LSMW

Ans: Using LSMW you can update any kind of data but no changes to database are allowed, where as CATT tool can update only master data, which also allows changes to the master data and also a significant testing of data is possible

  1. Write the BDC table structure.

Ans: BDC table structure


Program CHAR (8) Program name of transaction

DynPro CHAR(4) Screen number of transaction

DynBegin CHAR(1) Indicator for new screen

Fnam CHAR(35) Name of database field from


Fval CHAR(80) Value to submit to field

  1. Is it possible to use ‘CALL TRANSACTION’ without a BDC table ?

Ans: Yes, it is possible to use ‘CALL TRANSACTION’ without a BDC table. In such case, the current program is suspended, the transaction specified is brought up, and a user must enter the data into the screens.

  1. What are the function modules that need to be called from BDC program to submit the transactions for processing ?




  1. How many sessions will be opened using BDC_OPEN_GROUP ?

Ans: Only one session can be created using the BDC_OPEN_GROUP functon.

  1. What is the functionality of ‘Classical Batch Input’ ?

Ans: In ‘Classical Batch Input’ an ABAP/4 program reads the external data that is to be entered in the SAP system and stores the data in a Batch Input session. This session stores the actions that are required to enter your data using normal SAP transactions.

  1. What should be the approach for writing a BDC program? 


STEP 3: DEPENDING UPON THE BDC TYPE i)call transaction(Write the program explicitly)
Ii) create sessions (sessions are created and processed. if success data will transfer).

  1. What are the problems in processing batch input sessions? 

Ans: i) If the user forgets to opt for keep session then the session will be automatically removed from the

session queue(log remains).  However if session is processed we may delete it manually

ii) if session processing fails data will not be transferred to SAP database table.

  1. What do you do with errors in BDC batch sessions? 

Ans:- We look into the list of incorrect session and process it again. To correct incorrect session we analyze the session to determine which screen and value produced the error. For small errors in data we correct them interactively otherwise
modify batch input program that has generated the session or many times even the data file.

Module Pool

  1. What are the different events for a module pool program?

Ans: Process Before Output and

Process After Input.

Process On Value

Process On Help

Module output.

Module input.

  1. How do we validate the screen inputs in a module pool screen?

Ans: We validate the screen inputs by the on input (Process only on input, that is, if the field contents are not initial) or on chain input event (Process only on input in a chain) on request (Process only if the user entered data on the screen) and on chain request (Process only on request in a chain).

  1. What is POV & POH?

Ans: PROCESS ON HELP-REQUEST (POH) and PROCESS ON VALUE-REQUEST (POV) are triggered when the user requests field help (F1) or possible values help (F4) respectively. You can program the appropriate coding in the corresponding event blocks. At the end of processing, the system carries on processing the current screen.

  1. What does CHAIN ….END CHAIN do?

Ans: Sometimes you want to check several fields as a group. To do this, include the fields in a FIELD statement, and enclose everything in a CHAIN-ENDCHAIN block.


**** Screen flow logic: ****





When an error is found inside a chain, the screen is re-displayed, and all fields found anywhere in the chain are input-enabled. All non-chain fields remain disabled.

  1. What happens if you enter 0 in NEXT screen attribute?

Ans: In ABAP/4 each stackable sequence of screens is a “call mode”. This is important because of the way you return from a given current sequence. To terminate a call mode and return to a suspended chain, set the “next screen” to 0 and leave to it: When you return to the suspended chain, execution resumes with the statement directly following the original CALL SCREEN statement. The original sequence of screens in a transaction is itself a calling mode. The original sequence of screens in a transaction is itself a calling mode. If you LEAVE TO SCREEN 0 in this sequence (that is, without having stacked any additional call modes), you return from the transaction altogether.

  1. What is the difference between the “change on-input” and “Change on request” in the PAI of a screen?


The ABAP/4 module is called only if the field contains a value other than its initial value. This initial value is determined by the field’s data type: blanks for character fields, zeroes for numeric.


The ABAP/4 module is called only if the user has entered a value in the field value since the last screen display. The value counts as changed even if the user simply types in the value that was already there.

  1. What is the difference between ‘CALL SCREEN # # # ‘ and ‘SET SCREEN ### ’


Ans : SET SCRREN statement sets or overwrites the follow-up screen.

LEAVE SCREEN executes the screen number currently in the follow-screen field

CALL SCREEN interrupts the processing of the current screen to call a new screen or a chain of screens, processing of the current screen is resumed directly after the call.

  1. What are dynpro and GUI status?

Ans :- Dynpro – flow logic + screens.
GUI Status – It is subset of the interface elements (title bar, menu bar, standard tool bar, push buttons) used for a certain screen.
The status comprises those elements that are currently needed by the transaction.

System Enhancement

  1. What are the different ways in which you can make changes to SAP standard software ?

Ans : Customizing

Enhancements to the SAP Standard

Modifications to the SAP Standard

Customer Development

  1. What are the different types of Enhancements

Ans: User Exit

Menu Exit

Screen Exit

Field Exit

  1. What is customizing ?

Ans: Customizing is the setting of system parameters via SAP’s own interface.

  1. Why do you need enhancements?

Ans: The standard applications do not offer some of the functionality you need. The R/3 enhancement concept allows you to add your own functionality to SAP’s standard business applications.

  1. What are enhancements to ABAP/4 Dictionary elements

Ans: These are ABAP/4 Dictionary enhancements (creation of table appends), text enhancements (customer-specific key words and documentation for data elements) and field exits (creation of additional coding for data elements).

  1. What is SSCR?

Ans: SSCR (SAP Software Change Registration) is a procedure, for registering all manual changes to SAP source coding and SAP Dictionary objects.

  1. What is the difference between modifications and enhancements?

Ans: Modifications mean making changes to the SAP standard functionality.

Enhancements mean adding some functionality to SAP standard functionality.

  1. What are the disadvantages of modification?

Ans: Modifying standard code can lead to errors

Modifications mean more work during software upgrades

  1. What are the advantages of enhancements ?

Ans: Do not affect standard SAP source code

Do not affect software upgrades

  1. What is a screen exit ?

Ans: Adding fields to the screens within R/3 applications. SAP creates screen exits by placing special

subscreen areas within a standard R/3 screen and calling a customer subscreen from within the

standard dynpro’s flow logic.

  1. How do SAP organizes its exits?

Ans: SAP organizes its exits in packages that are called SAP enhancements. Each SAP enhancement can contain many individual exits.

Active List Viewer

  1. How to insert a logo in ALV using Function Modules.

Ans: Use FM – ‘REUSE_ALV_COMMENTARY_WRITE’. If you are using Function modules to display (You can also use Class), you will have to use GRID display for displaying the logo. Its not possible in List display.

  1. How to add button to ALV toolbar using REUSE_ALV_LIST_DISPLAY?

Ans: Copy the ‘STANDARD’ GUI status from program SAPLKKBL using transaction SE90

–>Programming SubObjects–> GUI Status.

Execute this transaction to get to next screen. select status using checkbox. click on GUI Status –> Copy.

Enter your Z program name and the name you what for this status – you can keep it as ‘STANDARD’ to be simple.

Then you can edit the new status to add or delete buttons. This will also bring in the standard SAP ALV functionality such as sorting/subtotaling etc…

When you call ‘REUSE_ALV_GRID_DISPLAY’ make sure you pass it the new status name.

Performance Tuning

  1. Linier search and Binary search in an internal Table.

Ans: If internal tables are assumed to have many (>20) entries, a linear search through all entries is very time-consuming. Try to keep the table ordered and use binary search or used a table of type SORTED TABLE.

  1. Dynamically and statically defining key of a table.

Ans: A dynamic key access is slower than a static one, since the key specification must be evaluated at runtime. However, for large tables the costs are dominated by number of comparison needed to locate the

  1. Nested select statement Vs Select using Joins.

Ans: To read data from several logically connected tables use a join instead of nested Select statements. Network load is considerably less.

  1. Single line Vs Column update.

Ans: Whenever possible, use column updates instead of single-row updates to update your database tables. Network load is considerably less.

  1. Using two select statements or for all entries in Vs Subquery.

Ans: Instead of using nested Select loops or FOR ALL ENTRIES it is often possible to use subqueries. Network load is considerably less.

  1. Ordinary Loops Vs Parallel cursor.

Ans: If ITAB1 has n1 entries and ITAB2 has n2 entries, the time needed for the nested loop with the straightforward algorithm is O(n1 * n2), whereas the parallel cursor approach takes only O(n1 + n2) time.
The above parallel cursor algorithm assumes that ITAB2 contains only entries also contained in ITAB1.
If this assumption does not hold, the parallel cursor algorithm gets slightly more complicated, but its performance characteristics remain the same.

  1. Select into table & loop Vs Select and End select.

Ans:- If you process your data only once, use a Select-Endselect-loop instead of collecting data in an internal table with Select Into Table. Internal table handling takes up much more space.

  1. How do you take care of performance issues in your ABAP programs? 

Ans:-Performance of ABAPs can be improved by minimizing the amount of data to be transferred.
The data set must be transferred through the network to the applications, so reducing the amount OF time and also reduces the network traffic.

Some measures that can be taken are: 

– Use views defined in the ABAP/4  DDIC (also has the advantage of better reusability).
– Use field list (SELECT clause) rather than SELECT *.
– Range tables should be avoided (IN operator)
– Avoid nested SELECTS. 

i) System tools

ii) Field symbols and field groups.
Field Symbols : Field symbols are placeholders for existing fields. A Field Symbol does not physically reserve space for a field,but points to a field which is not known until runtime of the program.
eg:-  FIELD-SYMBOL <FS> [<TYPE>]. 

Field groups :  A field group combines several fields under one name.At runtime,the INSERT command is used to define which data fields are assigned to which field group.
There should always be a HEADER field group that defines how the extracted data will be sorted,the data is sorted by the fields grouped under the HEADER field group.


  1. What are IDOCs?

Ans:-Performance of ABAPs can be improved by minimizing the amount of data to be transferred.

  1. How can you compare IDoc with BDC.

Ans:- IDocs are a universal transport format to exchange data between SAP and external systems. When you process an IDoc, the data is unpacked from the IDoc by stripping the IDoc wrapper, like you take the gifts out of an envelope. Then the data is processed in a conservative way either via BDC, BAPI or some home-made coding.

BDC simulates the data entry via screens by taking the data out of a file and filling the screens automatically rather than having a user to type in the data. BAPIs are function modules that provide a standard API to access transaction data.

  1. How does the data actually come from SAP to the IDoc?

Ans:- You need a function module or another self-written program that creates the data to send.

If the triggering transaction supports customizable NAST messaging, then you can create a NAST message that supports ALE or IDoc. The link between the message and IDoc is defined via the process code in the partner profile WE20. Whenever the NAST message is processed it will make a call to ALE_PROCESSING in program RSNASTED or EDI_PROCESSING in program RSNASTED, which does the job for you and eventually will call the function module that fills the data hive.

If a program does not support messaging via NAST then you need to create the IDocs with your own routine and then call MASTER_IDOC_DISTRIBUTE.

  1. What is the difference between ALE, EDI, IDocs and BAPI?

Ans:- The interface concept of the classic R/3 is based on two different strategies: Remote Function Calls (RFC) and data exchange through IDoc message documents. RFC makes direct and synchronous calls of a program in the remote system. If the caller is an external program it will call an RFC-enabled function in R/3 and if the calling program is the R/3 system it will call an RFC-function in another R/3-system or it will call a non-R/3 program through a gateway-proxy (usually rfcexec.exe). BAPIs are a subset of the RFC-enabled function modules, especially designed as Application Programming Interface (API) to the SAP business object, or in other words: are function modules officially released by SAP to be called from external programs.

IDocs are text encoded documents with a rigid structure that are used to exchange data between R/3 and a foreign system. Instead of calling a program in the destination system directly, the data is first packed into an IDoc and then sent to the receiving system, where it is analyzed and properly processed. Therefore an IDoc data exchange is always an asynchronous process. The significant difference between simple RFC-calls and IDoc data exchange is the fact, that every action performed on IDocs are protocolled by R/3 and IDocs can be reprocessed if an error occurred in one of the message steps.

While IDocs have to be understood as a data exchange protocol, EDI and ALE are typical use cases for IDocs. R/3 uses IDocs for both EDI and ALE to deliver data to the receiving system. ALE is basically the scheduling mechanism that defines when and between which partners and what kind of data will be exchanged on a regular or event triggered basis. Such a set-up is called an ALE-scenario.

The philosophical difference between EDI and ALE can be pinned as follows: If we send data to an external partner, we generally speak of EDI, while ALE is a mechanism to reliable replicate data between trusting systems to store a redundant copy of the IDoc data. The difference is made clear, when we think of a purchase order that is sent as an IDoc. If we send the purchase order to a supplier then the supplier will store the purchase order as a sales order. However, if we send the purchase order via ALE to another R/3 system, then the receiving system will store the purchase order also as a purchase order.

  1. What is EDI?

Ans:- The computer-to-computer electronic exchange of machine-processable business documents in a standard format.

An electronic alternative to paper, fax, and phone-based transactions used by companies to communicate with one another.

EDI is used as a strategic tool to reduce expenses, streamline business procedures, and create a competitive advantage

  1. What is the functionality of ALE


  • Distribute your applications across several SAP systems, such that centralized functions, as well as decentralized functions can operate in the same company arena

  • Maintain and distribute master data elements from a central system, thus maintaining unique number ranges across several systems

  • Maintain and distribute control data objects from a central system, thus synchronizing important configuration data. This is important when trying to decentralise functions, yet keep them integrated

  • Couple R/2 and R/3 systems, in some instances

  • Couple SAP and external systems, via IDocs (Intermediate documents) and an external translation mechanism

  1. How does Message handling takes place in ALE?

Ans:- An ALE Message Handler acts as a bridge between SAP R/3 and another application or multiple other applications. It receives intermediate documents (IDocs) from one or more instances of SAP R/3 and carries them to application(s) for processing. Likewise, it sends IDocs received from applications to one or more SAP R/3 instances. 

  1. What is the basic functionality of ALE Converters?


  • Transfer of R/3 intermediate document (IDoc) formats straight into their own repository so that these data descriptions can be used as source or target structures when assigning data fields. 

  • Adoption and conversion of intermediate documents from R/3 Systems via the ALE interface – a remote function call that can be called up using a normal transaction. 

  • Conversion of any data format into intermediate document structures and import into the R/3 System via a remote function call (RFC) in the ALE interface.

  1. What are basic steps of creating BAPI?

Ans:- Defining BAPI Data structures in SE11

Program a RFC enabled BAPI function module for each method

Create a Business object for the BAPI in the BOR

Documentation the BAPI

Generate ALE interface for asynchronous BAPIs

Generate and release

  1. What are the basic guidelines for when developing a BAPI?



  • BAPIs must not invoke a COMMIT WORK. instead use the BAPI Transaction Commit to execute the

commit after the BAPI has executed.

  • BAPI structures must not use includes.

  • There should be no functional dependencies between two BAPIs

  • BAPIs must perform there own authorization check

  • BAPIs should not use dialogs

  • BAPIs must not cause the program to abort or terminate. re4levant messages must be communicated through the return parameter.

  1. What is the BAPI/ALE Integration

Ans:-Asynchronous BAPIs use the ALE interface this way:

  • Creates an IDOC from the BAPI data

  • Sends the IDOC to the target system

  • Receives the IDOC in the target system, creates the BAPI data from the IDoc and calls the BAPI

An ALE interface for a BAPI is created in transaction BDBG.

  1. Difference b/w the execution of an asynchronous and synchronous Bapi

Ans:-BAPIs are usually called synchronously. An asynchronous BAPI call works through an IDoc Type that has been generated for the BAPI. This, in almost all scenarios, makes sense only for two SAP components talking to each other, not for external programs.

  1. What is Remote Function Call?

Ans:- BAPI is ultimately a mechanism for getting data out of SAP R/3. If a BAPI is a ship pushing a barge (data), the engine of that ship is a Remote Function Call (RFC). An RFC is a function module in a system that is called from some other system. This, of course, covers a great deal of ground. The two systems can both be SAP, or they can be different platforms, or an RFC may be used on the spot in real time by any party making an inquiry of an SAP system from the outside (including you, sitting at your laptop).

  1. What is Business Object Repository?

Ans:- A great deal goes on in the Business Object Repository (BOR), and you must know it well. It’s not overstating the case to say that the BOR is the core of SAP. If an SAP R/3 system can be described as the animation of otherwise lifeless data, the BOR describes the living cells of this new body. Cells come in many different types, and that’s what the BOR holds: all the different types of data comprising an SAP system of databases.

The BOR’s contents essentially define the implementing company’s business model. The information it holds includes the definitions of all business objects internal to the company, as well as the defining information of all interfaces to other companies.

  1. What are the purposes for SAP’s enhancements to released BAPI?

Ans:- Application developers who use BAPIs in their programs must be able to rely on the BAPI interface remaining the same. As a result of this, once a BAPI is released, it must fulfill certain requirements regarding the stability of its interface.

Whenever SAP enhances a BAPI, downward compatibility of syntax and contents must be guaranteed whenever possible. Downward compatibility means that applications that were programmed with BAPIs from a specific R/3 Release will not be affected in later R/3 Releases if the syntax or the content of this BAPI changes.

Aniruddha Mukherjee

Aniruddha Mukherjee

Android and iOs consultant.

More Posts

Follow Me:
TwitterFacebookLinkedInGoogle Plus

One Response

Add a Comment

HTML Snippets Powered By : XYZScripts.com