Você está na página 1de 18

SAP ABAP OOPS Interview Questions-

1. What is Abstract Class


Abstract class is a Special kind of class which cannot be instantiated. We can only
instantiate the sub class if they are not abstract class. Abstract class should have
atleast one abstract method.
Abstract method are method without implementation only a declaration.
We can certainly define the variables referencing to Abstract class and instantiate
with specific subclass at runtime

Example-

2. What is an Interface?
An interface is not a class. It is an entity which can’t have implementation. An interface
can only contain empty method declaration and components. Interface components are
always public. We can later change the visibility of the components within the
implementing class using the ALIASES.
Example-

Sensitivity: Internal & Restricted


3. Differences between Abstract and Interface.

 Multiple Inheritance: We can achieve multiple inheritance using Interfaces. Since


ABAP doesn’t support more than one Super class, we can have only one abstract
class as Super class.
 New Functionality: If we add a new method in the Interface, all the implementing
classes have to implement this method. If we don’t implement the method, it would
result into Run-time error. For Abstract class, if we add a non-abstract method, its
not required to redefine that in each and every inherited class.
 Default Behavior: We can have a default behavior of a non-abstract method in
abstract class. We can’t have any implementation in Interface as it only contains the
empty stub.
 Visibility: All interface components are PUBLIC by default. For Abstract class, we
can set the visibility of each component.

4. What is the Singleton design pattern?

The concept of restricting the instantiation of the a class to only and only to one
object is called Singleton. As name suggests, it will restrict to create only one
instance of a class. The class will have a logic in place which will deny if the
application will ask for more than one instance.

We can use the CLASS-DATA(static data) to save the created instance within
the class and check with that instance, if application asks for a new instance.

Abstract and Final Methods and Classes


Abstract and final methods or classes can be defined using the additions ABSTRACT and FINAL of the
statements METHODS and CLASS.

Abstract methods are declared in abstract classes and cannot be implemented in the same class. They must
first be implemented in a subclass of the inheritance tree. Abstract classes cannot, therefore, be instantiated. A
non-abstract method is a concrete method. With the exception of the instance constructor, concrete instance
methods of a class can also call their abstract methods.

Final methods can no longer be redefined in subclasses. They cannot have any additional subclasses and
close an inheritance tree definitively.

Notes

 In classes that are both abstract and final, only the static components can be used. Although instance
components can be declared, they cannot be used. Specifying ABSTRACT and FINAL together
therefore is useful only for static classes.

 Private methods cannot be redefined and can therefore not be abstract.

Sensitivity: Internal & Restricted


Q what is singleton class

Q why do we use singleton class?

Q. define the concept of multiple inheritance in SAP ABAP

Q. what is self-reference Method and how do we call? Operator symbol

ME Operator for self reference call during method.

Q. attributes of class (private ,public, protected)

Q events handler of class

Q. exception handling and types of exception .

Q. 7.What Is The Difference Between Abstract Class And Interface?

29.What is the difference between Abstract method and a Final method ?

Q what is Singleton?

Q what is type casting?

Q. how to achieve the edit and coloring of ALV fields in factory method?

CORE ABAP.

DATA DICTIONARY-

Q. how to validate the input fields when users try to insert char or alphabet in numeric field
value.

Transaction Codes
SE54: Generate Table Maintenance Dialog
SE55: Table view maintenance DDIC call
SE56: Table view display DDIC call
SE57: Deletion of Table Maintenance
SM30: Maintenance Table Views: to define events we can do using TMG->Environment-
>Modification->Events

01 Before saving the data in the database


02 After saving the data in the database
03 Before deleting the data displayed
04 After deleting the data displayed
05 Creating a new entry
06 After completely performing the function 'Get original'
07 Before correcting the contents of a selected field

Sensitivity: Internal & Restricted


08 After correcting the contents of a selected field
09 After getting the original of an entry

Q. if you don’t have any access to put external breakpoint. then how you will be
debugging the RFC or service .

Using Tcode SRDEBUG we will click on activate Debugger and provide the FM, Class or
Method name where we want to put the External debugger.

Q. what is search help exit. Basically an enhanced Search help based on requirement to
display possible entries when users clicks on F4 button on selection screen.

We use to define customer Z FM copy of Standard F4IF_SHLP_EXIT_EXAMPLE and


define the changing and tables parameter as

SHLP

Call-control

SHLP_TAB-descriptions

RECORD_TAB-structure.

Write the code for F4 help and activate it.

Once done then save it in search help exit input screen field. And activate it.

Q types of search help.

Elementary- Elementary search helps describe a search path. The elementary search help must define
where the data of the hit list should be read from (selection method), how the exchange of values
between the screen template and selection method is implemented (interface of the search help) and how
the online input help should be defined (online behavior of the search help).

Collective -Collective search helps combine several elementary search helps. Collective search help
thus can offer several alternative search paths.

Append Search help-

Q some question on enhancement category.

The reason for enhancement category is to say what type of fields you can have in your table. For
the SAP tables when you want to make enhancements (adding your own fields- append structure)

Level Category Meaning


1 Unclassified The structure does not have an enhancement category.

Sensitivity: Internal & Restricted


2 Cannot be enhanced The structure must not be enhanced.
All structure components and their enhancements must be
3 Can be enhanced and character-like
character-like and flat.
Can be enhanced and character-like
4 All structure components and their enhancements must be flat.
or numeric
All structure components and their enhancements can have any
5 Can be enhanced in any way
data type.

Q. how to move the entry from development to productions.

Using Table entry->Create. Will create the entries and save it in TR.

Q why do we use Maintenance view? .

A Maintenance View in SAP ABAP is a view that combines multiple tables into a
single view using outer join and is mainly used to maintain multiple tables
altogetherTcode is SE54.

http://www.teamabap.com/2014/05/maintenance-view.html

Q difference between maintenance view and database view?

In the database view we simply display the scattered data of the application object in
one view where as maintenance view allow you to display modify and create the data.

A maintenance view permits you to maintain the data of an application object together.

Here all the tables in the maintenance view must be linked with a foreign key
relationship and join conditions can be formed only using the relationship

Q difference between Delivery class and data class.

Sensitivity: Internal & Restricted


The data class determines the tablespace in which a table is created. The database administrator
uses tablespaces to organize and maintain the database. Choosing the proper tablespace makes
database administration easier, increases system performance, and to some extent even increases
system availability because the database is usually taken offline for reorganizations.
The delivery class controls the transport of table data when installing or upgrading, in a client copy
and when transporting between customer systems. The delivery class is also used in the extended
table maintenance.
The most important data classes are (other than the system data):
APPL0 Master data
APPL1 Transaction data
APPL2 Organizational and customizing dataMaster data is data which is frequently read, but rarely
updated.

Following are the delivery classes:

 A: Application table (master and transaction data).

 C: Customer table, data is maintained by the customer only.

 L: Table for storing temporary data.

 G: Customer table, SAP may insert new data records, but may not overwrite or delete existing
data records. The customer namespace must be defined in table TRESC.

 E: System table with its own namespaces for customer entries. The customer namespace must
be defined in table TRESC.

 S: System table, data changes have the same status as program changes.

 W: System table whose data is transported with its own transport objects (e.g. R3TR PROG,
R3TR TABL, etc.).

Q. lock object and types of lock.

Lock objects are used to synchronize the multiple set of users who are accessing the
same set of data.

There are three types of locks.

1. Exclusive Lock.
2. Shared Lock.
3. Exclusive but not cumulative lock.

Sensitivity: Internal & Restricted


Exclusive Lock
The locked data can be read or proceed one user only. A request for another exclusive
lock for a shared lock is rejected.

Shared Lock
Several users can read the same data at the same time, but as same as a user edits
the data,a second user can not longer access this data. Requests for further shared
locks are accepted, but exclusive locks are rejected.

Exclusive but not cumulative lock.


Exclusive locks can be requested by the same user more than once and handled
successfully, but an exclusive but not cumulative lock can only be requested once by a
given user, all the other lock requests are rejected.

https://www.sapnuts.com/courses/core-abap/open-sql/creating-lock-objects-SAP.html

Q. how to make the test data while in debugging when calling the service and
debugging the RFC.

While debugging if come across the FM or Class then we can go to tools there we will have
the options to save the parameter as Test data.

WEBDYNPRO
Q. lead selection in web dynpro

At run time a context node may contain many records , but only one of those is selected
.The user can select any record from the Table/ALV/Drop Down/Radio and this
selection is called lead selection.

0..1 Any cardinality Lead selection can be empty. Multiple selection is not possible.
1..1 Any cardinality As the node selection has to contain exactly one element, the lead
selection is always set (provided the node is not empty). Multiple
selection is not possible.
0..n 0..n, 1..n only Multiple selection of elements is possible. The lead selection can be
empty.
1..n 1..n only Multiple selection of elements is possible. The lead selection is set
automatically (provided the node is not empty).

Q. selection node and collection node difference

Sensitivity: Internal & Restricted


In the same way that the node's cardinality controls the maximum and minimum number of elements
permissible within the node collection at runtime, so the selection cardinality controls the maximum and
minimum number of elements that may be selected at any one time.

Unless you say otherwise, a node will have a selection cardinality of 0..1 meaning that you may select
zero or one element at any one time. If such a node were displayed using a table UI element, you would
be able to select only one row at a time. However, if you wish to allow the user to select multiple rows,
you will need to change the selection cardinality to 0..n, meaning that zero or more elements may be
selected.

Selection Cardinality- It specifies how many records that can be selected from a node.

Collection cardinality- It specifies how many records that can be stored in a node.

Q. what is Assistance class.

Assistance Class in WD is used for storing common reusable logic apart from component controller.
It can also be used to store Text Symbols for displaying messages or label’s for the WD application.
Per WD session there will be one instance of assistance class ( if mentioned ) will be automatically
instantiated and you can access it by wd_assist.
It can also be used to store a reusable set of constants, public attributes, types etc.
Assistance class has some standard methods like get_text to fetch text from text symbols.
To create an assistance class you have to create a normal class and then mention
CL_WD_COMPONENT_ASSISTANCE as superclass. Then you can metion you class name in WD
Component Header Details.

Q. how to define Message in Webdynpro.?

We can display error, warning, success, attribute error etc messages in Web Dynpro
ABAP using interface IF_WD_MESSAGE_MANAGER, when we raise messages using
IF_WD_MESSAGE_MANAGER, the messages will be displayed in Message Area UI
element, by default Message Area UI element is at the top of the screen.

Q. how to define Select-options in webdynpro?

The usage of WDR_SELECT_OPTIONS component is defined in the Used Components tab as


SELECT_OPTIONS.

Define attributes of type IF_WD_SELECT-OPTIONS

Interface -- wd_cpifc_select_option

Q how do we use select options in webdynpro?

Q ALV in WEBDYNPRO ?

SMARTFORM

Sensitivity: Internal & Restricted


SSF_FUNCTION_MODULE_NAME

Q. no of main window in smart form

Smartform can have only one main window but if we want to create another window we can
achieve by custom window.

Q. difference between table and loop in smart form.

Only difference is table node also provides u a way to format the output using line types,
so u can show the output using rows and cells,
loop node is used when u dont need to format the output using a table node so in that case only loop
node is used.

IDOC AND BDC


HOW DO YOU CREATE A CUSTOM IDOC?

Creation of Segment Types

Run T-code ‘WE31’ to create segment type

Creation of IDoc type

Run T-code ‘WE30’ to create custom IDoc type

Creation of logical message types

Run T-code ‘WE81’ to create the logical message types.

Linking Message type and IDoc type.

Run T-Code ‘WE82’. Now we have to link these created IDoc types and Message types.
 Control Record — contains control info ex: receiver port etc
 Data record — Contains IDOC data
 Status — holds IDOC status.

Q. ALE idoc complete process and related tcodes ?

Common configurations on both sides:


Creating Logical System Names SALE

Setup RFC destinations SM59

Sensitivity: Internal & Restricted


Defining Port Destinations WE21

In Source system:
Segment Creation WE31

Basic IDOC Type Creation WE30

Message Type Creation WE81

Assign Message Type To Basic IDOC Type WE82

Distribution Model BD64

Writing Report Program SE38

Partner Profile WE20

Message control NACE

Check IDOCs WE02, WE05

In Destination System:
Creating FM SE37

Assign FM to Logical Message WE57

Define I/P method for Inbound FM BD51

Create Process Code WE42

Generate Partner Profile BD64

Q. BDC difference between call transaction and session Method

Q how do you debug Idoc ? ----cap Gemini

TCODE WE19 provide the basic type and then inter the inbound function module you will
find the checkbox for Call in debug mode.

Sensitivity: Internal & Restricted


Another way is TCODE-Use transaction BD87 to debug IDOC
concerned.
If you find the Function Module with help of process Code of an Error Idoc put a breakpoint
and then execute the tcode BD87to debug inserting idoc number.

https://www.sapnuts.com/tutorials/Using-WE19-to-reprocess-IDOC-or-Debugg-IDOC.html

Q. how we can find out the error in Idoc?.

We02 or we05

Q what is BDC and Types of BDC?

BDC(Batch Data Communication) is a batch interfacing technique which is used to


insert mass data into SAP R/3 system, in BDC the data will be loded into R/3 using SAP
Screen which we use to create a record(Example: Material in MM01).In simple BDC is a
technique in SAP, which is used to upload mass data into R/3 server from a flat file( .txt,
Excel etc).

In BDC the data will be flowing in SAP R/3 through screens (Ex: MM01), BDC is a
inbound process.

The BDC can be performed in two methods:

 Call Transaction.
 Session Method.

In BDC we use structure BDCDATA for Batch Input, which has following components.

 PROGRAM - BDC module pool


 DYNPRO- BDC Screen number
 DYNBEGIN- BDC screen start
 FNAM- Field name
 FVAL- BDC field value

A BDCDATA structure can contain the batch input data for only a single run of a transaction

 In CALL TRANSACTION method, we need to create Log for the Error Message, for this we use structure
BDCMSGCOLL.
 CALL TRANSACTION 'ME51' USING t_bdcdata
MODE w_mode
UPDATE 'S'
MESSAGES INTO t_msg.

https://www.sapnuts.com/courses/core-abap/bdc/recording-a-transaction-S.html

Sensitivity: Internal & Restricted


Session Method:

In Session Method following function Modules are used.

1. BDC_OPEN_GROUP.

2. BDC_INSERT.

3. BDC_CLOSE_GROUP.

In BDC we use structure BDCDATA for Batch Input, Which has following components.

PROGRAM - BDC module pool

DYNPRO- BDC Screen number

DYNBEGIN- BDC screen start

FNAM- Field name

FVAL- BDC field value

A BDCDATA structure can contain the batch input data for only a single run of a transaction

http://saptechnical.com/Tutorials/ABAP/BDC/Session.htm

Q we have header and item details and need to be transport to the SAP system how do we
do in BDC?

use a single do endo. and two internal tables.


do
read the dataset into a string,
if first two chars are 'HD'
pass the string to HEADER internal table
elseif first two chars are 'IT'
pass the string to ITEM internal table
endif.
enddo.

Q. what is load of program and initialization do.

Q. steps to keep in mind for performance tuning.

1. Using all the keys in SELECT statement.

Sensitivity: Internal & Restricted


2. Avoid SELECT *
3. Fetching Single Record.
4. Avoid SELECT-ENDSELECT.
5. Using Indexes.
6. Avoid “INTO CORRESPONDING”
7. SELECT statement inside LOOP.
8. Nested SELECT statement.
9. ST05 is the performance trace. It contain the SQL Trace plus RFC, enqueue and buffer trace. Mainly the SQL
trace is is used to measure the performance of the select statements of the program.

10. SE30 is the Runtime Analysis transaction and can be used to measure the application performance.

11. SAT transaction is the replacement of the pretty outdated SE30. Provides same functionality as SE30 plus some
additional features.

12. ST12 transaction (part of ST-A/PI software component) is a combination of ST05 and SAT. Very powerful
performance analysis tool used primarily by SAP Support.

13. One of the best tools for static performance analyzing is Code Inspector (SCI). There are many options for finding
common mistakes and possible performance bottlenecks.
14.

Q techniques used for performance tuning

Q why do we use for all Entries and checks to keep in mind while using for all entries

For all entries we use in place of table joins, make sure the first table is not initial before
appending with use of for all entries in another IT.

ENHANCEMENTS

Q. types of BADI and which one you use it in your project

BADI (Business Add-in)

 BADI is another way of implementing enhancements to the standard programs


with out modifying the original code.
 BADI's are implemented using oo programming technique Technically a BADI is
nothing but an interface.
 Each BADI consists of the method with out implementation called as BADI
definition.
 We need to create classes to write the abap code by implementing the methods
called as BADI implementation.

SE18 is the T-code for BADI definition, SE19 is the T-code for BADI implementation.

Sensitivity: Internal & Restricted


Advantages of BADI

 The main advantage of using BADI's is , we can create multiple implementations


for a single BADI definition.
 Where as with the exits, we can create a single implementation.i.e a single
project for a enhancement.
 We cannot create another project (implementation) for enhancement which is
already used. That is why we go for BADI's.

Types of BADI

 Single implementation BADI.


 Multiple implementation BADI.
 Filter BADI.

Single implementation BADI:- A BADI which has only one implementation (single
class) is called single implementation BADI.

Multiple implementation BADI:- A BADI which has multiple implementations is called


multiple implementation BADI. By default all the implementations will be executed.

We cannot control the sequence of execution of multiple implementations.

Filter BADI It is type of BADI which has a filter value so that only those implementations
which satisfy the filter value are executed. The remaining implementations are not
executed this type of BADI is called a filter BADI.

Properties of BADI

Sensitivity: Internal & Restricted


 If WITH IN SAP checkbox is selected then this BADI is only used by sap.
 If multiple use checkbox is selected then it is a multiple implementation BADI.
 If multiple use checkbox is not selected then it is a single implementation BADI.
 If filter dependent checkbox is selected then it is filter dependent BADI. We need
to specify the filter type such as land1, bukrs, werks. for the filter BADI.

Q difference between kernel and classical badis

With classic BAdIs, a BAdI object is created by calling a factory method, and referenced via a
reference variable of the type of the BAdI interface.
With new BAdIs, a BAdI object is created via the ABAP statement GET BADIas a handle
for the calls of BAdI methods by CALL BADI, referenced via a reference variable of the type of the
BAdI.

Classic BAdI Calling :

DATA:bd TYPE REFTOif_intf.


DATA:flt TYPE flt.

CALLMETHODcl_exithandler=>get_instance
EXPORTING
exit_name=`BADI_NAME`
CHANGING
instance=bd.
flt-lang=`D`.
CALL METHOD bd->method
EXPORTING
x=10

Sensitivity: Internal & Restricted


flt_val=flt.

Q which BADi is more faster kernel or classical.

KERNEL BADI

Q how you use multiple BADI, do we need to deactivate or you can activate all
implementations.

A BADI that has the multiple use checkbox ticked simply means that you can
not only create multiple instances but also have more than 1 of them active at
the same time. This is unlike a standard BADI without the multiple use option
ticked, which can only have one implementation active at any one time.

There is however one caveat to multiple use badi’s, although you can have
multiple implementations you can’t specify which order these will be fired in.
Therefore, each implementation needs to be coded as a separate entity and
must not rely on a specific execution sequence or another one being completed
first i.e. you could not have one performing some checks and another updating
a database based on these checks.

Q. what is function exit?-Customer Exit—Using tcode SMOD and CMOD, we can find the
exit using search options in Main Program but Text CALL-CUSTOMER FUNCTION,
SCREEN.

In SMOD you can find the Exist available for particular standard program of Tcode using
Package.

In CMOD we can create project and Implement the Exist using enhancement assignment
and

Q. what is implicit and explicit enhancement?.

Implicit Enhancement- Were we can add our code to standard program beginning and end
of form and end form under include.

go to edit -> Enhancement Operations -> Show Implicit....Q. what is kernel BADI?

Q. what is enhancement section?

Enhancement section is used to replace a set of code or statements with the customer (custom code)

Q. how do we find the BADI steps?

Sensitivity: Internal & Restricted


CL_EXITHANDLER- GET INSTANCE copy the EXIT name and find the proper BADI to
implement.

MODULE POOL

Q. events in Module Pool?

There are four events available in module pool programming.

PBO (Process Before Output): Triggered before MPP screen is displayed.

PAI (Process After Input): Triggered after MPP screen is displayed whenever user
raises an action. Also,Now PBO is also triggered.

POV (Process On Value Request): Triggered when User Clicks on search help or F4
Button.

POH (Process On Help Request): Triggered when User Clicks on search help F1
function key

Q. CHAIN ENDCHAIN.?

If u want to validate more than one field u can do that by using CHAIN ENDCHAIN concept.
i'm placing a example where i've used chain endchain concept.
i wrote it in PAI of my code to validate userid and paswrd
chain.
field zempdetails-empno.
field zempdetails-password.
MODULE USER_COMMAND_0100.
endchain.

all of the fields on the screen that belong to the processing chain (all of the fields listed in the field
statements) are made ready for input again

Sensitivity: Internal & Restricted


Sensitivity: Internal & Restricted