Professional Documents
Culture Documents
Sap Abap Interview Doc Real Time
Sap Abap Interview Doc Real Time
Sap Abap Interview Doc Real Time
Structure is a combination of different fields, Which is having same Data type or Different Data
type fields . This structure is also called as ‘Work area’. Structure is a skeletal view of a table. It contains
the definition of columns and don’t have any contents.
Whenever you create a structure it will be allocate some physical memory. Every structure or work
area can be holds only one record in run time of your program
1. Append structures,
2. Include structures.
APPEND structure is one where for a table we use append structure and within this we implement
the required fields along with its properties.....These are custom defined fields
INCLUDE structure is one which is been appended to a table, but already the include structure has
fields with its properties....These are SAP defined fields.
Internal table is a combination of different fields which is used to holds multiple records at runtime.
If we want to hold multiple records we need to have an internal table, internal table is a dynamic
sequential memory buffer, allocate some memory during the run time.
1
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
5. What is the difference between standard, sorted and hashed table?
a. Standard internal tables having linear key, we can access them either the Index or Key.
c. To fill the standard internal table records we can use only APPEND statement.
d. We can use READ, MODIFY, and DELETE lines statements for Standard Internal tables by
referring to the Index.
a. Sorted internal tables are always saved correctly sorted by KEY. They also having Linear Key.
b. The key of Sorted internal tables can be either UNIQUE-KEY or NON-UNIQUE KEY and must
specify any one.
2
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
6. Which methods use to pass the records from work area to internal table body?
We have using three methods to pass the records from work area to internal table body. The
methods are:
c. COLLECT Ex: COLLECT st_tab INTO it_tab. (NOT USE IN SORTED TABLES).
APPEND : This command inserts a new record at the end of the table.
INSERT : This command inserts a new record at the given index,
COLLECT : This is used for summation purpose. it will add the numeric values of the new record to the
existing record without changing the non numeric values..
By default, all the records that you append to your internal table have a key. This key is the
combination of all non-numeric fields. This is the implicit key
You can also define your own key for an internal table called as User-defined key’s. You
would add WITH KEY FIELD1 FIELD2 … etc. to your DATA statement.
a. UNIQUE: additional records with the same key would not be permitted
3
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
9. How to declare an internal table size?
We can use the command INITIAL SIZE 0 for declaration of internal table size. Internal table size
means to assign the initial lines to storage memory.
INITIAL SIZE <n> parameter: With <n>, you specify an initial number of lines for the internal
table..
Ex:
DATA: TT_TAB TYPE SORTED TABLE OF TY_TAB WITH UNIQUE KEY NO INITIAL
SIZE 0.
If you know the maximum size of an internal table and that size is less than 8K, you can increase
the system’s performance by specifying the maximum size in the INITIAL SIZE <n> parameter.
10. What is the difference between READ TABLE and DESCRIBE TABLE in internal tables?
READ TABLE is used to READ (search) single record at a time from the internal table.
So the above statements will read the record from the internal table it_vbak and places them in
work area wa_vbak.
DESCRIBE TABLE is used to find the properties of the internal table like how many records the
internal table have.
READ TABLE command is used s to search for a record of an internal table. It’s READ TABLE
command works on basing two methods, there are :
12. What is the difference between Linear search and Binary search?
Linear search is nothing but processing sequentially one by one line searching.
Ex: There are 9 numbers , we have to find 7
4
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
123456789
Linear search : we proceed 1 by 1 : it takes 7 iterations
Binary search: (total records divide by 2 parts) we take middle value( 5) compare with 7 now we
are left with 6 7 8 9
we compare (8) and (7) with 7 ... Thus process completed in 2 iterations
Binary search is one of the fastest way to find the record exists in the internal table.
TO use BINARY SEARCH, you have to SORT the internal table in ASCENDING/DESCENDING ORDER. Then
only you will get the exact results.
We have three methods for using Delete internal tables, there are:
1. CLEAR :
The CLEAR <internal table> statement initialize all single fields in the header line of an
internal table according to type.
2. REFRESH: The REFRESH <internal table> statement deletes all table lines. The table storage
space is not released. The header line remains unchanged.
3. FREE: The FREE <internal table> statement releases the storage space required for a table.
The header line remains unchanged.
5
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
16. What are the Aggregate Functions in SELECT Query?
The aggregate functions MIN, MAX, AVG, SUM, and COUNT are a valuable tool for accumulating
values across the entire table or a subset of the table rows based on the conditions in the WHERE
clause.
a. Notice there is no ENDSELECT because the aggregate SELECT statement does not return
multiple records.
17. Have you done performance tuning? What are the things you are going to do in performance
tuning?
Yes. ST05 is one of the transaction for check Performance of your program it’s called as SQL trace
SLIN transaction for Extended program check. (Program > Check > Extended Program check)
The most common performance problem that occurs in ABAP programs is because of huge number
of records in the internal tables.
if a program has huge nested internal tables the program has bad performance.
The WHERE condition that is used in inner loops expend a significant amount of processing time.
The idea is to avoid where conditions in the inner loops by maintaining the loop indexes (From)
manually.
The WHERE condition that is used in inner loops expend a significant amount of processing time.
The idea is to avoid where conditions in the inner loops by maintaining the loop indexes (From)
manually.
6
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
In SAP we have two types of debuggers available:
21. What are the differences between classical and new debugger?
The classic ABAP Debugger runs in the same roll area as the analyzed application. It is therefore
displayed in the same window as the application.
The new ABAP Debugger is executed in its own main mode (external mode), while the application
to be analyzed (debug ) uses a second main mode (two-process architecture). The new Debugger is
therefore displayed in its own window of the SAP GUI.
2. Dynamic Break-points
23. What is the difference between For all entries and Joins?
Inner Join: Retrieves data from Data base tables based on the 'WITH KEY' fields which you have
mentioned in your 'SELECT' query. It also depends on the 'WHERE' condition. In total the 'Inner Join' is
filtering the data at DATABASE LEVEL.
For all entries: Here at first you are going to fetch data from Db1 into itab1 for specified condition.
then again you will use one more select query to fetch the values from DB2 for the corresponding
entries in internal table itab1.
24. What is the difference between Inner join and Left outer join?
• An inner join of A and B gives the result of A intersect B, i.e. the inner part of a venn diagram
intersection.
• An outer join of A and B gives the results of A union B, i.e. the outer parts of a venn diagram
union.
7
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
Examples
Suppose you have two Tables, with a single column each, and data as follows:
A B
- -
1 3
2 4
3 5
4 6
Note that (1,2) are unique to A, (3,4) are common, and (5,6) are unique to B.
Inner join
An inner join using either of the equivalent queries gives the intersection of the two tables, i.e. the
two rows they have in common.
a | b
--+--
3 | 3
4 | 4
Left outer join
A left outer join will give all rows in A, plus any common rows in B.
a | b
--+-----
1 | null
2 | null
3 | 3
4 | 4
Clustered and pooled tables are different to transparent tables as they are stored internally by the
R/3 system. They cannot be converted to OpenSQL and processed directly as the R/3 system imposes
restrictions.
8
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
Joins that include clustered or pooled tables are decomposed and processed using ABAP nested join
logic.
26. What are the pre requisites for FOR ALL ENTRIES?
Prerequisite: which table is used in FOR ALL ENTRIES, that is must having records or NOT INITIAL
and has some common fields with the table you want to fetch data into.
27. What is the difference between Developer access key and Object access key?
1) Developer Key - To Create/Change any Custom Object you will required Developer access key .
System asks Developer key only once, when ever login Developer in first time for system
recognize as Developer.
2) Object Access key - This key will be available in service.sap.com . if you change or
modifying the standard SAP Logic system will be asks Object access key.
28. What are the types of data we have in SAP & give some examples?
The following graphic shows the different data types that are used in ABAP. Data types form a part of
the ABAP Type Hierarchy.
9
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
Data types can be divided into elementary, reference, and complex types.
29. What are the differences between Transparent , Pooled and Clustered tables?
I. Transparent tables :
· Transparent tables allows secondary indexes. (SE11->Display Table->Indexes)
· Transparent tables Can be buffered. (SE11->Display Table->technical settings) Regularly or heavily
updated tables should not be buffered.
30. What is the difference between Data class and Delivery class?
DATA CLASS: The data class defines the physical area of the database (for ORACLE the TABLESPACE)
in which your table is logically stored. If you choose a data class correctly, your table will automatically
be assigned to the correct area when it is created on the database.
The most important data classes are (other than the system data):
There are two more data classes available, USR and USR1. These are reserved for user
developments.
DELIVERY CLASS: You can use the delivery class to control the transport of table data for an
installation, upgrade, or client copy and transports between customer systems. The delivery class is also
used in the extended table maintenance.
You can use the technical settings of a table to define how the table is handled when it is created in
the database. You can specify whether the table is buffered and whether changes to data records of the
table are logged.
11
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
The data class defines the physical area of the database (table space) in which the table must be
created.
● Size category:
The size category defines the size of the extents created for the table.
When the table is created in the database, the system determines the required information about the
memory area to be selected and the extent size from the technical settings.
● Buffering permission:
The buffering permission defines whether the table can be buffered.
● Buffering type:
If the table can be buffered, you must define a buffering type (full, generic, single-record).
The buffering type defines how many table records are loaded into the buffer when a table entry is
accessed.
● Logging:
This parameter defines whether the system logs changes to the table entries. If logging is switched
on, the system records each change to a table record in a log table.
The purpose of the table maintenance generator is maintain the records or entries from the
database table.
Table Maintenance Generator is a tool used to customize the tables created by end users and can
be changed as required, such as making an entry to that table, deleting an entry etc.
In other words, table maintenance generator is a user interface tool which is used to change the
entry of the table or delete an entry from the table or create an entry for the table.
Go to SE11 -> enter your table name -> click to change button -> go to Utilities -> select table
maintenance generator.
12
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
34. What are the Mandatory Parameters pass in the TMG?
1. Function Group
2. Authorization group
35. What is the difference between Single step maintenance and Two step maintenance?
Single step: Only overview screen is created i.e. the Table Maintenance Program will have only one
screen where you can add, delete or edit records.
Two step: Two screens namely the overview screen and Single screen are created. The user can see
the key fields in the first screen and can further go on to edit further details.
Enter Transaction code Name . (ex: ZTEST_T_01) and click CREATE button.
Pass SM30 for Transaction parameter and select skip initial screen check box.
UPDATE as X.
13
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
37. I have an database table in having two fields as CREATE DATE and CREATE PERSON, for those
fields are having Gray out (Not Possible input) on selection screen..whenever create an entry then
click save the database table records automatically updated with CURRENT DATE and USER NAME?
how it possible?
Within TMG screen we are going to select Environment -> Modifications -> Events .
And change to Edit mode…and Select an event ex: 05 (at the time of creating a new entry)
Click Editor column button ( 3rd column)…and write the Logic with in the FORM - ENDFORM.
ZTAB-C_DATE = SY-DATUM.
ZTAB-C_USER = SY-USER.
ENDFORM.
Whenever an Open SQL statement is used to read a record from the database table, If the table's
attributes indicate that the data should be buffered, the record is saved in RAM on the application
server in data buffers.
Later, if that record is read again, it is read from the buffer instead of the database.
14
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
1. Single record buffered
3. Fully buffered.
Single Buffered - fetch the one by one records from the table
We can using Buffer for Master data tables, because master data tables are Rarely updated and
Regularly used.
Buffer Does not recommended for regularly updated data tables like..Transaction data tables,
because of regularly updated records, buffer (RAM) lose of updated records.
By using ‘BY PASS BUFFERING’ statement in SELECT query. It will be go for fetch the records from
directly database tables and SKIP the BUFFER.
15
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
Or
If you have use any Aggregative Functions, they are not going to be considered Buffer.
Yes.
44. What are the differences between Maintenance view and Database view?
Database view:
Can be used instead of Inner Joins in ABAP program
Cannot update multiple tables at a time.
Maintenance view:
Cannot be used in ABAP Open SQL statements . Only thru Table maintenance (SM30) we can
update the Data.
45. Have you created lock objects and what is the purpose of lock objects?
Yes.
Lock objects are use in SAP to avoid the in consistency at the time of data is being insert/change
into database.
Technically:
Whenever we create a lock object System is going to create two function modules automatically, Lock
object name always starts with ‘EZ’.
1. ENQUEUE_<Lock object name>. to insert the object in a queue.
2. DEQUEUE_<Lock object name>. To remove the object is being queued through above FM.
16
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
46. What are the various types of lock modes?
O (Optimistic)
47. What are the differences between Domain and Data element?
Domains:
Domain is the central object for describing the technical characteristics of an attribute of an
business objects. It describes the value range of the field.
Data Element:
Data element is used to describe the semantic definition of the table fields like Description the
field, Attributes, Data types and Field label.
48. Have you created search help exit and what is the purpose?
Yes.
Search help exits are used to restrict the standard search help returned values according to users’
requirement.
Example: Scenario: When User1 require only Material type as Finished goods and User2 require only
Material type as Raw material, for this scenario we can use search help exit.
There are :
17
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
1. Normal Function Modules
51. What are the differences between Update function module and Normal function module?
52. What are the differences between Normal function module and RFC function module?
1) Normal function module only called within the server...but RFC can be called across the server.
2) We can access data from RFC function module from non sap also...but not possible for normal
function modules.
3) We always use pass by value mode in RFC's but in Normal function module we can use pass by
value or pass by reference.
53. What are the differences between synchronous and asynchronous update with examples?
In Synchronous process data is updated Record by record, while Asynchronous process whole data
of certain transaction is updated in one times means performance degrades..
- A “LUW” ( logical unit of work ) is the span of time during which any database updates must be
performed . Either they are all performed ( committed ) , or they are all thrown away ( rolled back ).
There are:
1. Database LUW
2. SAP LUW
55. What are the differences between Database LUW & SAP LUW?
18
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
DB LUW :
When it is called it locks the rows , Update the rows & commit the rows issued by auto Commit.
SAP LUW :
Collection of Business reports is called SAPLUW and Issuing the Commit like UPDATE,INSERT,MODIFY
statements are valid Commit work is given by Developer Side.
The statement COMMIT WORK completes the current LUW and opens a new one. Storing all change
requests for the current LUW in the Process.
The statement ROLLBACK WORK closes the current LUW and opens a new one. In doing so, all
change requests of the current LUW are canceled.
Bundling is an ABAP programming technique which collects database changes and performs these
together at the end of a transaction.
58. What are the differences between external sub routines and Includes?
External subroutine is perform statement is one program and form routine is in another
program.
includes are mainly using for data declaration and subroutines are using for passing values to
form routine.
you can change the value by using subroutine but you can not change the value in include
program.
19
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
• Macros can only be used in the program the are defined in and only after the definition.
• Macros can take max 9 parameters.
• Macros are expanded at compilation / generation.
• Subroutines (FORM) can be called from both the program there defined in and other programs .
• Subroutines can take any amount of parameters.
• Subroutines are 'expanded' at runtime.
60. What are the differences between Data type and reference variable?
• Unique is nothing but it won’t allow duplicate entries inside the table.
• Non-unique allows duplicate entries.
Yes.
Index is nothing but row number of a table and it is used to search the data fastly.
20
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
63. Can I use modify statement inside the loop?
Use modify table inside loop is not good, to avoid it use field symbol for modify table.
64. Without using modify statement how can we modify the table?
SY-DBCNT
it returns the value 2. If the system cannot find an entry, SY-SUBRC is set to 4.
Watch points allow you the option of monitoring the content of individual variables.
The Debugger stops as soon as the value of the monitored variable changes.
In addition, conditions can be specified. The Debugger also checks whether such a condition is fulfilled.
In the Watch points area, you will see a list of all the watch points set so far. For each watch point you
will see not only the current value but the value before the last changed.
69. What are the differences between watch points and breakpoints?
21
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
A breakpoint is a signal at a particular point in the program that tells the ABAP runtime processor to
interrupt processing and start the Debugger. The Debugger is activated when the program reaches this
point. Max 30 breakpoints we can use.
There is a special kind of breakpoint called a watchpoint. When you use watchpoints, the Debugger
is not activated until the contents of a particular field change ie...Watchpoints allow you the option of
monitoring the content of individual variables.The Debugger stops as soon as the value of the monitored
variable changes.You can use max of 5 watchpoints.
Break Point means when you want to stop the control to the desired statement. then you go for
the break point .
Example: IF you have 10 lines of code and if you put a break point at line number 80. then if the control
comes to the line number 80. then the debugger will stop automatically othewise it will flow further.
Watch point: when you want to see if any variable value is chagned to some other value and in that
case you should go for the watch point..
Example: if you variable "FLAG" is value '0' initaily.. now if you want to see the when this flag gets
changed to value '1'. Then in that case you should go for the watch point...
System Debugging
If you set this option, the Debugger is also activated for system programs (programs with status S in
their program attributes). When you save breakpoints, the System Debugging setting is also saved.
Normal Debugging
Normal debugging is the one we do it by the normal dynamic break points or by /H or by using static
break points.
We have four types of Execution Control Buttons in every debugger tool. There are:
Single Step: (F5) Executes the report line by line. This is useful if the user wants to see the
program execute one line at a time.
Execute: (F6) Processes all of the steps associated with one line of code. For example, one
line of code may be a call to a subroutine. Execute will process that line without showing all
of the activities inside the subroutine.
Return: (F7) Returns the user to where the calling program resumes control after a called
routine.
Continue: (F8) Processes all statements until a breakpoint or the end of the program is
reached. If no breakpoints exist, the system will execute the report in its entirety without
stopping.
72. What are the control level processing events or AT EVENTS?
22
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
Control level processing events are also called as AT EVENTS. These events are using within the
Loop statement of an internal table. These control level processing events are categorized by four
types, there are:
a. AT FIRST
b. AT NEW
c. AT END OF
d. AT LAST
1. Classical reports,
3. ALV reports.
23
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
Classical reports events:
1. INITIALIZATION,
2. AT SELECTION-SCREEN,
a. AT SELECTION-SCREEN ON field.
b. AT SELECTION-SCREEN ON BLOCK,
c. AT SELECTION-SCREEN ON RADIO-BUTTON,
3. START-OF-SELECTION,
4. END-OF-SELECTION,
5. TOP-OF-PAGE,
6. END-OF-PAGE.
1. AT LINE-SELECTION,
2. AT USER COMMAND,
4. AT PFn.
25
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
78. What are the differences between Parameters and Select-options?
Another difference is that parameter acts as a variable whereas select option acts as an internal
table with a predefined structure.
Parameters takes single value and we use ‘EQ’ ( = ) in where condition for that field.
When you declare select-options a selection tables like Internal table with 4 fields like SIGN, OPTION,
LOW and HIGH gets created to store the multiple values that are entered in the select -options. and we
use IN in where condition for that s select-options field
Select-options are the normal select options that you define on Selection screen.
While Ranges are similar to Select options in the way it creates a internal table of the same form as that
of Select-options. The internal table that is created has the fields
HIGH
LOW
SIGN
OPTION.
But the difference between Select-options and ranges are that we don't need to define the ranges
in Selection screen. It is created by explicitly coding in the Program.
AT NEW can only be used inside loop. On change of can used outside the loop.
Before using control break statement (AT NEW ) you need to sort the internal table field on which
you are using Control breaks.
Go to the transaction SM37 and select the background job (with job status ‘Active’) that you want to
debug.
This will open the selected active job (program) in the debugger.
26
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
OR
Select the work process where this job is running and then choose the menu path
Program/ModeProgramDebugging.
If you want to check the Background job status go to transaction SM37. Give your job name and
Execute. Or t code JDBG.
Sometimes you may have a requirement to schedule a back ground jobs, based on the current
month in the selection screen. Variants are client dependent and the variant values are stored in a
cluster table names as VARI.
Variants are client dependent and the variant values are stored in a cluster table names as VARI.
86. In my program I’m writing logic, certain logic should be executed in background job & certain logic
should be executed in foreground. How do we differentiate that logic?
JOB_OPEN
JOB_SUBMT
JOB_CLOSE for execute certain logic in background.
27
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
87. What is SAP memory?
The SAP Memory is a memory area to which all sessions of a SAP logon have common access. In
ABAP programs, the SET PARAMETER and GET PARAMETER commands can be used to access the so-
called SPA/GPA parameters stored in the SAP Memory
SET and GET PARAMETERS are used for SEND data to SAP memory and RETRIVE the data from SAP
memory.
The memory area of each main session has an area called ABAP Memory, which the programs in the
internal session can access with EXPORT TO MEMORY and IMPORT FROM MEMORY
EXPORT and IMPORT parameters are used for EXPORTING data into ABAP memory and
IMPORTING data from ABAP memory.
Go to Transaction SE37 for Create user defined Function modules… whenever you create Function
modules are must saved into a Function group and it’s always in active state. Function Groups are
created by SE37 as well as SE80.
90. Within a function group how many Function Modules can be created?
28
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
You can add 99 function modules to a function group.
91. Within function modules can I use statements like Call screen, Call Transaction etc?
No .
92. What are the differences between Perform and Perform on commit?
The statement of PERFORM ON COMMIT is registers the subroutine directly specified using subr in
the same program. The subroutine is not executed immediately, but a flag is set for execution when one
of the statements COMMIT WORK or ROLLBACK WORK.
Using a function module ALSM_EXCEL_TO_INTERNAL_TABLE for upload EXCEL file data into an
Internal table.
If we want to Download Internal table data into Excel file we can use Function module is
GUI_DOWNLOAD.
SAP SCRIPTS
29
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
Scripts are developed in SAP will be maintained in a table STXH, which has MANDT field. So, we
can say scripts are client dependent.
95. How do you copy a Form from one client to another client?
We can Copy the Form (SAP Script) using Transaction code SE71
Utilities -> Copy from Client (or Using standard program RSTXFCPY)
Enter the
Source Form name,
Source Client and
Target Form name.
And we have another approach to copy a FORM from one client to another client by using
Transaction code SCC1.
But to Copy the form from one server to another we can use the standard program is RSTXSCRP.
We are going to create Standard Text for SAP scripts by using Transaction code is SO10.
Whenever we create a SAP script, we are going to create three components, there are:
We have 7 types of Sub – objects in every SAP script Form, there are:
1. Header
2. Pages
3. Windows
4. Page windows
5. Paragraph formats
30
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
6. Character formats
7. Documentation.
We are going to use a standard program RSTXTRAN for assign Standard text to Request or Task.
SAP scripts are Language dependent, because of a script form is available in multiple languages.
100. How do you find request number for a form in SAP scripts?
Go to transaction SE03 and click search for objects under request, then Enter ‘FORM’ and your Form
name and execute it. Then we can find given Form request number.
1. In SE71 Enter your Form name and go to Utilities-->activate debugger .. then Execute the print
program .. it will be go to debugging mode..
2.We have an another approach to debug a Form by using Standard Program RSTXDBUG…and Execute
this Program for activate Debugger…then Run the print program, it will go for debugging mode.
We are going to use a standard program RSTXLDMC for upload .TIFF format files into SAP scripts.
If you can use standard program write this command for include .TIFF file logo into your page window :
If you want to upload .BMP (BITMAP) format logo files into SAP we are going to use the transaction
code SE78 (Logo repository).
If you can use Logo Repository , write this command for call BITMAP logo into your page window
31
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
Generally we are going to know the Form available languages by using SE71 transaction and Given
your Form name and click Display …Go to Utilities menu and select Versions , here we know the Form
activate Languages.
1. Main Window, :
Each form must have one window of type MAIN. Such a window is called the main window of the
form. The text in the main window can extend over several pages. If the text fills one page, output
continues in the window of the next and subsequent pages, Don’t lose any data.
Every page we have use max 99 MAIN window. (00-98). It controls the page break.
2. Variable Window,:
Variable window having fixed size and it’s display some fixed size of data only. It’s not support for
Page break.
3. Constant Window :
4. Graphic Window:
We are going to use Graphic window for upload a Logo into SAP script form.
We are going to use command ADDRESS – ENDADDRESS to populate the Address for country specific
format .
The purpose of command PROTECT – ENDPROTECT is used to prevent the Page-Break. I have two
pages , If I want to display the data in one page.. don’t want to split the data into two pages..in this
scenario I will going to use PROTECT - ENDPROTECT.
32
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
107. I have two pages , I would like to print two pages data into one page only? What I am do?
108. Without modifying driver program I have add some fields in a Form and how to populate values
into that fields ?
We are going to add some fields by using DEFINE command..for populate the values we are going to
write the logic within the PERFORM – ENDPERFORM.
We can use control command NEW-PAGE for provide Page-Break Manually and the next content will
be go for print in Next page.
If we want to Draw a Box on Form, we are going to use the syntax is:
In simple words, Text Elements are the only way to transfer the data from report program to FORM
using WRITE _FORM Function Module.
In SAP scripts the Control commands are helps to Format the final output of your Form. These
Control commands are passed to the SAP script composer to process a Form. Ex: NEW-PAGE, NEW-
WINDOW, ADDRESS- ENDADDRESS etc.
113. In SAP scripts how can I provide space between Word to Word?
If we want create a custom Barcode will go to transaction SE73. If we want to use this Barcode on
your form..we are going to create an character format type click Barcode check box and use custom
created Barcode name here.
115. In SAP scripts I want one page in Landscape format and another one is Portrait format? How can
I achieve?
33
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
To implement this requirement I have used the print control commands
"SPORT" -- To print in portrait format
"SLAND" -- To print in landscape format.
/: PRINT-CONTROL SPORT
/: PRINT-CONTROL SLAND
116. In SAP scripts the Box height is automatically adjusted based on the number of records on a
Internal table? How is it possible?
In this scenario first we can describe internal table records and collect into a Variable.
And we can use this variable for Box height value then automatically adjust the table height basing on
internal table records.
Syntax: /: BOX XPOS ‘2’ CM YPOS ‘2’ CM WIDTH ‘20’ CH HEIGHT &GV_LINES& LN .
Yes, it’s possible by using transaction SE71 and go to Utilities -> Activate debugger
Then go to your driver program (SE38) and execute it, we can debug by pages or windows by using ‘/H’.
118. I have a requirement how to print Header data under the item data and as well as item data
under the Header data? Is it possible, how can do this?
Yes, we can achieve this. Within the driver program we can write the logic as First Loop the Header
data table and within the Loop we can write another Loop of Item data table basing on header field
value and collect the data into a final table …now we can use this final table for WRITE_FORM function
module.
119. What are the types of Function modules we have in SAP scripts?
34
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
OPEN_FORM - Opens the form output.
OPEN_FORM : it opens the form for printing ( called only once) and should be closed with end_form.
START_FORM : is used when u have multiple pages (forms) to be printed in one output.( can be
called many times)
If we want to convert sap script to a PDF form, we are going to write the logic within your driver
program we have use COLSE_FORM function module.
Within this COLSE_FORM function module we have TABLES parameter and collect the data into an
Internal table (OTF data).
Then we can Convert OTF to PDF using SX_OBJECT_CONVERT_OTF_PDF function module.
35
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
Go to SE71 enter your form name click Display…then Go to Form -> check - > Texts . you can
appears a print program name.
We have an another approach to find driver program of your form. Go to table TTXFP contents,
enter your form name and Execute it.
b. RVINVOICE01 - Invoice
36
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
SMARTFORMS
124. What is the difference between SAP scripts and Smart forms?
1. Scripts are client dependent one while Smart form are client independent.
2. In scripts must have to write a print program while in Smart forms it is not necessary.
3. In scripts we can’t print background logo, while in Smart forms we can print background logo.
4. In scripts we have 99 main windows per page , while in Smart forms we have only 1 main window.
(we have also create without main window)
5. scripts does not have any database connectivity, while Smart forms have direct database
connectivity.
6. In scripts does not support color font, while Smart forms support color print .
7. Scripts are not net enable, while smart forms are net-enabled.
8. in scripts we can use Standard text , in smart forms we can use standard test as we as Text
modules.
9. Scripts support Labels and smart form does not support Labels.
125. How can I transport a Smart form from one language to another language?
We are going to use transaction SE63, go to Translation -> ABAP objects -> Other Long text
Here expand Forms and Styles, then Double click on SSF for smart forms.
Enter your Smart form name and enter your Source and target language.
126. What is the difference between Standard text and Text modules?
a. Standard text are client dependent , while Text modules are client independent.
b. Standard text are Language dependent , while Text modules are language independent.
c. Standard text are not transportable, while text modules are transportable.
d. Standard text are stored in STXH, STXL tables, while text modules are stored in SSFSCREEN
table.
Go to transaction SE03 and click search for objects under request, then Enter ‘SSFO’ and your
SMARTFORM name and execute it. Then we can find given Form request number.
37
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
We have 4 types of windows available In SMARTFORMS, there are:
1. Main window,
2. Secondary window,
3. Copy window,
4. Final window.
The copy window helps to differentiate some particular printouts. I’d like to print three copies of a
particular document and the first copy should mention as Customer copy, second one as Bank copy and
the third one as College copy in this scenario we will go for use Copy window.
You use the address node to insert an address into the form. This guarantees that the address is
formatted according to the postal regulations of the sender country.
Or
We are going to use ADDRESS NODE in SMARTFORMS to populate the Address for country specific
format .
131. In SMARTFORMS I have a requirement Page 1 directly go to Page3? How can I do?
In SMARTFORMS every page attributes we have an NEXT PAGE option..within a page1 attributes we
pass the Next page as Page3.
The template is used to hold static data because the number of rows and columns are fixed.
The tables is used to hold dynamic data and increase the number of rows and columns basing on the
run time data.
If we can put a template within a Loop…the last one record may be displaying by data is over
writes because of template having Fixed rows and columns and it holds static data only.
The basic difference between Table and Loop is : within a table I can’t call another table and within
a Loop I can call another Loop.
38
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
If You want to define line types for your template or table to specify the number and size of the cells
of a line in SMARFORM.
If you want to print something when the condition is TRUE then you can write it under TRUE node.
or if you want to print something when the condition is FALSE then you can write it under FALSE
node.
The command PROTECT-NDPROTECT does not supports in SMARTFORMS. We can achieve the
prevent Page-break in SMARTFORMS by using The Folder option.
With the help of FOLDER NODE for achieve the PROTECT-ENDPROTECT printing the records in same
page without any Page-break.
Execute (F8) your SMARTFORM - >Display FM -> FM attribute -> Double click on Program name ->
Double click on user defined include program ->Put the break-point where we can debug.
If you want to debug SMARTFORM in non-modifiable client, then you can try to using Transaction
SFTRACE. We can analyze our Smart Forms using trace to watch how its works and any termination
caused by errors.
We are going to use transaction SFTRACE for trace a SMARTFORM working levels.
Switch on the TRACE and run the SMARTFORM and Switch off Trace and analyze.
First we call the system generated SMARTFORM function module into your Driver program.
39
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
Then we can change and collect a Function module name into a variable by using
SSF_FUNCTION_MODULE_NAME function module.
Then we can use variable name instead of system generated function module.
Then pass the required importing parameters and execute your form directly from your driver
program.
If we want to capture long text into your form, we are going to use READ_TEXT function module.
Here we can pass ID, LANGUAGE, NAME and OBJECT parameters and collect the captured data into
a table.
Yes, I have created a couple of forms like INVOICE FORMS, SALES ORDER FORMS, DELIVERY FORMS
CREDIT FORMS etc.
Yes , I have done to changes some standard forms are Purchase order (MEDRUCK), Sales order
confirmation (RVORDER01), Invoice (RVINVOICE01) and Delivery note etc.
I have worked on various Invoice forms like Performa Invoice, Standard Invoice, Consignment
Invoice and Third party Invoice.
147. SAP provides some standard forms, why are u created custom forms?
As per client requirement , I’d like to add some more Fields , Descriptions and Company Terms
and conditions as well as company Logo etc. SAP standard forms does not support for client
requirement because of I have created some custom Forms.
If we know the SMARTFORM name …we can directly go to TNAPR table contents and enter your
SAMRTFORM name in the SFORM filed and execute it…we can find the Driver program for given
SMARTFORM.
149. If I provide Document number, how can I find the Form name and Driver program?
In this situation first we know the output type of the Given document number.. with the help of
NAST table contents Enter your Document Number with in the Object key (OBJKY) filed and execute it…
and we can see an output type (Message type ) for the given Document number.
40
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
If you want to see the program associated to the particular output type, then go to
transaction NACE --> Select the Application area (V1 - Sales) --> Click on Output type --> Select your
output type and click on Processing routine --> Here you may find the Program and Forms used in the
output type.
150. What are the steps to configure output types? Have you configure any output type?
Yes I have converted some standard script forms into SMARTFORMS as well as I have created some
custom SMARTFORMS for client requirement.
152. I know driver program and FORM name, How can I find output type?
Go to TNAPR table contents by using transaction SE11 and Enter your Print program name or
SMARTFORM name and Execute it…here we find the Output type (Message type) for Given print
program or SMARTFORMS.
41
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
DIALOG PROGRAMMING ( Module Pool Programming)
Module pool programs does not executed in Background mode, Because Module pool programs
must have a Transaction code for execute in foreground also, does not execute without transaction
code..these transaction codes cannot provide in background mode...this is the one reason.
another one is Module pool programs having 'n' number of screens as we as buttons...every screen
must having manual interaction (click the push buttons or enter field values etc).. manual interaction
not possible in Background mode....so we can't run the module pools in Background mode...
In this scenario I am going to create a new .TXT file in my presentation system with maintain
following Fields:
[FUNCTION]
COMMAND = /H
TITLE = DEBUGGER
TYPE = SYSTEMCOMMAND
Whenever we want to debug a Pop-up window, drag this .txt file on to pop-up window then click ok…
it will be going to debug mode automatically.
If you want to Validate a group of fields on a Screen, in this situation we put those fields in
between Chain and Endchain statement. In Screen Programming scenario we will use Chain Endchain
statement.
In Dialog programming or Module pool programming we can achieve the Screen Fields validations
by using CHAIN – ENDCHAIN statement. We will put the screen fields in between CHAIN –ENDCHAIN
statement.
42
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
OK_CODE is a variable which is used to collect the screen attributes related Function codes.
Whenever click on Push buttons or some Action, the Action related function code will be captured into
OK_CODE variable. OK_CODE is type of system variable SY-UCOMM. Every button related action will be
written basing on this OK_CODE value (Function code).
Automatic field checks can be avoided by AT EXIT-COMMAND, Which works exactly the same way as
cancel works on application tools bar.
Module exit.
Case OK_CODE.
When 'Exit'.
leave to screen 0.
In Module Pool programming we have Four types of events available, there are:
1. Process Before Output (PBO)
2. Process After Input (PAI)
3. Process on Help Request (POH)
4. Process on Value Request (POV)
We have two default events available in Module pool programming , there are:
a. Process Before Output (PBO) and
b. Process After Input (PAI)
Examples
Initializing screen fields, inserting default values, positioning the cursor, showing and hiding fields and
changing field attributes dynamically.
43
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
b. Process After Input(PAI):
Processing after user input.
Examples
Checking values where there is no automatic check, processing the cursor position, processing correct
entries or triggering an error dialog.
161. Can I call POV and POH events before calling PAI event?
PROCESS ON HELP-REQUEST and PROCESS ON VALUE-REQUEST are triggered when the user requests
field help F1( documentation help ) or Process values help F4 ( which gives a prompt with a list of
values )
Both POV and POH events are sub-events of PAI event, so not possible to use without PAI event…
162. I have created custom field in the screen, for that field how can I provide value help or F4 help?
If we provide F4 help (Value Help) for a field in module pool program, the logic will be going to
write under the Process On Value- request (POV) event.
Provide F4 help for this field, the Logic written in POV event.
163. What is the difference between CALL SCREEN and LEAVE SCREEN?
CALL SCREEN : Calling a single screen is a special case of embedding a screen sequence. If you want to
prevent the called screen from covering the current screen completely, you can use the CALL SCREEN
statement with the STARTING AT and ENDING AT
CALL SCREEN 1000. (or)
CALL SCREEN 1000 STARTING AT 10 10 ENDING AT 20 20.
LEAVE SCREEN : statement ends the current screen and calls the subsequent screen.
LEAVE SCREEN.
LEAVE TO SCREEN 2000.
164. What is the difference between CALL SCREEN and SET SCREEN?
44
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
Where we have write the CALL SCREEN statement , leaving the remaining code in current screen and
will be process the called screen immediately. After finish the called screen process and come back to
first screen and triggering remaining code.
if we can use SET SCREEN processes the remaining statements of the current screen and then goes to
the called screen.
165. What is the difference between LEAVE SCREEN and SET SCREEN?
if we can use SET SCREEN processes the remaining statements of the current screen and then goes
to the called screen.
If we can use LEAVE SCREEN statement, Leaves the current screen and processes the next screen.
LEAVE SCREEN. (for leaves the current screen PAI and triggers sequence screen)
LEAVE TO SCREEN 200. (Leaves 100 screen PAI and triggers 200 screen)
166. What is the difference between CALL SCREEN and LEAVE SCREEN and SET SCREEN?
CALL SCREEN : Calling a single screen is a special case of embedding a screen sequence.
LEAVE SCREEN : statement ends the current screen and calls the subsequent screen.
LEAVE SCREEN.
LEAVE TO SCREEN 2000.
SET SCREEN : statement processes the remaining statements of the current screen and then goes to the
called screen.
With SET SCREEN the current screen simply specifies the next screen in the chain , control branches
to this next screen as soon as the current screen has been processed .Return from next screen to
current screen is not automatic .It does not interrupt processing of the current screen. If we want to
branch to the next screen without finishing the current one ,use LEAVE SCREEN.
Yes..it’s possible.
If you want to create Select-options Directly not possible in Module pool program.
a. Here first we need to Create a SUB SCREEN and Define SELECT-OPTIONS with in Top
include of your Module pool program.
b. Then we need to have a Screen and Define a SUB SCREEN AREA for calling User defined SUB
SCREEN.
c. Then we need to call this SUB SCREEN with in the SUB SCREEN area by define a logic at PAI
and PBO events of a SCREEN.
CALL SUB SCREEN <sub screen area name> INCLUDING SY-REPID ‘sub screen no’.
When you add radio buttons to a screen, the Screen Painter automatically creates a one-
character screen field for the button. You should declare a corresponding one-character variable for the
radio buttons in your ABAP module top-include.
Ex:
We are going to define Radio-buttons with the help of Screen painter layout (SE51)..and
whenever you defined Radio-buttons must assign to a Radio Button group.
And Assign the Function code for All Radio-buttons as same. We are going to write the Logic of
your Radio-buttons in PAI event of your screen by using Function codes.
46
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
171. How can I handle Check boxes in DP?
When you add Check boxes to a screen, the Screen Painter automatically creates a one-character
screen field for the Check box. You should declare a corresponding one-character variable for the Check
boxes in your ABAP module top-include.
Ex:
CB2 TYPE C,
CB3 TYPE C.
We are going to define Check boxes with the help of Screen painter layout (SE51).. We are going
to write the Logic of your Check boxes in PAI event of your screen Basing on Check box Function code.
172. How do I handle TAB-STRIPS in DP? What are the steps to create a TAB_STRIPS in DP?
A TAB STRIP control is a screen object consisting of two or more pages. The TAB STRIP control is the
set of all the tab pages. When you create a TAB STRIP control, you must:
The syntax for calling Sub screens in Module pool program we are going to use :
47
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
CALL SUB SCREEN <sub screen area name> INCLUDING SY-REPID ‘sub screen no’.
CALL SUB SCREEN sub1 INCLUDING SY-REPID ‘0100’.
We have three types of controls available in Module pool programming , there are :
1. Table Control,
2. TAB STRIP Control and
3. Custom control.
1. Define a Table control on a screen area and must define the Table fields.
2. Whenever you define a table control on your screen you must going to Declare table control
name and declare a structure and internal table along with using table control fields with in the
top include.
3. Write the table control logic at Screen PBO and PAI events of your screen.
4. And Loop the internal table with control <mytab> Table control name at PBO event of your
screen.
177. In my screen I have some fields and two push buttons, if I click on one button the fields are gray-
out (disable) and click on another button that fields are enable? How can I achieve?
In this scenario I am going to write the logic at PBO event of Screen. Here I was handle the screen
attributes basing on the Single character FLAG variable, it’s define in top-include.
At PBO event we are going to Loop the SCREEN and assign the SCREEN-INPUT values basing on the
FLAG value ‘X’.
AT PAI event of your Screen, whenever you click a GRAYOUT button , the FLAG value assign as ‘X’.
At PBO event we are going to write the logic basing on this FLAG = ‘X’.
48
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
If click OPEN button , the FLAG value assign as ‘ ‘ (SPACE), we are going to write the OPEN button
logic at PBO event basing on FLAG value is INITIAL.
(Or)
In this scenario we are going to write the logic at PBO event of your screen basing on the FLAG variable
value.
The logic is:
IF FLAG IS INITIAL.
LOOP AT SCREEN.
ELSE.
LOOP AT SCREEN.
IF SCREEN-NAME = 'NAME'.
SCREEN-INPUT = 1. “input enable
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.
ENDMODULE.
178. Have you created any Custom screens? What is the business requirement?
Yes, I have created some custom screens for using Develop a Module pool programming as per
client requirement. the business requirement is whenever enter a customer details the sales order
data will be display in another screen by using table control.
49
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
BDC (Batch Data Conversion)
1. Data Conversion is a one-time activity, while interface is used to communicate data between
two systems continuously .
2. In Conversions possible to upload data from Legacy system to SAP only , while Interface possible
to upload the data from Legacy system to SAP as well as SAP to Legacy system.
3. Conversion is Mainly used for upload Master data, while Interface is mainly used for upload
transaction data.
Interface: it is a program that performs communication with External system from SAP.
There are two types of interfaces:
1. Inbound Interface: External system sends the data to SAP
2. Outbound Interface: SAP sends the data to External system.
Batch Data Conversion or Communication (BDC), which is used to collect the data from Legacy
system (Non-SAP) to SAP system.
181. What is the Difference between Synchronous and Asynchronous methods in BDC?
50
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
Synchronous Update : This means say if u have 10 records to update and the processing is going on
in a loop the Synchronous update will wait till each update is actually done in the data base and then it
will move on the next record's updation.
Asynchronous : In This mode, the updates are lined one after the other and the system doesn't wait
for the updates to actually happen. These updates are then triggered by an internally scheduled job
which then actually updates the data in the database.
182. Difference between Session method and Call Transaction methods in BDC?
1. In Session method the processing of records in Asynchronous, while In Call transaction method
the processing of records in Synchronous.
2. In Session method the Updation of the records in Asynchronous, while Call transaction method
the updation of records in both Asynchronous and Synchronous.
3. In Session method ERROR log will be generated by System, while Call transaction method
ERROR log will be handled by Users.
4. Whenever we have Huge volume of Data, prefer to go for Session method, not recommended
for Call transaction method.
5. Whenever we have multiple transactions Session method does not supported, we will prefer to
go for Call transaction method.
183. In which scenario we will go for Session method and go for Call transaction method in BDC?
Whenever We have huge volume of data , we prefer to go for Session method and not
recommended Call transaction method,
Whenever we need to Data transfer for Multiple transactions, we prefer to go for Call
transaction method, Session method for supports only Individual transactions.
MODE: "A- display all screens, E - error screens only and N - No screens
UPDATE: "L - local update, S - synchronous and A - Asynchronous update
51
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
The purpose of BDCDATA structure is with the help of Handling the Screen recordings in BDC
programming. We must define a BDC internal table type of BDCDATA structure.
186. How do you handle the ERROR log in CALL TRANSACTION method?
Within the BDC Call transaction method we are going to collect the ERROR messages into an
IT_MESS Internal table type of BDCMSGCOLL structure.
Read the IT_MESS internal table with Error MSGID and MSGNR. If you not find this record, collect
the remaining Messages into a structure.
Club the all messages into a structure, we are going to use Function module is FORMAT_MESSAGE.
indicates 1st line of table control is going to be used for transaction which is Line index of Table Control .
A BAPI is a method of a SAP Business Object. BAPI enables SAP and third party applications to
interact and integrate with each other at the Business Object / Process level.
1. We preferred to BDC’s for Updating Master data like Customer master data, Vendor master
data and A/C Document data etc.
2. We preferred to BAPI’s for Updating Transactional data like Sales order (VA01), Purchase order
(ME21) etc.
BDC will process a Transaction to Update the Data using Session or Call transaction Method.
BAPI will not process screens to update the data. It will update the Tables directly.
So it is always fast. And to Call a BAPI we must fill the Mandatory fields.
Batch Data Conversion or Communication (BDC), which is used to collect the data from
Legacy system (Non-SAP) to SAP system.
The Legacy System Migration Workbench is an R/3-based tool, which is used to transferring
data from non-SAP systems ("Legacy Systems") to R/3 once or periodically.
In BDC’s The data can be converted into the SAP system via Direct input, Session input and
Call transaction methods.
In LSMW The data can be imported (Migrated) into the SAP R/3 system via batch input,
direct input, BAPIs or IDocs.
LSMW is basically for standard SAP application while BDC basically for customized application
LSMW mapping is done by SAP while in BDC we have to do it explicitly .
Coding can be done flexibly in BDC when compared to LSMW.
192. Have you done any BDC program ? what is the business requirement?
Yes, I have done BDC call transaction program for Updating Vendor master data (XK01) at the
time of Implementation.
193. How to pass the screen capture size as DEFAULT in BDC Call transaction method?
In this scenario we are going to pass the value for CTU_PARAMS- DEFSIZE = ‘X’.
Yes, we can run the Call transaction program in Background by using the MODE as ‘N’. (No screens
display).
53
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
LSMW (Legacy System migration Workbench)
195. Can I put a Break-point in LSMW ? if I put a break-point in which Step it will be triggered?
in the Step 5 ( Maintain Field Mapping and Conversion Rules) after field mapping , go to change
mode and double click that filed, its opened text editor there you can put BREAK POINT.
After that you can read the data and display the read data, when you press the CONVERT DATA
(step11) the break point will triggered.
196. Can I write some code in LSMW? In which step can I write the logic and In which step it will be
triggered?
If You want to write some logic in LSMW, We are going to write in 5th Step (Maintain Field Mapping
and Conversion Rules) and it will be triggered in 11th step (Convert Data) of LSMW.
197. Can I write the WRITE statement in LSMW? In which step WRITE statement will be Triggered
and which step it will be Display?
If You want to write some logic in LSMW, We are going to write in 5th Step (Maintain Field Mapping
and Conversion Rules) and it will be triggered in 11th step (Convert Data) and it will be Display in
12th step (Display Converted Data) of your LSMW.
200. When I processing 100 records , in which I have 10 records which I don’t want to process. I want
to SKIP/ REMOVE those records and collect them separately in a file? How can I achieve?
In this scenario if we want to SKIP the processing of records we are use SKIP_RECORD.
In case they are errors that you can/ want to capture before proceeding to the session. you
can capture it in the END_OF_RECORD event area for each record and move it to an
internal table which can then be downloaded in the END_OF_PROCESSING event.
201. Can I handle table control in LSMW batch input record method?
We are going to handle table control in LSMW by using BAPI’s or ALE/IDOC method.
I have created LSMW , client want to update two more fields for existing 10 records in LSMW, how
can I update the existing LSMW?
If you want to add some fields in Existing LSMW project, we are going to execute the 1st step and
click Goto button from menu and select Recording overview.
55
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
And place the cursor on existing Recording name and click process recording button .
Here place the cursor on program name or screen name, where you want to add some fields and
Goto EDIT->Add screen field (Extended) -> enter your filed name, Description and Default
value->save.
203. How can I transport LSMW from one system to another system?
204. Have you created LSMW for which Application? What is the Business requirement?
Yes , I have Created some LSMW projects directly in Production system for Migration some flat file
data into SAP system as per my business requirement is Update the Vendor master Records and
Customer master records.
56
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
RFC (Remote Function Call)
205. What is the difference between BAPI’s and RFC? In which scenario we will go for BAPI’s and
which scenario we will go for RFC’s?
BAPI stands for Business Application Programming Interface. It is a library of functions that are
released to the public as an interface into an existing SAP system from an external system. A BAPI are
standard SAP function modules provided by SAP for remote access. Also they are part of Business
Object Repository(BOR).
RFC stands for Remote Function Call. Which is used to Communicate with SAP to SAP systems and it
does not communicate with SAP to Non-SAP systems. If we want to communicate data between SAP to
Non-SAP system, the non-SAP system must should be R/3 compatible.
BAPIs are always developed by defining scenarios which are used to map and implement system-
wide business processes.
You can use the RFC interface for communication between SAP systems and between SAP systems
and external systems. SAP offers several interfaces that are based on RFC, such as Application Link
Enabling (ALE), Business Application Programming Interfaces (BAPIs), and RFC function modules.
206. What are the difference between Normal Function modules and RFC Function Modules?
1) Normal function module only called within the server...but RFC can be called across the server.
2) We can access data from RFC function module from non sap also...but not possible for normal
function modules.
3) We always use pass by value mode in RFC's but in Normal function module we can use pass by
value or pass by reference.
207. In RFC Function Modules some Commands does not allowed or not use? What are they?
57
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
In RFC Function module does not support SUBMIT, CALL SCREEN, CALL TRANSACTION and
COMMIT WORK statement.
You can use the destination BACK if the current program was already called by RFC. Then, BACK
refers back to the calling program:
If the program is not called from a "remote" source, the exception COMMUNICATION_FAILURE is
triggered.
The destination NONE refers to the calling system. Function modules called with
are executed in the system of the calling program, but in their own program context.
210. Have you created any custom RFC Function Module? What is the business Requirement?
Yes , I have Created RFC function module for Communicating BI system and CRM system for
updating the data into ECC system using RFC Function module.
211. I have ECC system and CRM system, in which system I have created RFC function modules and
where should I call FM’s?
In this scenario we are going to create RFC Function module in ECC system…and from CRM system
we call this RFC Function module..
212. I have two SAP system’s A & B, I want to get the data from System A into System B, in which
system I am going to create RFC Function module, in which system I am going to call RFC function
module?
In this scenario we are going to create a RFC function module in Source system like System A.
Use this RFC Function module in Target system Like System B for Collect the data from System A .
Pre-requisite: If you want to call the RFC function module in System B, we need to create an RFC
destination in System B.
213. What are the types of RFC Function Modules we have in SAP?
Generally in SAP we have 4 types of RFC Function Modules available, There are:
1. Synchronous RFC,
58
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
2. Asynchronous RFC,
3. Transaction RFC and
4. Que RFC Function Module.
Data can be transferred between two SAP systems reliably and safely using a transactional RFC
(tRFC).
The called function module is executed exactly once in the RFC server system. The remote system need
not be available at the time when the RFC client program is executing a tRFC.
215. What is the difference between Normal RFC Function module and BAPI RFC Function module?
BAPI are RFC enabled function modules. The difference between RFC and BAPI are business objects.
You create business objects and those are then registered in your BOR (Business Object Repository)
which can be accessed outside the SAP system by using some other applications (Non-SAP) such as VB or
JAVA.
BAPI there is no direct system call, while RFC are direct system call.
216. Have you created any Custom BAPI’s? what is the Business Requirement?
Yes, I have created some custom BAPI’s for whenever I create a Purchase order and automatically
update the purchase order in other systems.
1. Whenever we create a custom BAPI, First we need to create an RFC Function module by using
Transaction SE37 and must define the type of Function Module as Remote enable (RFC).
2. RFC Function modules are available in R/3 Repository and BAPI’s are available in Business object
repository (BOR).
3. If you want to create any custom BAPI’s , we need to create a Business object by using
transaction SWO1, Create a Business object and provide Object type, Name, Description and
Program name of your BAPI.
4. If you want to add any RFC function module for your custom BAPI’s, the RFC Function module is
must converted into API method. (Application Programming Interface) by Utilities -> API
methods -> Add method.
5. Next step is Implement the methods and Release the Business object as well as methods. Now
you can ready to use BAPI. You can see your BAPI in Business object repository by using
transaction BAPI.
218. Have you used BAPI’s for Interfacing SAP system to Non-SAP system (.net, Java etc)?
59
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
219. Have you worked any BAPI FM’s? have you upload data into database using BAPI’s?
Yes, I have worked on various BAPI Function Modules like BAPI_MATERIAL_SAVEDATA for
upload the Material master data and also add some custom fields as per client requirement by
using BAPI extension structure (BAPI_TE_MARA and BAPI_TE_MARAX) and update it.
And worked on BAPI_SALESORDER_CREATE - For create Sales orders as per client requirement.
220. Have you done BAPI Extension, what are the Steps ? for which Function Module you have used?
Yes, I have done BAPI Extension for add some Custom fields in Standard MARA table as per client
requirement. I have used BAPI_TE_MARA and BAPI_TE_MARAX standard structure for Appending
some custom fields into standard MARA table. In this scenario I have used
BAPI_METERIAL_SAVEDATA Function module for updating the Extension fields with the help of
EXTENSIONIN and EXTENSIONINX tables.
I have also worked BAPI Extension for VABK and EKKO tables by using BAPE_VBAK, BAPE_VBAKX as
well as BAPI_TE_MEPOHEADER, BAPI_TE_MEPOHEADERX standard structures.
Whenever we use BAPI Function modules for updating the Data into database we must write a
COMMIT WORK statement.
SAP does not recommends directly use COMMIT WORK statement,.
Instead of COMMIT WORK, SAP recommended to use BAPI_TRANSACTION_COMMIT Function
module.
If you can use COMMIT WORK statement is works Internal system only , whenever use
BAPI_TRANSACTION_COMMIT it’s works and interfacing from external system.
In BAPI function modules we are going to define a RETURN parameter for Handling errors in BAPI’s.
The RETURN parameter may be based on the following reference structures: BAPIRET2
You must use this reference structure when developing new BAPIS.
BAPIRET1, BAPIRETURN.
(or)
Using a function Module BAPI_MESSAGE_GETDETAIL for Handle the Error Messages in BAPI..
60
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
ENHANCEMENTS
In Enhancements, SAP provides some options for where we can directly go for Add the required
Logic,
While Modifications are not provided by SAP, in modifications we are directly going to the program
and Make some changes of your logic.
61
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
Enhancement options are provided by SAP, it will be supports to future up gradation of SAP
software.
While Modifications are Not provided by SAP, so it’s not supports to future up gradation of SAP
software.
In enhancements we have easily identify the Impact of changes, while Modifications cannot identify
impact of change, only identify proper change.
225. What are the difference between User Exits and Customer Exits?
1. User exits is very old concept and First Enhancement technique provided by SAP, while
Customer exit is Pure enhancement technique also provided by SAP.
2. User exits are nothing but a Subroutines, we are going to write the logic in Form – Endform,
while Customer Exits having Function module Interface we have to implement it.
3. User exits are not upgraded where as customer exits are will upgrade.
4. User exits are created in SAP namespace, while Customer Exits are created in Customer
namespace.
5. User exits require Access key to make changes, while Customer exits does not require Access
key.
1. Customer exits are Old and Pure enhancement technique and BADI is an Interface.
2. Customer exits are available only in SAP level and Customer Level, while BADI’s are available in
Customer level , Company code level and Partner level.
3. One Customer exit are use to implement in only one project, while BADI’s Supports multiple
implementations
1. The concept of the BADI is similar to Business Transaction Events (Open FI). BTE’s was
developed specific to Financial Accounting module. But were as BADI’s was developed in
generalised to all modules.
2. BTE’s can only be used to make the program enhancements. You cannot enhance user
interface with Open FI, but you can with Business Add-ins.
3. Open FI assumes that enhancement can only take place on three levels i.e. SAP- partners –
customers, but in case of BAdi’s you can create and implement enhancements in as many
software layers as you like.
62
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
4. Function modules are used for program enhancements in Open FI. With BAdi’s, ABAP
Objects is used to enhance programs.
228. Different between Implicit Enhancement Point (IEP) and Explicit Enhancement Point (EEP)?
Implicit Enhancement points are available in source code at After Function – Before EndFunction,
After Form – Before EndForm,
After Method – Before EndMethod and
Before End-of-Structure.
In Explicit enhancement we have two different types of enhancements - Enhancement point and
Enhancement section.
Within the standard Function module or Class We can add some source code with the help of
Enhancement option. In SAP provides we have two types of enhancement options. There are:
1. Implicit Enhancement option and,
2. Explicit Enhancement option.
Within the standard logic SAP provided some Enhancement-Spots for we can add some code.
Enhancement spot is nothing but a Explicit enhancement option and also known as External BADI’s.
An Explicit enhancement-point is available under An Enhancement-Spot or Multiple Enhancement-
Spot’s. each Enhancement –Point are linked with an Enhancement-Spot.
Enhancement Point and Enhancement Sessions both are known as Explicit enhancement options.
The main difference between Enhancement Point and Enhancement Session is enhancement point
having multiple implementations, while Enhancement session having only one active
implementation.
Enhancement points implemented logic executed with the standard logic, while Enhancement
session implemented logic is overwrite the standard logic and executes only implemented logic.
Enhancement –Point and Enhancement session both are linked with an Enhancement-Spot.
(Or)
63
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
Enhancement point - SAP has some standard functionality defined for a report , but it may be required
that you'll need to add your own code. In this case the code that you'll add will be executed along with
the standard code.
Enhancement section - SAP has its standard functionality defines but it may not suit your requirement,
in that case you may need to add your code and you'll need that code to be executed only. By this
method the existing code is automatically commented and a copy of the same code is available to edit.
After executing the report only your code will be executed and the standard code will be bypassed.
232. What are the various Enhancement techniques we have in Enhancement Framework ?
SAP provides Four types of enhancement techniques we have in Enhancement Framework, there
are :
1. Function module enhancement.
2. Class Enhancement,
3. Source code enhancement and
4. Kernal BADI’s.
233. What are the steps to Implement Implicit Enhancement Point (IEP) and Explicit Enhancement
Point (EEP)?
Implicit Enhancement Point (IEP) and Explicit Enhancement Point (EEP) both are the parts of Source
code enhancement techniques.
Steps to Implement Implicit Enhancement Point (IEP):
1. Find your Function module and Goto Function module -> Enhance source code option.
2. Click Edit -> Enhancement operations -> Show implicit enhancement Option.
3. Right click the Double coated lines and Select enhancement Implementation -> create.
4. Create Enhancement Implementation Name and Composite Enhancement Implementation
234. Pre requisites for create and use Implicit Enhancement Point?
CLASSICAL BADI:
A factory method is used to call a classic BADI object. In addition, a reference variable of the
type of BADI interface of the type of BADI interface of the type of BADI interface.
The filter values are stored in a structure and passed when the BADI methods are called.
A classic BADI can be called only once, and the call positions are registered centrally.
NEW BADI:
The GET BADI statement is used to create a new BADI object. In addition, a reference variable
of the type of BADI class is used to refer to the BADI object.
The comparison values for the filters are used to search for implementations that are passed
when the BADI object is created with the GET BADI statement.
Multiple calls are possible, and the call positions are not registered centrally.
64
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
236. In any of the Enhancement technique we are not supported to use some commands?
COMMIT WORK and ROLLBACK statement is not supported to use any Enhancement technique
because of ends with Logical Unit of Work (LUW).
In SAP we have two types of BTE’s (Business Transaction Events) available, there are:
1. Publish / Subscribe BTE’s and
2. Processes BTE’s.
We are going to using transaction FIBF for create BTE’s. in SAP we have two types of BTE’s available,
there are: 1. Publish / Subscribe BTE’s and 2. Processes BTE’s.
240. How do you find User exits? What are the various techniques?
We are going to Find the User exits by using SPRO transaction code and Click Display SAP IMG
Reference. (Sales and Distribution -> System Modifications -> User Exits -> user exits in Sales.)
One more approach to Find User exit for Given transaction Ex: VA01 -> System -> Status ->double
click on Program name ->chose your related include -> find related User exit.
(Or) By using some custom defined User exit finding programs helps to find User exits for Given
transactions.
65
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
If you want to find any transaction related Customer exit, first we need to know the Package.
BADI is an Interface.
We have various approaches to find BADI’s (Business Add-Ins). If you want to find the BADI’s for any
transaction, First we need to know the Package.
We are going to find the BADI’s for the Given transaction, first we need to know the Package name.
Ex: Ex: Go to transaction VA01 and click System -> Status -> Double click on Program name -> go to
Attributes -> Here we know the package (VA).
Find BADI’s by using transaction SE84 and Expand Enhancements -> Business Add-Ins -> Double click
on Definitions -> Enter package name (VA) -> Execute it.
We have another approach to find BADI by using transaction SE18 -> Goto Environment ->
Application hierarchy -> SAP
(Or) Using a Class name CL_EXITHANDLER ( Method is GET_INSTANCE and put the Break-point at
get_class_name_by_interfaces ) for find BADI’s in real time.
(Or) using Some Custom developed programs helps to find the BADI’s , in this program we have to
using some views like V_EXT_ACT ( View for BADI Definitions) and V_EXT_IMP (View for BADI
Implementations).
66
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
(Or) Using SQL trace (ST05) Select the Table Buffer trace check box -> Activate trace -> run the
transaction -> Come back and De-activate trace -> Display trace -> given the objects as V_EXT_ACT
and V_EXT_IMP -> F8.
Within a BADI definition we have Multiple Active Implementations but we need to triggered only
some active implementations basing on the conditions or Values, in this scenario with the help of Filter
Dependent option in the BADI Definition part (here always check multiple use check box). Whenever we
using Filter-Dependent option must define an Importing parameter FLT_VAL within the method
definition.
Fallback call an option which is available only in Enhancement spot not available in Classical BADI’s.
If a BADI definition does not having any BADI Implementations the program will be go for dump, in
this situation we are going to create a Fallback class and Use it for avoid this Dump.
246. In BADI having multiple implement check box? If I uncheck it what is going to happen?
One BADI definition having multiple Implementations, if Multiple use check box is unchecked we
have multiple Implementations and triggered only one Active implementation.
The Statement GET BADI is using for Create a object in your program and CALL BADI statement is
used for Calling the methods into your program.
BADI is an Interface. In SAP we have two types of BADI’s available there are:
1. Classical BADI’s and
2. New BADI (Enhancement Spot).
Whenever we want to create a BADI Definition by using the transaction SE18, and BADI
Implementation by using the transaction SE19.
Step-1:
If you want to create a classical BADI definition Goto transaction SE18 -> Utilities -> Create classical
BADI. Whenever we create a BADI Definition, system will be Generate an Interface automatically
(ZIF_EX_).
Step-2:
Double click on the Interface and Define the Methods and Provide Import and Export parameters for
this Method. In this Interface we are going to define Multiple methods. And save it.
67
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
Step-3:
Goto transaction SE19 for BAPI Implementations. Here enter Classical BADI name and click Create
Implementation button. Enter your Implementation name. whenever we create BADI implementation
system will be generate a CLASS name automatically (ZCL_IM_).
Each BADI definition is going to create Multiple implementations.
Step-4:
Double click on the Interface name and Double click on Method name, with in the Method – Endmethod
we can Implement the logic.
249. Have you created any custom BADI? What is the Business requirement?
(or)
Have you worked on any BADI’s? What is your Business requirement?
Yes, I have created a Custom BADI. My Business requirement is I have a Customer exit, it’s Supports
for only one Implementation. In my requirement we have multiple implementations for a Customer
exit. In this scenario I am going to Create a Custom BADI. in BADI Definition I have define a method
basing on the Customer exit function module and within the BADI Implementation part I have
implemented multiple methods as per business requirement.
Whenever we create a BADI Implementation System automatically create Global CLASS. Class
helps to implement the methods of a BADI. The CLASS name always starts with ‘ZCL_IM_’.
251. I have 10 active implementations, which order is going to triggered? Can I Set these
implementations orderly?
Yes. In this scenario we have to use FILTER-DEPENDENT option IN BADI Definition part. Which is
used to help the triggering the BADI Implementations by orderly or Depending on Filtering value.
Whenever we have using Filter-Dependent Option , must define an Importing parameter FLV_VAL
within the every method definition.
252. I have a requirement for implicit enhancement point? How can I add some code in middle line or
certain number of line? How can I achieve?
In this scenario we are going to Copy the code into Implicit enhancement point and add some code
at certain line and put the command EXIT at End of the code.
68
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
253. Have you done Enhancement? What is your Business requirement?
(Or)
Have you worked on any User exit? What is your Business requirement?
Yes, I have worked on a Sales related User exit the Name is: USEREXIT_SAVE_DOCUMENT_PREPARE
and the Include name is MV45AFZZ.
My Business requirement is Avoid the Sales order creation (VA01), when the Net amount value is
below certain amount and as per client required conditions.
254. Have you worked on any Customer exit? What is your Business requirement?
Yes, I have worked on Various Customer exits Like Function Exits, Menu Exits and Screen exits as per
my client requirement.
I have worked on a Function exit and My Business requirement is avoid the Customer creation (XD01)
when Company code level Payment terms value (KNB1-ZTERM) not matches with Sales area level
Payment terms value (KNVV-ZTERM).
In this scenario I have worked on a SAPMF02D Customer exit and the Component of
EXIT_SAPMF02D_001 Function exit.
Also I have done a Menu exit and my business requirement is add some Menu options within the
standard MENUBAR as well as add some Custom transaction in to standard AREAMENU (S000).
255. Have you worked on any Screen exit? What is your Business requirement?
In my business requirement I have add some Custom fields on to the standard Purchase order
Header Screen (ME21) by using Screen exit enhancement technique. As pr client requirement I have add
two more fields like VENDOR TAX CODE and VENDOR CUST CODE on Standard screen by using Custom
Sub screen and add the same custom field into table by using Includes and Using the Function exits for
Import and Exporting the data between Screen to program as well as Program to Screen.
256. Have you worked on any BTE’s? What is your Business requirement?
(or)
Have you worked on any Implicit Enhancement point (IEP)? What is your Business requirement?
69
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
Yes, I have worked on Implicit Enhancement point of Source code enhancement technique. My
business requirement is Restrict users (sales persons) to view or change Sales order data - Using
Enhancement framework: IEP ( include MV45AFZB).
257. Have you worked on any Explicit Enhancement point (EEP)? What is your Business requirement?
A Class is an Instance of an Object or Real world entity. Every class consist of two parts:
1. Class Definition and
2. Class Implementation.
Within a Class we have various components like Attribute, Methods and Events.
The Main difference between a CLASS and an INTERFACE is: Class has both definition and an
implementation, whereas Interface only has a definition. Interfaces are actually implemented via a Class.
Objects are instances of classes. If we want to call a method of a Class, we need to have an Object.
261. What are the various Classes we have in Object Oriented ABAP?
In object oriented ABAP we have four types of classes available, there are:
1. Normal Class (Usual ABAP class)
2. Exception class,
3. Persistence class and
4. Test class (ABAP Unit).
70
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
If A Class cannot be Inherited by a Sub-Class we can use the Command FINAL.
Ex:
CLASS LCL1 DEFINITION FINAL.
ENDCLASS.
Through encapsulation we restrict the visibility of attributes and methods in the object. There are three
levels of visibility in OO ABAP.
• Public
• Protected
• Private
(Or) Encapsulation means one attribute and method can be modified in different classes. Hence data
and method can have different form and logic and that can be hidden to separate class.
The Inheritance with the help of assign the Parent class properties to the Child class. Or a Class
Properties are inherited to a Sub-Class. If we want to derived to a Sub-class from a Parent Class, the
Parent class should not be FINAL class.
In object oriented ABAP only support SINGLE Level inheritance, does not support Multiple Level
Inheritance.
Whenever we Inherited a Sub-class, the Sub-class Getting all properties of a parent class except
Private attributes.
ENDCLASS.
The purpose of Polymorphism is for RE-USABILITY. We can achieve the polymorphism with the help
of INTERFACES. Interfaces we have some methods and Does not have any Implementations. One
Implementations is called Multiple Classes, each class we can write own method Implementation,
this is helps to Method reusability with the help of Interfaces it’s called as Polymorphism.
It’s going to supports multiple inheritance.
266. What are the oops features (Concepts) supported by object oriented ABAP?
We have Six OOPS concepts supported by object oriented ABAP, there are:
1. Encapsulation,
2. Inheritance,
3. Abstract,
4. Polymorphism,
71
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
5. Events and
6. Persistence.
All components of a class must belong to a Visibility section. In Object oriented ABAP we have
three types of Areas of Visibility options:
a. PUBLIC SECTION,
b. PRIVATE SECTION and,
c. PROTECTED SECTION.
268. Difference between PUBLIC SECTION , PROTECTED SECTION and PRIVATE SECTION ?
Public Section
All of the components declared in the public section are accessible to all users of the class, and to the
methods of the class and any classes that inherit from it. The public components of the class form the
interface between the class and its users.
Protected Section
All of the components declared in the protected section are accessible to all methods of the class and of
classes that inherit from it.
Private Section
Components that you declare in the private section are only visible in the methods of the same class.
If we want to declare an instance method by using the METHODS statement, while declare a Static
method by using the CLASS-METHODS statement.
Instance components exist separately in each instance (object) of the class and are referred using
instance component selector using '->'
Static components only exist once per class and are valid for all instances of the class. They are
declared with the CLASS- keywords
Static components can be used without even creating an instance of the class and are referred to
using static component selector ‘ =>’ .
72
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
If you want to call instance methods we must create an Object, while in static methods we can call
the methods without create an Object.
CONSTRUCTOR method is nothing but a default method, the purpose of the CONSTRUCTOR
is initialize the Global or Class attributes.
Whenever we create object the CONSTRUCTOR method is triggered automatically.
Constructor method is having only Importing parameters does not have any Exporting and
Changing or Returning parameters.
CONSTRUCTOR method is one of the special method for using avoid the repetitions of the
same code in the methods.
a. Instance Constructor method is having only Importing parameters does not have any
Exporting and Changing or Returning parameters.
b. While Static Constructor method does not having any Parameters or Exceptions.
c. Instance Constructor is Called multiple times and triggers multiple times, while Static
Constructor is triggered only once in a program.
d. If we have using both Instance and Static methods, First will be triggers Static method then
go to Instance method.
e. Instance methods can be RE-DEFINED, while Static methods cannot be RE-DEFINE.
Generally In Object oriented ABAP does not Supports Method Overloading, Only supports
Method RE-DEFINITION.
If we want to change or Re-Write the Parent class methods within Child class, we are
going to use method RE_DEFINITION.
Whenever we use method RE-DEFINE, we can write the new method implementation
as well as we can call Parent class method by using SUPER.
Instance methods can be RE-DEFINED, while Static methods cannot be RE-DEFINE..
73
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
274. What is the purpose of ME?
We are going to CALL or Access within the Class components ( Attributes or Methods),we can
achieve with the help of ‘ME’ .
1. Interface having only method definitions and Does not have any method implementation,
while Abstract class having method definition and Implementation.
2. Interface does not have any Visibility section, while Abstract class having Visibility
sections.
3. Interfaces having Instance and static methods, while Abstract class methods are always
instance.
4. Interface methods Visibility are always Public, while Abstract class methods are Public as
well as Protected.
5. Interfaces are called any classes, but Abstract classes can be called only Sub classes of a
Parent class.
6. Within a class we can call Interfaces as well as one interface we can call another interface.
Static method cannot be a ABSTRACT method. If you want define an ABSTRACT methods the
class must be change an ABSTRACT class. Whenever we define an ABSTRACT methods, the
existing method implementation will be deleted or Not possible to Implement within this class.
With the Help of Interfaces, we can achieve Multiple Level Inheritance in Object oriented ABAP.
281. In a class I have some Private attributes, how can I access Private attributes of one class in
another class?
In this scenario we can use FRIEND class, if we want to access Private attributes of one class and
Make the another class as Friend class.
If we want to access Child class methods from an Parent class Object which is possible to with the
help of Narrow casting.
Syntax for Narrow casting : OBJ1 = OBJ2.
CALL METBOD OBJ1->( ‘ADDING’ ). “ADDING method is belongs OBJ2
Widening cast is quit opposite of narrow casting , with the help of access the parent class attribute
or methods from Child class object.
If we want to Import a Local class into a Global class, we are going to transaction SE24
And click Object type -> Import -> Local Class in program.
Enter your Local class program name -> Enter and Provide Global class name with ‘ZCL_’ and Import.
The purpose of Functional method is used to Expecting some value or Returning some value from
a Function. The Functional methods only having IMPORTING and RETURNING parameters, does not
have any EXPORTING and CHANGING parameters.
Within a Functional Methods the RETURNING parameters nothing but a RECEIVING parameters.
75
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
285. What is the purpose of ALIAS name?
An alias name belongs to the components of the class and the interface. It shares the namespace
with the other components and is inherited by subclasses. In classes, an alias name can be declared
in every visibility section.
A singleton class is a class that cannot be instantiated more than once (in a single program that
is). Of course you can do the same in other programs without facing any problems. You can do this
by setting the flag final and create the class as private. Now the class can only be instantiated in one
of its own methods.
7. Go to SE24 for create a class properly and give the class properties : Instantiation as
Private and Description (ZTEST_SINGLETON).
8. Come to create attribute tab and Create a static Public attribute (Get_ref_obj) basing on
the TYPE Ref to Class name (ZTEST_SINGLETON).
9. Define a static public methods ex: GET_INSTANCE , in this method we have create a
returning parameter. (Ex: REF_OBJ type ref to ZTEST_SINGLETON).
Yes, I have created an Exception class for Handling Exceptions with using Message Texts.
290. Have you created any Custom class? What is the Business requirement?
Yes , I have create some Custom classes for using OOALV Reports.
a. In the Persistence class going to generate permanent objects. Using this persistence objects
we can update the data into database.
b. Whenever we create a persistence class the class is always going to be Protected, the
persistence class name starts with ‘ZCL_ ‘ or ‘YCL_’.
c. Persistence class can be created only Globally (SE24), we cannot possible to create In
Locally.
d. Whenever we create a Persistence class the system is going to create Two classes
automatically. There are: 1. Base Agent class, and 2. Agent class or Actor class.
e. This Base Agent class name should be always starts with ‘ZCB_’ and Agent class name should
be always starts with ‘ZCA_’.
f. The Base Agent class should be always ABSTRACT class and going to friend class with
persistence class.
g. From this Agent class derived from a Base Agent class as Sub-class.
Yes , I have created a custom Persistence class for Update the data into a database table.
I have used following methods:
GET_DATA we have to use for Get the data from database.
CREATE_PERSISTENT we have to use for update the records into database.
DELETE_PERSISTENT we have to use DELETE the records into database.
Step-1: Go to transaction SE24 and Enter the class name and create it, class name always starts with
‘ZCL_’.
Step-2: Enter the Description and chose the class type as ‘Persistent class’ , whenever we chose
persistent Instantiation become as “protected class’ and SAVE it.
Step-3: click on Attributes tab and click Go to -> Persistence Representation and Provide your
database table name click Enter.
Step-4: Assign the table fields into Class. Attributes will be created automatically and SAVE it.
Whenever we create a Persistence class the system is going to create Two classes one is BASE AGENT
CLASS (ZCB_) another one is ACTOR or AGENT CLASS (ZCA_).
295. What is the difference between Normal class and Exception class?
a. Every Exception class linked with a message class, while Normal class does not linked with
message class.
77
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
b. In Exception class we have TEXT tab for Exception ID Linked with Message Text, while
Normal class does not have TEXT tab.
c. Within the Normal class we can use Exception class, while within the Exception class we
Can’t use Normal class.
SD -FLOW
296. What SD – Flow? Explain me along with Tables and transaction codes?
1. Inquiry :
For Inquiry we are going to use transaction VA11 for Create Inquiry,
VA12 for Change Inquiry,
VA13 for Display Inquiry
and the Inquiry related data is going to be stored in VBAK and VBAP tables.
2. Quotation:
For Quotation we are going to use transaction VA21 for create Quotation,
VA22 for Change Quotation,
VA23 for Display Quotation
and the Quotation related data is going to be stored in VBAK and VBAP tables.
3. Sales order:
For Sales order we are going to use transaction VA01 for create Sales order,
VA02 for Change Sales order,
VA03 for Display Sales order
and the Sales order related data is going to be stored in VBAK , VBAP, VBUP, VBEP and VBPA tables.
4. Delivery:
For Delivery we are going to use transaction VL01 for create Delivery,
VL02 for Change Delivery,
VL03 for Display Delivery
78
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
and the Delivery related data is going to be stored in LIKP and LIPS tables.
5. Invoice:
For Invoice we are going to use transaction VF01 for create Invoice,
VF02 for Change Invoice,
VF03 for Display Invoice
and the Invoice related data is going to be stored in VBRK and VBRP tables.
297. I have a sales order, for that sales order I want to know that sales order created or Not /
invoice created or Not? In which table I am going to check for Delivery or Invoice status?
We are going to table VBFA (Sales Document Flow) for check Delivery or Invoice status of a
Sale Document.
We are going to maintain a Customer by using transaction XD01 for Create Customer,
79
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
and XD02 for Change Customer,
and XD03 for Display Customer.
Whenever we create a Customer, the Customer Information is going to be stored in :
KNA1 - General Data in Customer Master table ,
KNVV - Customer Master Sales Data table and
KNB1 - Customer Master (Company Code) tables.
We are going to maintain Materials by using transaction MM01 for Create Material,
and MM02 for Change Material,
and MM03 for Display Material.
Whenever we create a Material, the Material Information is going to be stored in :
MARA - General Material Data table ,
MARC - Plant Data for Material table and
MARD - Storage Location Data for Material tables.
MVKE - Storage Location Data for Material tables.
We are going to maintain Vendors by using transaction XK01 for Create Vendor,
and XK02 for Change Vendor,
and XK03 for Display Vendor.
In Business Hierarchy structure, First we are going to create a COMPANY CODE by using
transaction SPRO.
The Company code information is going to be stored in a table T001 and Field name is BUKRS.
The Plant Information is going to be stored in a table is T001W and Field name is WERKS.
The Storage Location Information is going to be stored in a table is T001L and Field name is LGORT.
80
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
The Sales organization Information is going to be stored in a table is TVKO and Field name is VKORG.
We are going to maintain Shipment by using transaction VT01 for Create Shipment,
and VT02 for Change Shipment,
and VT03 for Display Shipment.
We are going to maintain Inbound Delivery by using transaction VL31 for Create Inbound Delivery,
and VL32 for Change Inbound Delivery,
and VL33 for Display Inbound Delivery.
Whenever we Pick-up some Goods from Warehouse, Here warehouse management will be
Generate a Transfer order and It’s not generate any Invoice or Bill.
Whenever Generate a transfer order, the transfer order information is going to be stored in :
LTAK - WM transfer order header table and ,
LTAP - Transfer order item tables.
313. What are the different ways to create Outbound Delivery for your Sales order?
We are going to create an Outbound Delivery for a Given Sales order by using transaction VA02 –
Change Sales order.
(Or) also we can use transactions VL01 or VL10G for create Outbound Delivery of given Sales order.
314. What is the transaction code for Billing Due List or Invoice Due List?
We are going to use transaction VF04 for Maintain Billing Due List.
315. What is the transaction code for create A/c Document in SAP?
81
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
We are going to maintain A/c Document by using transaction FB01 for Create A/c Document,
and FB02 for Change A/c Document,
and FB03 for Display A/c Document.
Whenever we create a A/c Document, the A/c Document Information is going to be stored in :
BKPF - A/c Document header table and
BSEG - A/c Document item table.
MM-FLOW
316. What is the MM – Flow? Explain me along with Tables and transaction codes?
Purchase Requisition ---- ----> Request for Quotation--------> Price comparison ---- ----> Purchase
order ---- ----> Goods Receipt --------> Inbound Invoice Verification.
1. Purchase Requisition:
For Purchase Requisition we are going to use transaction ME51 for Create Purchase Requisition,
ME52 for Change Purchase Requisition,
ME53 for Display Purchase Requisition
and the Purchase Requisition related data is going to be stored in EBAN tables.
3. Price comparison:
For Price comparison we are going to use transaction ME49 for Price comparison,
4. Purchase order:
For Purchase order we are going to use transaction ME21 for create Purchase order,
ME22 for Change Purchase order,
82
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
ME23 for Display Purchase order
and the Purchase order related data is going to be stored in EKKO, EKPO, EKET, EKES and EKBE
tables.
5. Goods Receipt:
For Goods Receipt we are going to use transaction MIGO for create Goods Receipt,
For maintain Production order, we are going to use transaction CO01 for create Production order,
CO02 for Change Production order,
CO03 for Display Production order.
The Production order related Information is going to be stored in AFKO, AUFK and AFPO tables.
A bill of material (BOM) describes the different components that together create a product. A BOM
for a bicycle, for example, consists of all the parts that make up the bicycle: the frame, the saddle,
wheels, and so on.
BOM means bill of materials: suppose if you purchase a computer it contains CPU and monitor
and mouse and some devices all they contain individual prices but altogether shown in computer in
order to configure this BOM is helpful in SAP.
The purpose of this activity is to create bills of material (BOMs) for the configurable material which
is known as ‘super BOM’.
Super BOM comprise all the variant as well as non-variant parts required for producing configurable
material.
83
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
We are going to create BOM (Bill of Material) by using transaction CS01.
A Bill of Lading is a document issued by a consignor (or shipper, such as an order fulfillment center)
and signed by a carrier at the time of pick up, acknowledging that specified products have been received
on board as cargo for delivery to a named consignee, or destination. It serves as a contract between the
shipper and/ or owners of the goods and the carrier for a number of purposes:
Port is a temporary memory which is going to holds temporary memory purpose and transfer the
data to an External system.
We are going to use File ports for Communicate Data between Non-SAP system to SAP system.
We are going to create Partner profile by using transaction BD64 & BD82.
335. Have you created any custom IDOC? What are the steps to create custom IDOC?
85
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
336. Have you create any outbound IDOC? What are the steps to create custom outbound IDOC?
A message represents a specific type of document that is transmitted between two partners
Ex: Orders, orders responses, invoices etc
An IDOC type can be associated with many message types
Also a message type can be associated with different IDOC types. Transaction WE81.
IDOC is a container, which is used to carrying the Data from one system to another system.
IDOC type is a Template.
Segment is nothing but a Structure and Combination of different fields. We are going to create
segment name by using transaction WE31. Segment name always starts with Z or Y. the maximum
length of segment name is 8 Characters.
340. What is the different between Segment type and segment Definition?
341. Have you done IDOC extension? What are the steps to create IDOC Extension?
1)
Go to transaction WE31
Example: 'ZDUMMY'
2)
Go to transaction WE30.
86
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
-> At development object select 'extension'
-> Write a name for object name (8 char extension). For MATMAS IDOC extension i create ZMATEX01.
Click on 'create' button.
-> Now we will select the IDOC link. Select 'create new', and link to a basic type (MATMAS05 in our
example). Don't forget to write a description (will be usefull in the future for identificate
correspondances).
-> Select IDOC substructure where wich will be extended. Click on header and 'create segment' (you can
paste from clipboard with 'insert' button).
-> Select ZDUMMY segment created before.
-> Save and fill package and transport order for this modification.
-> Release segment from toolbar (Utilities)
<b>/nWE82</b>
Add Message Type (MATMAS), Basic Type (MATMAS05), Extension (ZMATEX01) and Release.
342. Where we can create Conversion Groups? Steps to create Conversion Groups?
343. Difference between Chang pointers and Change Documents (change tasks)?
Change pointers data is going to store or collecting into BDCP (Change pointer) and BDCPS (Change
pointer: Status) tables.
BD64.
87
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
If you want to Reprocess IDOCS
BD87 Process inbound IDocs
BD88 Process outbound IDocs
Or
1. Go to transaction WE19.
2. Enter the IDOC number you want to test.
3. Go to menu IDOC->test inbound IDOC->standard inbound
4. one popup screen come get the "FUCTION NAME" to test the IDOC.
5. Click on "INBOUND FUNCTION MODULE" button.
6. Enter function module name.
7. Click on CALL IN DEBUGGING MODE check box and choose foreground mode.
and choose yes choice to run it.
We are going to use transaction BD87 for Re-processing the failed IDOC’s.
When IDOC is Successfully released, we will getting IDOC status message no 51.
We can seen all status messages by using transaction WE47.
When IDOC with errors added, we will getting IDOC status message no 56.
When Error during syntax check of IDOC (inbound), we will getting IDOC message no 60.
When Error passing IDOC to application, we will getting IDOC message no 63.
88
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
IDOC is nothing but a combination of Segments.
Go to WE41 to get process code for your message type . Then double click it and it will show the
function module attached to it .
Put break point in it and then debug....
357. What are the steps for processing an outbound IDOC for transactional data?
Message type: A message type represents the application message exchanged between R/3
systems and R/3 and an external system. A message type characterizes the data sent across systems
and relates to the structure of the data called an IDOC type (see below). For example, MATMAS is a
message type for Material Master, and INVOIC is a message type for an Invoice (Billing Document).
ALE supports over 200 message types in R/3 and about 200 application areas.
No.
360. Have you done any ALE configuration? What are the steps for create ALE configuration?
1. Creating users for ALE Transfer
2. Creating Logical system and assign the client
3. Creating the RFC
89
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
4. Configuring Distribution Model
5. Configuring and checking the port
6. Configuring and checking the partner profile
7. Creating the message type
Logical system is used to identify an individual client in a system, for ALE communication between SAP
systems .
When data is distributed between different systems, each system within a network has to be clearly
identifiable. The “logical system” deals with this issue.
A logical system is an application system in which the applications work together on a common data
basis. In SAP terms, the logical system is a client.
Since the logical system name is used to identify a system uniquely within the network, two systems
cannot have the same name if they are connected to each other as BW systems or as source systems,
90
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
General Questions
All ABAP related or Program related changes are going to saved into Workbench request.
All Functional related changes are going to saved into Workbench request.
The Transport Organizer maintains Change Requests. These requests record the changes made to the
repository and customizing objects. Based on that objects changed they are
1)Workbench Request and 2) Customizing Request.
91
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
Workbench Requests are those that involve changes to cross-client Customizing and Repository Objects.
The objects are independent of the client. Hence the requests are used for transferring and transporting
changed Repository objects and changed system settings from cross-client tables.
Customizing Requests involve changes recorded to client-specific Customizing objects .These client
specific requests are used for copying and transporting changed system settings from client-specific
tables.
You can use this request type to transport objects to a specified SAP System.
The objects are transported with the version they have in the current SAP System. The original
location of the objects remains unchanged. There is no delivery to another SAP System.
You can use this request type if you want to develop objects in another SAP System on a
temporary basis. For example, you may want to make special developments in a separate SAP
System so as not to interfere with the development process.
A relocation without package change basically offers the same functions as a transport of copies.
This request type allows you to move the original location of objects to the target system.
You can use this request type when you want to change the development system of individual
objects on a permanent basis.
We are going to use transaction SE03 for Find Request number of an Object.
Using transport organizer (SE09 or SE10) for Release a Request from Development to Quality
systems.
92
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
(Or)
We are going to use transaction STMS (Transport Management System) for release request directly.
In SAP we have two types of status’s of Request number: There are : 1. Modifiable status , and
2. Released status
In every object number having multiple task numbers, if you want to transport it first release task
numbers then release object number from development to quality systems.
Every program generates a version. In this program in every changes to be generates a new
version. To display every version of change program code and compare old version program from new
version program change. It’s version management helps to save temporary version of code.
Go to SE09 -> Check your request type and click Display -> Place the Cursor on your task -> Go to
Utility -> Reorganize -> Reassign task and enter your target Request number -> Ok.
ENDIF.
ENDIF.
ENDIF.
16. When you create an object, how do I know object is created (assign)or Not?
93
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
We are using the command: IF OBJ1 IS BOUND or NOT BOUND.
ENDIF.
ENDIF.
Ex: we are using EXIT command within Loop – Endloop, within Sub-routine, within Function module
and within a Program.
19. When I use EXIT command within the SATRT-OF-SELECTION event in my processing block, what
happen?
TABLES parameter is outdated, because of TABLES parameters are always Pass by Reference.
In OO-ABAP is not supported TABLES parameter because of TABLE having with header line.
For example:
Whenever we use SUBMIT command for only call or Link a report program to another program.
Whenever we use SUBMIT AND RETURN command, execute the called program and come back to
Source program.
Difference: The SUBMIT statement accesses an executable program. The executable program is
executed as described under Calling Executable Reports. if we use return statement it will come back to
the executable program once again.
The syntax is :
We are going to use ALSM_EXCEL_TO_INTERNAL_TABLE Function module for upload the Excel file
data into an Internal table.
We are going to use GUI_DOWNLOAD Function module for Download an Internal table data into an
Excel File.
29. What is the syntax for use Application server file data into an Internal table?
We are going to use OPEN DATA SET, READ DATA SET and CLOSE DATA SET statements for brows
the Application server File data into an Internal table. The Syntax is:
OPEN DATA SET P_FILE FOR OUTPUT IN TEXT MODE ENCODING DEFAULT
(OR)
OPEN DATA SET P_FILE FOR INPUT IN TEXT MODE ENCODING DEFAULT
1. SAP Memory
2. ABAP Memory
The “EXPORT/IMPORT” statements use ABAP memory; the “SET/GET” statements use SAP memory
96
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
SET and GET PARAMETERS are used for SEND data to SAP memory and RETRIVE the data from
SAP memory.
EXPORT and IMPORT parameters are used for EXPORTING data into ABAP memory and
IMPORTING data from ABAP memory.
When coding of a program is complete, it is useful to analyze it’s performance, and test it.
The Program Extended Syntax Check, Runtime Analysis and SQL Trace are SAP provided analysis
tools, that review the performance of the code in greater depth. It is not likely every piece of code will
require the use of all of these tools.
Testing of code in a IBM project environment requires execution of a Unit Test Plan. SAP has
provided the CATT (Computer Aided Test Tool) for testing purposes.
The Program Extended Syntax check is the simplest and least CPU-intensive analysis tool.
b. Check from the Repository Browser by following the menu path: Development
Object-> Check ->Extended program check
97
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
35. How you perform Runtime analysis?
The Runtime Analysis Tool lets you analyze the performance of any transaction or program
created in the ABAP Workbench in more detail.
Use transaction ‘SE30’ for ABAP runtime analysis and transaction ‘ST05’ for performance
analysis.
You can use the SQL Trace tool to examine the database interfaces of reports and transactions in
two different ways:
98
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
The trace can be turned on to monitor all activity one particular user has with the
data base.
The Computer Aided Test Tool (CATT) is fully integrated into the ABAP/4 Development
Workbench. It allows you to assemble and automate business processes in test procedures.
USER MESSAGES
User messages are an excellent method of communicating with the user in an interactive program.
This applies to selection screens as well as full-fledged interactive reports and online (module pool)
programs (covered in later sections).
Normally, messages are displayed on the message line at the bottom of the screen. The only
exceptions are abend messages which terminate the program and information messages which are
displayed in a dialog box.
User messages are stored in the system table T100. They are classified by language, a 20 character
message class (used to group messages by application area), and a three-character message number.
Message class is a container of the Multiple messages with message numbers. These Message class
was creates by transaction SE91.
Each Message class having Max. 1000 messages. The message numbers Range between 000-999.
99
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
In SAP we have Six types of Messages are categorized , there are:
1. A - ABEND (outdated)
2. I - INFORMATION
3. E - ERROR
4. S - STATUS
5. W - WARNING
6. X - RUNTIME ERROR
ERP-SAP OVERVIEW
100
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
1. What is MRP?
2. What is ERP?
ERP is not just a software…but a complete business solution integrated across the entire value chain
which creates an information infrastructure for efficient planning and effective execution.
Among all the ERP’s most of the companies are Implemented or Trying to implement SAP because
of Number of advantages than other ERP packages.
Some major ERP vendors are : SAP R/3, Oracle and BAAN.
4. What is SAP?
SAP is the name of the company founded in 1972 under the German name Systems , Applications
and Products in Data Processing . SAP is the Leading ERP software package.
SAP AG is a German company founded in 1972 with Five former IBM Employees. Their vision: to
develop standard application software for real-time business processing.
Market Leader in Industrial Enterprise Application (IEA) About 56% market share in the ERP market,
Serving more than 2,38,000 customers in 188 countries, SAP is the world's largest business software
company and the world's third-largest independent software provider overall.
Today, SAP employs more than 65,500 people in more than 130 countries.
101
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
6. What are the 3 layers of the SAP R/3 ?
SAP R/3 is known as SAP 3 Tier Architecture. These SAP R/3 architecture having three Layers there
are a. The Database Layer, b. The Application Server, and c. The Presentation System
Those SAP R/3 software components that specialized in the Management, Storage and Retrieval
the data from Database layer.
Those SAP R/3 Software components that specialized in Processing Business Applications and from
the Application layer.
These application Server is connecting with various Presentation systems as well as a Database,
Application server basically containing three parts:
a. Dispatcher,
b. Work processer,
c. Roll area.
Those SAP R/3 software components that specialized in Interacting with End-users from the
Presentation layer.
102
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
10. What is Dispatcher?
Dispatcher is one of the part of the Application layer, the purpose of the Dispatcher is receive the
request from the presentation systems and Assign the request to the related work processer, it’s
Dispatcher works on First in First out basis.
In SAP R/3 architecture Application layer having 7 types of Work Processes, there are:
103
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
Roll area is a one of the part of Application layer in SAP R/3 architecture, these Roll area is allocates
some memory need to have a system like RAM.
NetWeaver is a vision of total integration of People, Information, Business Process and Applications.
Reduced obsolescence
Reduced overtime
SAP earlier divided into two major modules there are: 1. Technical modules and 2. Functional
modules.
104
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
SAP was earlier divided into different Functional modules like Materials Management (MM), Sales &
Distribution (SD), FI (Financial Accounting), CO (Controlling), HR (Human Resources), PP (Product
Planning), PM (Plant Maintenance), PS (Project Systems) etc.
All business processes throughout the supply chain are INTEGRATED & executed on a common
system sharing all information
1. Coding:
2. Configuration:
105
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
Rendering the application appropriate to a specific customer by specifying data on which the
application operates.
SAP R/3 applications are written in the ABAP programming language, and run within the
application layer of the R/3 System.
ABAP programs communicate with the database management system of the central relational
database (RDBMS), and with the graphical user interface (SAPGUI) at presentation level.
We need ABAP Development Applications or Objects will helpful for End-users for Easily access data
from Database and Reduce risk or effort of End-users. These Applications was developed by ABAP
Developers for the Client or customer requirements.
In SAP – Landscape model we have Develop some Business Applications in 3 stage process:
1. Development
2. Quality and
3. Production
1. Development
106
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
2. Quality
3. Pre-production and
4. Production.
1. Implementation project,
2. Support project,
3. Upgrade project,
4. Roll-out project.
First we customizing the SAP Software for our Business requirement s within the Implementation
project.
These implementation stage we having using some process or Methodology, that is called as ASAP
methodology.
1. Blueprint preparation
2. Analysis
4. Integration testing
5. Regression testing
6. Go-Live or Deploy
107
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
26. What is the Blueprint preparation?
Developing some Documents at the stage of Implementation of a project, this is the first
stage of ASAP methodology ,
Preparing some Documents in this stage: those are 1. Coding standards Document, 2.
Naming standards Documents and 3. Landscape model Documents.
Each Development request (DR’s) having Some Request Code or Task Number .
Analysis test is one of the ASAP methodology Stage in SAP implementation project.
In this Analysis test stage Functional team prepared some Functional Specs (FS’s) and Functional
Documents (FD’s) and Technical team Developed some Technical specs (TS’s) and Technical Documents
(TD’s) basing on FS’s and FD’s.
Build stage or Development is one of most important part of Implementation project, here enter
ABAP Developer into a project and Analyzing the Technical specs and Developing the Business
requirement Applications.
Every ABAP developer having some Roles and Responsibilities, there are :
1. Development,
108
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
30. What is integration testing?
Once completed a Development program send from Development system to Quality systems.
It’s Quality system received Development Program code testing is known as integration testing.
This integration testing if you have going to rise some issues are detected. These issues are divided
2 types there are: 1. Defects, and 2. CR’s (Change requests).
In integration testing we have raise some issue basing on Code defects or Programmatically errors
is known as ‘DEFECTS’.
And if u want any additional changes or add some functionality of your program the Quality or
Testing team raise a issue called as ‘CHANGE REQUEST’s ‘ (CR’s).
Regression test is known as User Acceptance Test (UAT). Here accept your development or if any
CR’s found Send back for Development.
2. Dress rehearsal
Already once successfully implemented SAP Projects are Copied or Reuse for same Enterprise is
known as Roll-out projects.
Already successfully implemented SAP project converting from SAP old version to SAP new version
is known as Upgrade projects, these are using some new patches.
A client is a logical portion of an SAP R/3 physical database. From a business standpoint, a client can
be interpreted as a logical group of companies. Ex: 800, 810, 900 etc.
All customizing (configuration) and development (ABAP) work in SAP R/3 is performed in a
client. However, the data from both customizing and development work may be stored within an
individual client (client dependent data) or among all clients (client independent data) in the system.
The data in each client may be separate from that of the other clients. There are basically
two types of data in an SAP R/3 System. Client-dependent and client-independent data.
Ex: Some examples of client-dependent data include number ranges, ABAP variants, and user
masters as well as the data that is created or updated through SAP R/3 transactions (transaction
data).
Client-independent data can be defined as data contained across all clients in the system.
110
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
Ex: Examples of client-independent data include data dictionary objects (tables, views), ABAP
source code, screens, and menus.
For example, the TSTC table is client-independent; however, the USR01 table is client-dependent.
As shown in the above diagram, every SAP R/3 system contains the three clients 000, 001, and 066.
Let’s review these clients and examine what they contain.
During a standard install of the SAP R/3 system, clients 000, 001, and 066 are set-up and
provided.
Client 000 performs special functions. In particular, it is given extended functionality during
upgrades.
Client 001 is basically a copy of 000 and can be used as a basis for a new customizing client.
Client 066 is a special client which is provided for operational system monitoring. It is used by
SAP R/3’s Early Watch Service to provide performance recommendations.
IDES stands for International Demonstration Education System. IDES is a sample application
provided for faster learning and Implementation. Value range of clients are 000-999.
111
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
SAP NAVIGATION
41. What are the standard options of menu bar in every screen of SAP?
112
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
In Menu bar that are always available from every screen in the R/3 System:
System: This menu contains functions that affect the system as a whole, such as the
Create Session, End Session, User Profile, or Log Off options.
Help: The Help menu contains functions for accessing various forms of
online support.
42. On Standard tool bar Which icons are always available in every screen of SAP R/3 system?
In SAP R/3 system Standard toolbar we have always available Icons are Help icon and Layout menu
icon.
A Search Help is a search tool to help you find data in the SAP R/3 system.
Sometimes it may be easier to use a Search Help for search purposes. Place your cursor in the
desired field and enter the desired search parameter.
For this example, you want to find all the personnel numbers in the system with a last name
beginning with S.
1. Click on the icon at the end of the Personnel number field and then enter S* in the last
name field and the names will be retrieved once the icon is clicked.
2. You can also activate the Search Helps by placing the cursor in the field and hitting the F4 key.
113
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
You can create a session at any time and from any screen in the system; you will not lose any data in
sessions that are already open.
3. Title bar
5. Status bar
47. How to access Development screens from SAP Easy access screen?
We access SAP Development screens by using Transaction codes either SAP menu path.
Any ABAP Program name starts with Z or Y, and the maximum length of Program name is 40
characters only. Not taken any Space of your program name.
114
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
49. What is ABAP Language?
ABAP is a programming language created and used by SAP for the Development of Application
programs including:
Reports
Interfaces
Data conversions
All of SAP R/3s applications and even parts of its basis system were developed in ABAP.
ABAP is an event-driven programming language. User actions and system events control the
execution of an application.
The ABAP Workbench is used by SAP for the development of standard and custom application
software. The ABAP Workbench is also used to create dictionary objects.
Menu Painter is used to develop graphical user interfaces, including menu bars and toolbars.
Test and Analysis Tools, such as the Syntax Check and the Debugger.
Function Builder, which allows you to create and maintain function groups and function
modules.
115
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
Data Modeler, a tool which supports graphical modeling.
Workbench Organizer, which maintains multiple development projects and manages their
distribution.
Report programs produce lists and can be divided into Conventional reports and Interactive reports.
53. What is the basic difference between conventional report and interactive report?
Conventional reports do not allows to interaction by the users, interactive reports can do.
Conventional reports do not allow interaction by the user; therefore, the basic list contains
extensive information that the user must often sort through to find the relevant data.
Interactive reports allow interaction by the user; therefore, the user can produce secondary,
detailed lists off of the basic list by choosing the relevant data and requesting more information
Module pool programming (or online programming) involves the creation of a module pool (a
collection of ABAP modules) and one or more screens. The modules are called by the screen processor
during program execution.
55. What are the types of ABAP programs or Terms of ABAP programs?
116
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
Package was stores all object related elements like Program, Tables, Structures, Screens etc. it’s
not Folder , it’s transport purpose only. Every object saved in a package it will generate a request
number for transport purpose.
Use a standard program RSWBO052 for transport object from Local object to a Package.
Every object saved in a package it will generate a request number for transport purpose.
All ABAP related objects or changes are saved into as Workbench Request Number.
All Function (Customizing) related changes are saved into as Customizing Request Number.
Using transport organizer (SE09 or SE10) for Release a Request from Development to Quality
systems.
In SAP we have two types of status’s of Request number: There are : 1. Modifiable status , and
2. Released status
In every object number having multiple task numbers, if you want to transport it first release task
numbers then release object number from development to quality systems.
117
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com
64. What is version management?
Every program generates a version. In this program in every changes to be generates a new
version. To display every version of change program code and compare old version program from new
version program change. It’s version management helps to save temporary version of code.
118
SAP ABAP Interview Questions
E-mail: rameshkumaar.abap@gmail.com