SAP ABAP Interview Questions
SAP ABAP Interview Questions
Q. What is SAP ABAP?
SAP is a type of software known as ERP (Enterprise Resource Planning) that large company use to manage their day to day affairs. ABAP (Advanced Business Application Programming) is the coding language for SAP to develop RICEFW objects. (Reports, Interfaces, Extensions, Forms and Workflows).
Q. What do you mean by an ABAP data dictionary?
To describe the logical structures of the objects that are used in application development ABAP 4 data dictionary is used. It is also used to show the underlying relational database in tables.
Q. Explain the difference between pool tables and transparent tables?
Transparent tables: It has one to one relation with the table in the database. Its structure corresponds to single database field.
Pooled tables: It has many to one relation with the table in the database. Pooled tables are stored at the database level.
- Basic List: For simple reports
- Statistics: For Percentage, Average etc.
- Ranked List: For analytical reports
Q. What do you mean by BDC (Batch Data Communications) programming?
It is an automatic procedure to transfer large or external data into SAP system. ‘Queue file’ is the central component of the transfer, which receives the data through batch input programs and groups that are associated into ‘sessions’.
Q. Describe the data classes?
The data classes are classified into following classes
Master Data: The data in this class seldom change
Transaction Data: The data can be changed often in this class
Organization Data: This data is a customized data and is entered in the system when the system is configured. It is rarely changed.
System Data: This data is used by R/3 system itself
Q. What are the internal tables?
Internal table exists only when the program is run. It is used for performing table calculations on subset of database tables and also for re-organizing the content of database tables as per the users need.
Q. List down the functional modules used in sequence in BDC?
There are 3 functional modules which are used in sequence to perform data transfer successfully using BDC programming. They are
Q. What is a foreign key relationship?
To ensure the consistency of data, foreign keys are used. The relationship established between the tables and must be explicitly defined at field level. Data entered should be checked against the existing data to ensure that there is no contradiction. Cardinality has to be specified while defining foreign key relationship.
Q. In ABAP what are the differences between table and structure in data dictionary?
The difference between structure and table is
- Data can be stored physically in Table, but a structure cannot
- Structure does not have primary key but table can have
- Table can have the technical attribute but the structure does not have
Q. What is Smart Forms?
Smart forms allow you to create forms using a graphical design tool.
Q. What are the components of SAP scripts?
For SAP, SAP scripts are a word processing tool. It has a function like standard text and layout sets. Its layout set consists of: Windows and pages, Character formats, Paragraph formats etc.
Q. How to create ‘table cluster’?
- In ABAP dictionary, select object type Table, enter a table name and choose create
- A field maintenance screen for the table is displayed. Table type Transparent table, set it as a default
- Make the necessary entries in the short description and delivery classified on the Attributes page. Then define the fields of the table.
- Proceed as when creating a transparent table. Now save your entries
- Now choose EXTRASàChange table category
- When a dialogue box appears you have to select the table type ‘Pooled table’ or ‘Cluster table’
- After selecting the table, return to the field maintenance screen for the table. Field pool or cluster name is displayed on the Attributes tab page in addition to the standard fields.
- Now enter the name of the table cluster or table pool to which you want to assign the cluster table.
Q. How can you format the data before write statement in the report?
By using the loop event the reports output can be formatted
- .at first
- .at new
- .at last
Q. Explain the difference between Template and Table?
The difference between the table and template is that, table is a dynamic and template is a static.
Q. Mention what is ALV programming in ABAP? When is this grid used in ABAP?
ALV stands for Application List Viewer. To enhance the output of the report, SAP provides a set of ALV function modules which can be used, and it also improves the functionality and readability of any report output. It is an efficient tool used for arranging the columns in a report output.
Q. When do we use End-of-selection?
End of the selection event is mostly used when we are writing HR-ABAP code. In the HR-ABAP code, data is retrieved in the start of selection event and printing on the list and all will be done at the end of the selection event.
Q. Mention the difference between ABAP and OOABAP? In what situation do you use OOABAP?
ABAP is used to develop traditional programs in R/3, while OOABAP is used to develop BSP/ PCUI applications and also anything that an involved object oriented like BADI’s and SmartForms etc.
Q. What is table buffer? Which type of tables used this buffer?
Over here, buffer means memory area, table buffer means the table information is available on the application server. When you call data from database table, it will come from application server. Transparent tables and pool tables are buffered, while cluster table cannot be buffered.
Q. What is the use of ‘pretty printer’?
To format the ABAP code ‘pretty printer’ is used.
Q. What is the difference between ‘Type’ and ‘Like’?
‘Type’: You assign data type directly to the data object while declaring.
‘Like’: You assign the data type of another object to the declaring data object.
‘Type’ refers the existing data type while ‘Like’ refers to the existing data object.
Q. What are the different ABAP/4 editors? What are the differences?
The 2 editors are SE38 and SE80 and both have the ABAP editor in place. In SE38 , you can create programs and view online reports and basically do all the development of objects in this editor. In SE80, there are additional features such as creating packages, function group, module pool, classes, programs and BSP applications.
Q. Explain the difference between dialog program and a report?
A report is an executable program; dialog is a module pool program. It has to be executed via a transaction only. Dialog programming is used for customizations of screens.
Q. What is lock object?
To synchronize access of several users using same data Lock objects are used.
Q. How data is stored in cluster table?
A cluster table contains data from multiple DDIC tables. It stores data as name value pair.
Q. How can you debug a script form?
To debug a script form, you have to follow
SE71–>give the form name->utilities->activate debugger
Q. What are different types of data dictionary objects?
The different types of data dictionary objects are:
- Data Element
- Type Groups
- Search Helps/Matchcode Objects
- Lock Objects
- Table Types
Q. What are the ways you can do the tuning? What are the major steps will you use for these?
Tunning can be done in three ways disk i/o, sql tunning and memory tunning. Before tunning, you have to get the status of your database using oracle utility called statpack and tkprof .
Q. In the ‘select’ statement what is ‘group by’?
To fetch the data from the table by the specified field Group by Clause is used.
Q. What is dispatcher?
A control agent referred as SAP dispatcher, manages resources for the R/3 applications.
Q. Mention what are the two methods of modifying SAP standard tables?
There are two methods for modifying SAP standard tables
- Append structures
- Customizing includes
Q. What is the difference between a ‘Database index’ and a ‘Match code’?
‘Database Index’ contains fields from one table while ‘Match Code’ contain fields from several tables. Match code objects can be built on cluster tables, transparent tables and pooled tables.
Q. Explain the benefits of modularization technique?
By using modularization techniques, you can avoid redundancy if the program contains the same or similar blocks of statements or it is required to process the same function several times. By modularizing the ABAP/4 programs, we make them easy to read and improve their structure. Modularized programs are also easier to maintain and update.
Q. How can you create callable modules of program code within one ABAP/4 program?
- By defining Macros
- By creating include programs in the library.
Q. What are different types of parameters? How can you distinguish between different kinds of parameters?
The different types of parameters are
- Formal Parameters: It is defined during the definition of subroutine with the ‘FORM’ statement
- Actual Parameters: It is specified during the call of a subroutine with the ‘PERFORM’ statement
You can distinguish different kind of parameters by their functionality. Input parameters are used to pass data to subroutines, while output parameters are used to pass data from subroutines.
Q. What are the different databases Integrities?
- Semantic Integrity
- Relational Integrity
- Primary Key Integrity
- Value Set Integrity
- Foreign Key Integrity
- Operational Integrity
Lock Objects and Function Modules
Q. What are the names of the function modules that will be generated upon activation of a lock object?
Prior to creating setting any locks in an ABAP program, a lock object must be created in the ABAP dictionary. When the lock object is created, the system will automatically generate the two function modules required for lock management.
The first function module used to set locks is the ENQUEUE_<Lock Object Name>. This function module is used to generate a lock entry in the lock table. If the lock cannot be set for any reason then this would be reflected in the return code.
The second function module used to release locks is the DEQUEUE_<Lock Object Name>. This function module will remove a lock entry from the lock table.
These function modules are used to set and release locks in an ABAP program. The programmer simply performs the specific “CALL FUNCTION…” statement for each function module.
These lock function modules are executed in a specific work process with the SAP system dedicated to lock management. This work process is run on a single server that maintains the central lock table for the entire SAP system.
There are two types of locks that can be set:
Shared lock – is a read only lock that prevents data from being changed while a user is reading it.
Exclusive lock – is a write lock that prevents data from being changed while a used is already modifying it.
Update function modules
Q. Update function modules are classified as either V1 or V2. Which type of update is performed first and in what mode (Asynchronously, Synchronously or locally) can each type be processed in?
V1 updates take priority over V2 updates and are therefore processed prior to V2 updates. V1 updates can be performed asynchronously, synchronously or locally. V2 updates always run asynchronously.
ABAP Memory Exchanging
Q. What two statements would be used to exchange data between programs using ABAP memory?
EXPORT to MEMORY ID <id> will copy data to ABAP memory and IMPORT from MEMORY ID <id> is used to copy the data from ABAP memory into a program.
The data that is being exchanged via ABAP memory must be declared in the two programs involved with exactly the same data declarations.
Q. What are authorization objects and what statement is used to perform an authorization check in an ABAP program?
Authorization objects are composed of a grouping of fields. The values in these fields will be used in an authorization check.
AUTHORITY-CHECK is the statement used in an ABAP program to perform an authorization check against an authorization object. In the AUTHORITY-CHECK statement, all fields of the object must be addressed or the keyword DUMMY is used to bypass checking on a field.
There can be a maximum of 10 fields defined on an authorization object.
Q. What is the definition of a modification in an SAP system and how do they impact an upgrade?
A modification is a change made by a customer to an SAP delivered repository object. Modifications must be reviewed during upgrade time to determine if the new SAP object should be used or if the modified object can still be used with or without further modifications.
Q. What is the Modification Assistant?
The modification assistant is a tool introduced in release 4.5 to simplify the upgrade process as it relates to modifications. The modification assistant can be triggered through the ABAP editor and it will assist in logging modifications for any changes that are made to the system.
The modification assistant provides support for modification made through the ABAP Editor, Screen Painter, Menu Painter, text element maintenance, Function Builder and ABAP Dictionary.
Function Module Exit
Q. What statement will be found in an SAP application program that implements a function module exit?
Function module exits will exist in some SAP application programs to allow a customer to add some functionality to the SAP program. Search the SAP application program globally looking for the following search string: “CALL CUSTOMER” to determine if an exit exists.
Q. What is a transaction variant and why are they used?
A transaction variant is a set of screen variants that is used to predefine screen behavior and defaults. Fields, subscreens and full screens that may not be required by a user can be suppressed from that users view through the use of variant functionality. Default values can also be set for any input fields and fields can have the “ready for input” status revoked.
A transaction variant can only be created for a dialog or reporting transaction and only normal, subscreen and dialog screens can be included in the variant.
The GuiXT script language allows a developer to modify a screen through transaction variant maintenance providing more flexibility and power to the developer. Screen layouts can be modified by inserting buttons, value helps, moving objects, inserting screens and much more
Fig. 1: Transaction SHD0
Q. List some of the many different ways that the SAP standard functionality can be changed by a customer?
The SAP standard can be changed through personalization, customizing, modifications, enhancements and custom ABAP programs developed by the customer development team. Examples of these different approaches for changing the standard are as follows:
Personalization techniques include creation of variants, set/get parameters and activity groups.
Customizing is the most common way for changing the SAP standard through the use SAP tools such as the R/3 reference model and the Implementation Guide. Customizing could be considered mandatory in order to implement R/3 and is usually performed by the functional team.
Enhancements are usually performed by the development team and include activities such as dictionary enhancements, function module exits, menu and screen exits and Business add-ins (BADI’s)
Custom ABAP programs are developed for a wide variety of reasons and can work with standard SAP objects or custom developed objects.
Modifications to SAP objects are strongly discouraged. All other techniques should be explored before modifying an SAP object. The SAP Software Change Registration SSCR) is a procedure for registering all manual modification to SAP objects.
Q. What are two different ways to add fields to SAP tables?
An append structure or a customizing include can be used to add fields to a table. Append structures are created by adding fields to the end of a table while Customizing includes are specified by the SAP developer in advance to allow for the customer to create new fields.
Q. What is a BADI?
BADI stands for Business add-in. BADI’s are a relatively new enhancement concept that make use of ABAP Object technology. This is a true object oriented approach to SAP enhancements using classes, interfaces and methods to implement the BADI
In order to enhance a SAP application program, the BADI must first be defined. The developer will create an interface for the BADI. An adapter class is created from this that will implement the interface. Developers will then create an instance of the adapter class in the SAP application program and create method calls as required.
Fig. 2: SE18 – BADI Maintenance
Q. Explain the relationship between a functional area, user group and query when developing queries using the SAP Query tool?
Functional areas and user groups are organizational elements used in SAP Query that must first be created in order to user the query environment.
The data that a query will be based on is defined in a functional area. A functional area is typically based on a logical database but can be any table and fields within that table.
Users are assigned to user groups. Functional areas are also assigned for the user group allowing users to create and start queries based on the data in that functional area. Multiple functional areas can be assigned to a user group and a functional area can be assigned to several different groups.
Q. What ABAP statement will trigger list generation?
The first WRITE statement encountered in an ABAP program will trigger list processing. Upon completion of the program, the list is output. The system will generate some standard headings for list output that includes the program name and a page number in the heading.
Output an Icon
Q. What two statements are required in an ABAP program to output an icon using a write statement?
There are 2 statements required in the ABAP program:
The INCLUDE <ICON> or INCLUDE <LIST> statement is required in the program.
The WRITE statement will have the following syntax: WRITE <Icon-Name> AS ICON.
The Include files contain the names of constants that represent all system defined icons. <LIST> contains only icons that are relevant for list processing while <ICON> will contain all system defined icons.