Saturday, September 20, 2014

Important SAP ABAP Interview Questions.

1.What is SAP?
= SAP is business management tool or software. It intergrates different business functionalites.
Its basically ERP (enterprise resource planning)tool.

2.What are the different areas you work in ABAP ?
3.What is RICEFW?
4.RICEFW stands for?
= Normally you should answer in terms of RICEFW.
R-Reports
I-Interfaces
C-Conversions
E-Extensions/Enhancements
F-Forms
W-Workflow.

Reports
= An ABAP report program reads data from the SAP database, performs any required data manipulation (e.g. summarization, sorting) and outputs the data to either the computer screen or a printed page.SAP provides many standard ABAP reports with the base R/3 installation. Most SAP customers, however, wish to have their own set of custom reports to complement the suite provided by SAP. These custom reports will be created by the ABAP Development team as a part of the SAP implementation project.There are a number of other tools available to facilitate the development of reports using SAP data, including SAP ReportPainter, SAP Open Information Warehouse SAP Business Intelligence as well as numerous 3rd party reporting and datawarehouse tools. Most SAP customers will use one or more of these other tools in addition to custom ABAP reports.
 
Interfaces
=With the majority of SAP installations, the enterprise solution will comprise some other systems as well as SAP. Each of these other systems (i.e., tax system,production scheduler) must be able to communicate with SAP. This communication is performed via interfaces. Interfaces are typically categorized as inbound (i.e., SAP is the target system - the data is coming in to SAP from another system) or outbound (i.e., SAP is the source system - the data is taken out of SAP and sent out to another system).An interface typically has three program components:
• Extract
• Translation
• Load
An extract program will execute on the source system and a load program will excute on the target system. A translation program may be developed on either the source or target system - this is dependent on the design. The above examplesshows translation occurring in SAP.
Interfaces can be developed to execute in one of the following three modes:
• Synchronous (i.e., on-line, real time)
• Asynchronous (i.e., near real time)
• Batch
 
Conversions
=When SAP is implemented at a company, it is typically going to be replacing a number of existing systems ( i.e., legacy systems). Before a legacy system can be “turned off,” key business data must be migrated from the legacy system to SAP. The process for moving the data is referred is to as
“conversion.” From a development perspective, conversion programs are designed and
developed in the same manner as inbound interfaces.
Examples of data that often needs to be converted are General Ledger Account Balances, Open Purchase Order and Inventory.
 
Extensions/Enhancements
=SAP provides a number of options for extending the base SAP software.
• Customizing: SAP provides a number of “hooks” (commonly referred to as user-exits) that allow for the tailoring of SAP functionality to meet a company’s specific business needs. This option is typically exercised when it is absolutely necessary to change SAP delivered programs and an
appropriate user-exit exists.
• Modifications: SAP permits SAP delivered programs to be changed directly. These changes are typically not supported by SAP and must be reapplied following every software upgrade. This option is typically exercised as a last resort.
• New ABAP Development: SAP allows the augmenting of the standard SAP R/3 through the development of additional objects and programs without changing existing SAP R/3 programs. This is the preferred process of adding new functionality to SAP in the absence of an applicable addon/
bolt-on.
• Add-on/Bolt-on: A number of third party products have been introduced in the marketplace to provide additional functionality to SAP. Many of these products are certified by SAP. These solutions are typically used when customer requirements are not fully satisfied by base SAP and a suitable product exists to fill the gap.
 
Forms
= SAP provide number of different output types. Where SAP scripts, Smartforms and Adobe forms come under this type of developement. Business need to take a print of tax certificate, order document , invoice document , payment file, material document with different custom that includes logo, different font/size all this can be done throught SAP forms.
 
Workflow
=SAP Business Workflow enables the design and execution of business processes within SAP application systems: Workflow processes are delivered as content in the SAP Business Suite. Additionally, customers can not only enhance those workflows provided by SAP, but they can also create their own workflows. SAP Business Workflow is at the heart of the SAP system.
Example : Auto approved leave, High value document posting with approval, Vendor invoice management.

6. Can we create checkbox or radio button using WRITE statement ?
= Yes we can only create checkbox.

WRITE as checkbox.

7. What is difference between user exits and customer exits in SAP?
=
User Exit
Customer Exit
This are modifications
This are enhancement
Users exits are in form INCLUDE s attached to standard SAP programs. This include contains multiple subroutines.
E.g: MV45AFZZ, RV60AFZZ
Normally out of last two chars. is Z that means its user exit.
Customer Exit are standard SAP components which can be enhanced as per business requirement.
Function exits.
Screen exits.
Field exits.
Table exits.
Field exits.
E.g: CALL CUSTOMER-FUNCTION ‘001’.
This function module contains include, that can be modified.
Its older technique and user exits are normally found in SD module (Order/Delivery/Invoice).
Customer exits will also soon get replaced with BAdi, this are across all modules.
Requires access key for first time (During implementation / After upgrade)
Does not require access key
Can be found as attached INCLUDE in SAP main program.
E.g. SAPMV45A
Tcode SMOD helps to know different components of enhancements.
CMOD helps to create project and implement require exits (activate/deactivate possible)
In case user exits, you have access to almost all the data. So high risk to change data in business flow and high impact
As implemented in form of function module so only IMPORTING, EXPORTING, CHANGING TABLES data can be accessed and modified.

8.What is difference between BAdi and Customer Exits ?
=

BAdi
Customer Exit
This are enhancements
This are enhancements
BAdi’s are based on object oriented concepts.
Adapter Class and Interface are provided by SAP. Tcode SE18 for BAdi definition
SAP provides different components.
Tcode SMOD to find components
We can have multiple implementation of BAdi and even put filters
We can implement single component into one project only in CMOD transaction.
BAdi’s are fast and more secure. Due to base on OO methods and only require methods can be coded.
Customers exits are normally slow and need implement whole component and include in function module exits.
Important transactions.
 
SE18 – BAdi Definition
SE19 – BAdi Implementation
Important transactions.
 
SMOD – SAP Enhancements.
CMOD – Customer Enhancements.
Easy to implement and fast to identify.
Little complex and long procedure to implement.

9. What is difference between BDC method and BAPI?
=

BDC method
BAPI
BDC stands for ‘Batch Data Communication’. Where based on recording and data is feeded. Require transaction is called to achieve desire functionality.
BAPI stands for Business API (application programmable interface). RFC enabled function module associated to SAP business objects. These are library function module which is released by SAP to customers.
More complex and less faster method
Less complex and faster method compared to BDC
BDC requires recording. It comes with methods.
1.CALL TRANSACTION
2.SESSION METHOD
BAPI’s does not require recording. As associated with BO (Business objects). BAPI comes with events, Key fields, methods and attributes.
Background, foreground and only error processing modes are applicable for BDC methods
No processing mode for BAPI’s.
Important transactions.
SHDB – Recording
SM35 – To access session
 
Important transactions.
BAPI – To identify BAPI’s to suit business requirements.
Normally used to upload huge legacy data.
Normally used to update small data.
Not require to COMMIT explicitly
Require to call function module BAPI_TRANSACTION_COMMIT
Errors or success message are return in BDCMSGCOL for CALL TRANSACTION method and Errors can be processed in SM35 for session method
RETURN parameter of BAPI function module returns success or failure message once BAPI called.


10.What is difference between CALL TRANSACTION and SESSION METHOD of BDC?
=

CALL TRANSACTION
SESSION METHOD
CALL TRANSACTION is synchronous type.
SESSION METOD is asynchronous type.
Used only for small set of data upload
Used to upload or transfer large volume of data.
Do the recording and use CALL TRANSACTION statement in SAP ABAP.
E.g.
CALL TRANSACTION 'MM02' USING i_bdc_tab OPTIONS FROM ctuparams
    MESSAGES INTO t_msg.
Do the recording and use below function module.
CALL FUNCTION 'BDC_OPEN_GROUP'.
CALL FUNCTION 'BDC_INSERT’.
CALL FUNCTION 'BDC_CLOSE_GROUP'.
Process session in SM35 or SUBMIT rsbdcsub to process session automatically.
Relatively faster method.
Slower as compare to CALL TRANSACTION
Errors or success message are return in BDCMSGCOL for CALL TRANSACTION method.
Errors can be processed in SM35 for session method.
Database is updated as soon as CALL TRANSACTION returns success message.
Database is not updated until session is processed manually using SM35 transaction code.

11.What is difference between RFC and BAPI ?
=

RFC
BAPI
RFC stands for ‘Remote Enabled Communication’.RFC function modules are remote enabled where function present on SAP-A system can be called from SAP-B system.
BAPI stands for Business API (application programmable interface). RFC enabled function module associated to SAP business objects. These are library function module which is released by SAP to customers.

 
E g. CALL FUNCTION ‘YADD_RFC’ DESTINATION ‘SAP-A’
E g. CALL FUNCTION BAPI_SALES_ORDER_CREATE2
No associativity with business object.
BAPI are associated with business objects
RFC function can used and access with in SAP systems only.
E.g. ECC to ECC, APO to ECC, BW to ECC.
BAPI helps to non-SAP system (JAVA, .NET) technologies to communicate with SAP systems.
RFC function module does have RETURN results normally.
BAPI always have RETURN table to show results.
CALL FUNCTION ‘FMNAME’ STARTING NEW TASK or IN BACKGROUND TASK or IN UPDATE MODE must be RFC enabled.
Not necessary BAPI
RFC may or may not release by SAP to customers.
BAPI are released function module for customers by SAP.


12. What is different between SAP scripts and SMARTFORMS ?
=

SMARTFORMS
SAP script
Smart forms are client independent-It does not use any text-elements. It calls function module auto-generated by SAP system.
SAP scripts are client dependent-By design it used text-elements and based on word processing technology. SAP scripts are saved in ITF format on client dependent table STXH and STXL
Main window is not mandatory
Main window in mandatory
Multiple pages format possible.
Single format across all pages.
No need of driver program. We can write all logic in smart forms (not recommended).
SAP script can’t be done without driver program.
Print background logo- Not possible
Print background logo-Possible
Only one main window
Up to 99 main windows can be created.
On activation function module is generated
On activation no function module is generated.
Easy to debug – No explicit action require.
Little complex to debug-Explicitly SE71 – Utilities activate debugger.
SMARTFORMS cannot be converted to SAP scripts.
SAP scripts can be converted to SMARTFORMS. SE38-SF_MIGRATE
Checkbox tick to achieve protection.
PROTECT…ENDPROTECT command is used to achieve page protection.


13.What is difference between macros and subroutines?
=

MACROS
SUBROUTINES
In SAP macros are defined as.
 
DEFINE
 
END-OF-DEFINATION.
 
Calling.
 
parameters.
In SAP subroutines are defined as.
FORM
ENDFORM.
Calling.
PERFORM parameters.
Define and called only in main program.
Can be define in main program or include and called from anywhere.
Maximum 9 parameters possible.
No limit
Supports only call by value.
Supports call by value, call by reference, and call by value and result.
Normally used when same lines of code used multiple times in program.
 
E.g. Creation of field catalog for ALV
Normally used for modularization.
We can’t debug macros, can’t go inside.
We can debug subroutines.


14.Whats is difference between implict and explict enhancements?
=

Implicit Enhancements
Explicit Enhancements.
Implicit enhancements are always present on standard location in ABAP code section.
 
You can see what are available by going into menu bar and go to Edit - Enhancement Operations - Show Implicit Enhancement
 
 
The developer of the corresponding development object must insert the options of the one kind into the coding so that enhancements can be done there at a later time. These preconceived enhancement possibilities are called explicit enhancement options.
ENHANCEMENT-POINT
Enhancement options are always available in programs, global classes, function modules, and includes. We can create implicit enhancement at start or end of standard function module or forms.
It can be anywhere in source code.
No Types.
Two Types.
Enhancement Spot.
Enhancement Section.

15. Whats is difference between enhancement spot and enhancement section?
=
Enhancement Spot
Enhancement Section.
Enhancement point type allow you to insert source code plug-ins. These are additional code lines that, if they exist, are executed there additionally.
Explicit enhancement options of the type Enhancement Section behave in the same way – the only difference being that the source code plug-in replaces the section in the original code.
ABAP statement.
 
ENHANCEMENT-POINT
ABAP statement.
 
ENHANCEMENT-SECTION.
Custom code enhances the logic with standard code.
Multiple active implementations of an Enhancement-Point can exist. All the implementations will be executed with no guarantee in the order of execution.
Custom code is replaced, standard code is not executed.
There can be only one active implementation of an Enhancement- Section Only the implementation gets executed and the original code doesn't get executed


16.What is difference between enhancement spot and BAdi ?
=

Enhancement Spot
BAdi
Enhancement point type allow you to insert source code plug-ins. These are additional code lines that, if they exist, are executed there additionally.
It comes under enhancement spot.
Additional method in class, parameter in function module and custom code at start or end can be added.
Standard BAdi can implement. No new method can be added
No execution filter possible based on county,vendor,partner etc.
BAdi can be filtered based on country,vendor,company code etc.
Multiple implement not possible in same object
Multiple BAdi can be implemented.

17.

18.

19.

20.

21.

22.

23.

24.

25.

26.

27.

28.

29.

30.

 

1 comment:

  1. Excellent question and answers.
    Good work

    ReplyDelete