You are on page 1of 21

1.What is the difference between Drilldown reprt and Interactive report?

2. Is there any similarity between Classical report and Drill down Report?
There is no difference between drill down and interactive report, they are the same.
With drilldown reporting, SAP provides you with an interactive information system to let you evaluate the
data collected in your application. This information system is capable of analyzing all the data according
to any of the characteristics that describe the data. You can also use any key figures you wish to
categorize your data. You can display a number of objects for a given key figure, or a number of key
figures for a given object. In addition, the system lets you carry out any number of variance analyses
(such as plan/actual comparisons, fiscal year comparisons, comparisons of different objects, and so on).
You can produce both simple, data-directed lists (basic reports) and complex, formatted lists in drilldown
reporting (form reports).
Drilldown report provides you with comfortable functions for navigating through your data. For example,
you can jump to the next level of detail or the next report object on the same level, hide individual levels
and switch between the detail and drilldown lists. It also provides a number of additional functions which
let you process lists interactively (sorting, conditions, ranking lists, and so on). SAP Graphics, SAPmail
and the Excel List Viewer are also integrated into drilldown reporting.
The drilldown functions are divided into three groups which differ in the number of functions available.
That way each user can choose the functional level most suited for his requirements.
In addition to the online functions for displaying reports, drilldown reporting also provides functions which
let you print reports. A number of formatting functions are available to let you determine the look of your
printed reports (page breaks, headers and footers, underscores, and so on).
The menus and the functions available directly on the drilldown report make it easy to use the information
What is an Interactive Report?
An interactive report generally works in the following fashion:
1. Basic list is displayed.
2. User double clicks on any valid line
User selects a line and presses as button on the tool bar.
3. The corresponding event is triggered
4. Then in the code, the line on which action was done, is read.
5. Depending on the values in that selected line, a secondary list is displayed.
6. Steps from 2-5 are repeated till the end.
From the above explanation, I believe, its clear that, the 20th list, will essentially depend on the "selected
line" of 19th list. According to your question, you want to move to 20th list directly, without "a prior list".
May I know the exact requirement so that, an appropriate solution can be suggested?
Again, your question was, how to move to 20th list directly on pressing of execute button. Its not possible
to move to 20th list. You must cross over a basic list, before you can go to a different list level, using the
code given by Pavan.

What are Drilldown reports?

The lines of basic list of a drilldown report when clicked, will take the user to the corresponding (standard)
object's display.
For eg: Suppose your report's primary component is purchase requisition, (assume you are printing PR
details), and the basic list displays details of many PRs.
Eg: when clicked on a particular line of the PR basic list, it takes you to std t-code me53 (display of
purchase requisition). This is the 'Drill-down' functionality.
For this, in the at-line selection of your program, as per the above ex: you'll set the parameter ID of PR
number BAN (that you can get from Data element) in memory (using set parameter id) and then calling
the corresponding transaction (usually skipping initial screen of the std t-code).
Likewise, if it's Material Number (Matnr), you'll be displaying MM03 transaction w.r.t. the line's matnr.
How many types of reports are there in ABAP and what is the difference between them?
There are 2 type of reports. They are:
- Interactive report
- Classic reports
In classic reports, we can see the output in single list where as in interactive reports we can see the
output in multiple list.
In ABAP, there are a total of 7 types of reports. They are:
- Classical
- Interactive
- Logical Database
- ABAP query
- ALV Reports (ALV stands for ABAP List Viewer)
- Report Writer/Report Painter
- Views (There are different types of views also)
Classical Reports
These are the most simple reports. Programmers learn this one first. It is just an output of data using the
Write statement inside a loop.
Classical reports are normal reports. These reports are not having any sub reports. IT IS HAVING ONLY
Events In Classical Reports.
INTIALIZATION: This event triggers before selection screen display.
AT-SELECTION-SCREEN: This event triggers after processing user input still selection screen is in active

START OF SELECTION: Start of selection screen triggers after processing selection screen.
END-OF-SELECTION : It is for Logical Database Reporting.
Interactive Reports
As the name suggests, the user can Interact with the report. We can have a drill down into the report
data. For example, Column one of the report displays the material numbers, and the user feels that he
needs some more specific data about the vendor for that material, he can HIDE that data under those
material numbers.
And when the user clicks the material number, another report (actually sub report/secondary list) which
displays the vendor details will be displayed.
We can have a basic list (number starts from 0) and 20 secondary lists (1 to 21).
Events associated with Interactive Reports are:
AT PF<key>
HIDE statement holds the data to be displayed in the secondary list.
sy-lisel : contains data of the selected line.
sy-lsind : contains the level of report (from 0 to 21)

Customer exit real time business example SAP

Business Requirement: When ever we create a customer. We need to check weather the customer
belongs to Country : GERMANY and if Region is equal to space .Then, Raise an Error message.For this
requirement we need to implement Function Module exit.
Technical requirements:

Tcode is : XD01/ XD02/ XD03.

Country Field is : LAND1 .

Region Field is : REGIO.

Table name is : KNA1 .

The above tables and fields are given by functional consultants.

To implement the Customer exit for this we need to follow the below steps.
Step1: Find the function exit.
Step2: Verify the customer exit.
Step1: Create project for customer exit.
Step4: Implement the Customer exit.
Find the function exit
Go to SE93 (maintain Transaction) T-code, provide XD01, display.

Double click on Program name SAPMF02D.Click on Find icon, main program, find CALL CUSTOMER,

A list of call customer functions will be displayed.

Based on requirement, Check Import/Export Parameters for each Function Module And roughly select
some Customer Function Modules .

As per this requirement, we need KNA1 Table details, So we can use the below Customer Function
Module which has an exporting parameter I_KNA1.
Verify the Customer Exit
Then verify the customer exit (function module) wheather it will full-fill requiremnt.
Double click on Function module name and put the break point .
Go to SE11-KNA1-Display, get a customer and go to XD02.

Provide a customer, save (Ctrl S ), wait for breakpoint to trigger.

Stop the Debugging and now implement the Functional Module Exit. As this exit is triggered, this is the
suitable Functional Module Exit for our requirement.

Create Project in CMOD to implement customer exit.

Go to T-code CMOD (Project Management), provide a project name, create.

To implement we need to provide enhancement name but we don`t have enhancement name, we just
have customer exit name, now we need to find enhancement name.
Follow the below steps to find enhancement for a customer exit.
All the enhancements for customer exits will be stored in MODSAP table, we can get enhancement name
by using our customer exit.
Get Function module name from customer exit, double click on CALL CUSTOMER FUNCTION '001'.

Not down the Function Module name, go to SE11, provide table name MODSAP, display, contents and
provide enhancement/member as EXIT_SAPMF02D_001, execute.

You will find the enhancement name for the function exit.

Now go to CMOD and to project ZXD01_EX and click on enhancement assignments and add
enhancement as SAPMF02D, enter and click on components.
You will find Function module name, double click on function exit.

You will find a include inside the function module, double click to create and add your own code.

And add below code.

Click BACK, activate Function Module.

Again click BACK,

Exit is implemented, test the object.

Go to XD02 .
Enter a Customer

Change Country to DE and Region to space .

We will get a error message.

BADI vs BAPI vs User Exits vs Customer Exits: Basic Knowledge for SAP Functional Consultants
With this article we would like to open a series of posts that are not directly related to SAP certification but
can be very useful in preparing for a job interview. In these posts, we want to write about a variety of
questions that you may encounter at interviews for SAP jobs. The idea is to have every post devoted to a
particular SAP interview question. Hopefully, our articles can help you in gaining advanced knowledge of
SAP and acing your SAP job interview.
Our first article is intended for SAP functional consultants and it will provide some basic information about
BADIs, BAPIs, and User Exists. We are sure that most of SAP functional consultants have heard these
terms and have an initial understanding of them but still there is a lot of confusion about their purpose and
the difference between them. So, let us get started.
What are BADI, BAPI, User Exits, and Customer Exits? What Is The Difference Between Them?
Basically, all of them are programs and they enable us to extend the functionality of an SAP system in
order to meet custom requirements of business. It is a good idea to discuss them one by one and then
make a comparison.
BADI: Business Add-In
BADIs (Business Add-Ins) are custom enhancements to the standard SAP system. You can insert them
into the system to accommodate user requirements that are not very common and should not be present
in the standard configuration of SAP. For instance, in a particular industry, you may have a specific
requirement in a business process that cannot be covered by the standard functionality of SAP. This
requirement can be addressed by creating a special BADI that will implement the missing
functionality. BADI provides similar customizing opportunities as Customer Exit but it is more powerful
because BADI does not assume a two-level infrastructure (SAP system and customer developments)
like Customer Exit. BADI allows more complex system infrastructure that can include SAP, countryspecific versions, industry solutions, customer developments, and so on.
BAPI: Business Application Programming Interface
BAPI (Business Application Programming Interface) is an interface that provides access to data and
processes inside an SAP system. There are two kinds of applications of BAPIs. First, they can be defined
as API methods for SAP business object types. Second, they can be defined as interfaces that are
implemented outside of an SAP system but can be called from within the SAP system. Functions that are
implemented outside of the SAP system can be standardized and made available as BAPIs. BAPI is
commonly used for setting up a synchronous communication interface between two parties. Technically
the communication is enabled by the process called RFC (Remote Function Call). Unlike RFC, BAPI are
provided by SAP and are standardized in the Business Objects Repository (BOR).
User Exit
User Exit is an ABAP form that is called by SAP standard programs. It is identified with a three character
code that tells the SAP system that a custom chunk of code needs to be executed at a predefined point of
a standard SAP program. The character codes look like SXX or UXX where XX represents a two-digits
number. If a code starts with S letter, it is a standard user exit delivered by SAP. If a code starts
with U letter, it is a custom user exit defined by a user. Inside a user exit it is possible to read and

change almost any data (local or global) from the host SAP program. Therefore, user exits give you a lot
of flexibility but this flexibility comes at a price of the higher risk to make a critical error that would lead to
an ABAP dump or inconsistency in database records.
Customer Exit
Customer Exit is an ABAP function that is called by SAP standard programs. It serves the same
purpose as User Exit: enabling users to add their own functionality to the standard SAP transactions.
There are several types of Customer Exits: Menu Exits, Screen Exits, Function Module Exits, Field Exits.
Unlike User Exits, Customer Exits are more restrictive in terms of what you can do with them because
inside a Customer Exit you can only access and manipulate the parameters specified with keywords
import, export, changing, tables. At the same time it is much safer to use Customer Exits than User
Exits because the risk to break something or create inconsistent database entries is low.
What Is The Difference Between Them And When Use What?
Probably, some differences between BADI, BAPI, User Exits, and Customer Exits are already clear
based on the descriptions that we provided above. Nevertheless, let us elaborate a little bit. If you need to
enhance the standard functionality of SAP, you should be looking at BADI, User Exits, or Customer
Exits. They all are created with the purpose of enabling a convenient plugging of new (custom) functions
in the standard SAP programs using predefined hooks. These three enhancement interfaces offer more
or less similar capabilities but BADI is currently the most advanced approach towards creating custom
enhancements in the standard SAP functionality. On the other hand, BAPI serves more general purpose
and simply provides an interface for accessing data and processes inside an SAP system. One of the
most common applications of BAPI is to enable connections between SAP and non-SAP system.
We hope that this post can help to clarify the concepts of BADI, BAPI, User Exits, and Customer
Exits to functional SAP consultants. Speaking from our experience, this question is often asked at
interviews for SAP jobs. If you can provide an answer to this question similar to what we explained in this
article, you are most likely will successfully pass that job interview (provided you are doing fine with the
rest of the interview ). If you have something to say about this question or have any questions, please
post your comments using the form below.

1. What are the different ways in which you can make changes to SAP standard software ?
Enhancements to the SAP Standard
Modifications to the SAP Standard
Customer Development
2. What is customizing ?
Customizing is the setting of system parameters via SAP's own interface.
3. Why do you need enhancements ?
The standard applications do not offer some of the functionality you need. The R/3 enchancement concept
allows you
to add your own functionality to SAP's standard business applications.

4. What are the different types of enhancements ?

Enhancements using customer exits
Customers' potential requirements which are not included in the standard software are incorporated in the
as empty modification 'shells'. Customers can then fill these with their own coding. Enhancements can
relate to
programs, menus and screens. Upward compatibility is assured. In other words, SAP guarantees that the
jump from the
standard software to the exit and the interface which call the exit will remain valid in future releases.
Enhancements to ABAP/4 Dictionary elements
These are ABAP/4 Dictionary enhancements (creation of table appends), text enhancements (customerspecific key
words and documentation for data elements) and field exits (creation of additional coding for data
5. What is customer development ?
Creating customer-specific objects within the customer name range.
6. What is SSCR ?
SSCR (SAP Software Change Registration) is a procedure, for registering all manual changes to SAP
source coding and
SAP Dictionary objects.

7.What is the difference between modifications and enhancements ?

Modifications mean making changes to the SAP standard functionality.
Enhancements mean adding some functionality to SAP standard functionality.
8. What are the disadvantages of modification ?
Modifying standard code can lead to errors
Modifications mean more work during software upgrades
9. What are the advantages of enhancements ?
Do not affect standard SAP source code
Do not affect software upgrades
10. when do you opt for modification ?
Customer exits are not available for all programs and screens within the R/3 standard applications. You
can only
use exits if they already exist within the SAP R/3 System . Otherwise you have to opt for modifications .
11. What are the various types of customer exits ?
Menu exits
Screen exits
Function module exits
Keyword exits
12. What is a menu exit ?
Adding items to the pulldown menus in standard R/3 applications .
13.What is a screen exit ?
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
14. What is a function module exit ?
Adding functionality to R/3 applications. Function module exits play a role in both menu and screen exits.
15. What is a keyword exit ?
Add documentation to the data elements of key words defined in the ABAP/4 Dictionary. The system
displays this

documentation whenever a user presses F1 to get online help for a screen field.
16. How do SAP organizes its exits ?
SAP organizes its exits in packages that are called SAP enhancements. Each SAP enhancement can
contain many
individual exits.
17. What is an add-on project ?
To take advantage of the exits available within standard R/3 applications, you need to create an add-on
This project lets you organize the enhancement packages and exits you want to use. The add-on project
also allows
you to hang add-on functionality onto the exi t hooks contained with SAP enhancements.