Thursday 19 April 2012

Abap Interview Questions




ABAP FAQ’s:-

ALV:-

Q1)?  What are the function modules used in ALV?
Ans:-  REUSE_ALV_GRID_DISPLAY,
           REUSE_ALV_COMMENTARY_WRITE
           are the function modules used in ALV.

  • The important function modules are:
  • Reuse_alv_list_display
  • Reuse_alv_fieldcatalog_merge
  • Reuse_alv_events_get
  • Reuse_alv_commentary_write
  • Reuse_alv_grid_display

Q2)    What is the difference between classical reports & ALV reports?
Ans:-                     Classical                                       ALV
1)    In classical reports, we can not        1) In ALV reports, we can
display logos.                                       display logos.
2)    System functionalities like sum,      2) All system functionalities
Ascending, descending all these          are available in ALV reports.
Are not available in classical
reports.

     Q3)?   What are the events in ALV report?
     Ans:-   In ALV reports, we have only one event and that is
                “ USERCOMMAND” event.

These are the main events that are used in an ALV report.
 
1. USER_COMMAND
2. TOP_OF_PAGE
3. PF_STATUS_SET
4. TOP_OF_LIST
5. END_OF_PAGE
6. END_OF_LIST
7. SUBTOTAL_TEXT
 

     Q4)+ How to provide the menu button functionality?
     Ans:- By using ‘SET PF STATUS’, we can provide menu button (our own)          
               functionality.

     Q5)+ Where will you create functional keys?
     Ans:- By using “Menu Painter” we can create functional keys.
               The Transaction code of the menu painter is SE41.

     Q6)+ How will you include a logo in ALV?
     Ans:- By using a function module REUSE_ALV_COMMENTARY_WRITE,
               we can include a logo in ALV. Transaction code for uploading the logo
               is ‘OAER’.

     Q7)  How will you provide edit functionality in ALV?
     Ans:- To provide edit functionality in ALV, we have to set the
               parameter is_layout-edit  =  ‘x’, in the function module
               REUSE_ALV_GRID_DISPLAY.                                          

     Q8)  How to display totals and subtotals in ALV?
     Ans:- In field catalog, we have an option called DO_SUM. By using this
               option, we can display totals and subtotals in ALV.

 Enhancements:-

     Q1)+ What is enhancement?
     Ans:- SAP provided some loopholes to enhance the standard functionality.
               These are called as enhancements. Through Enhancements, we can
               add our own functionality to SAP’s standard business applications
               without modifying the original application. We can create
               enhancements for specific programs, screens and menus.
       
     Q2)+  How can you implement enhancements?
                                   (or)
               What are the enhancement types?
      Ans:- Depending on their enhancement approach, enhancements are divided
                into 2 types. One is Customer exit and another type is BADIs. So, by
                using customer exits and BADIs, we can implement enhancements.
 
     Q3)+  What is the difference between customer exits & BADIs?
     Ans:-             Customer exits                                     BADIs
               1) In customer exits, we do                  1) In BADIs, we do enhancements
                   enhancements in procedural               in Object Oriented approach,                                          
                   Approach, that is, By using                that is by using Classes &
                   function modules.                               Methods.                                                                  
               2) Through customer exits, we can      2) Through BADIs, multiple
                   Implement enhancement only              functionalities are possible.
                   One time.      
   
     Q4)+  How many types of user exits?
     Ans:-  Totally 3 types of user exits.
                1)Menu exit: Menu exits are used to enhance the menu options. By
                                      Using menu exits, we can add items to the pulldown
                                      Menus in standard SAP applications.
               
                2)Screen exit: Screen exits are used to enhance the screen. By using
                                        Screen exits, we can add fields to screens in R/3 application.
                
                3)Function Module exit: Function module exits add functionality to
                                                          R/3 applications. They play a  key role in
                                                          both menu and screen exits. When you add
                                                          a new menu item to a standard pulldown
                                                          menu, you have to use a function module
                                                          exit to define the actions that should take
                                                          place once your menu is activated.

     Q5)+  What is the disadvantage of menu exit?
     Ans:-  The disadvantage of menu exit is, we can not enhance menu options
                Individually. For example, if we want to change a menu option from
               ‘Disable mode’ to ‘Enable mode’, irrespective of our requirement, all
                the menu options are enabled. That is the disadvantage of menu Exit.  

     Q6)+   How to find out the user exit?                                   
     Ans:-   à Execute Transaction code SE93 to find out the package
                 à Open the transaction in Display mode
                 à Double Click on ‘program’ to open it
                 à Go to à Attributes  & find out the package
                 à execute transaction code ‘SMOD’ to find out the
                      enhancement from the already identified package
                 à press F4, provide package name & press ‘Enter’.
                      Then we can get the available enhancements

     Q7)+   How to implement the user exit?
     Ans:-   à execute transaction code ‘CMOD
                 à provide ‘project name’ & click on ‘Create’.
                 à provide ‘Short text’ & Save it.
                 à Click on ‘Enhancement assignments’
                 à Here we can implement user exits.
   

     Q8)+   How to find out the BADIs?
     Ans:-   à Execute Transaction code SE93 to find out the package
                 à Open the transaction in Display mode
                 à Double Click on ‘program’ to open it
                 à Go to à Attributes  & find out the package
                 à execute transaction code ‘SE80’ to find out the
                      BADIs from the already identified package
                 à provide package name & Click on ‘Display
                      Here we can see the BADIs list.

     Q9)+   How to implement BADIs?
     Ans:-   We can implement BADIs by using Transaction code ‘SE19’.
                 à Execute Transaction code SE19
                 à Provide ‘Implementation Name’ & Click on ‘Create’.
                 à Provide the ‘name of the add-in’.
                 à Provide ‘Short text’ & Click on ‘Interface’ tab.
                 à Notice the list of methods & Find out the right method
                      to implement. (by reading the description and documentation
                      of each method.)

BAPIs:-

     Q1)+ How many types of interfaces?
     Ans:- We have 2 types of Interfaces. One is, Outbound Interface
               and 2nd type is Inbound interface.
               a)Outbound interface:  is used to extract the data from SAP.
               b)Inbound interface:     is used to upload the data into SAP.

     Q2)+ How many types of tools we have for uploading data?
     Ans:- We have 4 tools for uploading data.
               a)Legacy system migration workbench (LSMW):
                  For uploading mass data from NonSAP-SAP & SAP-SAP.
               b)Batch Data Communication (BDC):
                   For uploading mass data from NonSAP-SAP & SAP-SAP
                   Through screens
              
              c)Business Application Programming Interfaces(BAPIs):
                 For uploading & for downloading the data
              d)Application Linking & Enabling(ALE/IDocs):
                 For uploading & for downloading the data.
     
     Q3)   What is the difference between RFC and Function module?
     Ans:-             Function module                           RFC
               1) In function modules, all types     1) In RFC, all types of parameters  
                   Of parameters are passed by         Are passed by value.
                   reference.     
               2) We can access only from SAP  2) We can access from Non SAP
   System.                                           Also.

     Q4) What is the difference between RFC(Remote Function Call) & BAPI?
     Ans:- If you include a RFC in business object repository through transaction
              Code ‘SW01’, then that RFC will become a BAPI.

     Q5) What are all the BAPIs you have worked/created recently?
     Ans:-                       (depends on resume.) 

     Q6)+ What is the difference between BDC & BAPI?
     Ans:-                BDC                                                BAPI
1)    In BDC, Data will be uploaded  1) In BAPI, Data will be uploaded
     through screens.                             through Function modules.
2)    Through BDC,Uploading the     2) Through BAPI, uploading And
     data is only possible.                       Downloading the data both are                       
                                                                               possible.  

BDC:-

     Q1)+ What is the structure used in BDC to Upload the data?
     Ans:- BDCDATA is the structure used in BDC to Upload the data

     Q2)+ What are the update modes available in Call Transaction method?
     Ans:- 2 update modes.
1)    Asynchronous update :
*In this mode, the called transaction does not wait for any updates
  It produces to be completed.
*Execution is faster when compared to synchronous update.
*It is not recommended for processing any larger amount of
 Data why because error analysis and recovery is less convenient.
2)    Synchronous update :
*In this mode, the called transaction waits for any updates that
  It produces to be completed.
*Execution is slower when compared to Asynchronous update.
*The called transaction is able to return any update error
  Messages. So, error analysis and recovery is much easier.

     Q3)+   What are the display modes available in Call Transaction method?
     Ans:- There are 3 display modes in Call Transaction method.
                   A -  display All screens
                          All screens and the data that goes in them appear when we
                          Run the program.
                   NNo screens (Background processing)    
                          All screens are processed invisibly, regardless of whether
                          there are errors or not. Control returns to the program as
                          soon as transaction processing is finished.
                   E -  display Error screens only
                          The transaction goes into display mode as soon as an error
                          In one of the screens is detected. We can then correct the
                          error.
                         
     Q4)+ What is the default updation mode in Call Transaction method?
     Ans:- Asynchronus updation is the default updation mode in call transaction                                          
               method. In Asynchronus updation, if an error occurs while updating The
               database, It skips the error record and continues the updating process.

     Q5)+ What is the default updation mode in Session method?
     Ans:- Synchronus updation is the default updation mode in Session
               Method. In Synchronus updation, if an error occurs while updating
               The database, the updating process will be stopped at that point.

     Q6)+ What are the function modules used in Session method?
     Ans:- (explanation - BDC 1pg of session method)  
               3 function modules are used in session method.
1)    BDC_OPEN_GROUP
2)    BDC_INSERT
3)    BDC_CLOSE_GROUP

     Q7)+ What is the difference between Call Transaction method & Session    
               method?
     Ans:-          Call Transaction                                    Session
1)    In Call transaction method, data    1) Whereas in Session method,
Updation will take place at the          a session will be created and
Moment of execution of the              we can run that session at the
program.                                             background At any time.
                2)  In Call transaction, only one             2) In Session method, multiple  
                     Transaction can be processed         Transactions can be processed   
                     Always.                                              Through the same session.
                3)  Error handling is explicit               3) Error handling is implicit   
Functionality in Call Transaction     functionality in Session
Method.                                              Method.  
 4) Faster bcz it is Asynchronous        4) Slower bcz it is Synchronous
Update.                                               Update.
                5)  Returns the SY-SUBRC.             5) Doesn’t return the SY-SUBRC.
 
     Q8)+   How to handle the errors in Call Transaction method?
     Ans:- We can handle the errors in Call Transaction method, by using a function
               Module FORMAT_MESSAGE.

     Q9)+  What is the complete syntax of Call Transaction?
     Ans:- CALL TRANSACTION <TCODE>  “Transaction code                     C
                           USING <IT_BDCDATA>      “Itab of structure BDCDATA    U
                           MODE <A/E/N>                     “display mode                             M
                           UPDATE <A/S>                     “update mode                              U
                           MESSAGES INTO <IT_BDCMSGCOLL>.                           M

REPORTS:-   

     Q1)+ How to get the checkboxes side by side/in a single line?
                                      (or)
              How to place the selection screen elements in a single line?
     Ans:- By default, each selection screen element is placed in a new line, and
               More than one element can be placed in the same line also. That is, by 
               placing them in between the ‘SELECTION SCREEN BEGIN OF LINE’,
               ‘SELECTION SCREEN END OF LINE’.    

              Syn.,   SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME.  
                            SELECTION-SCREEN BEGIN OF LINE.
                              *provide the selection screen elements
                            SELECTION-SCREEN END OF LINE.
                         SELECTION-SCREEN END OF BLOCK B1.

              The elements within the same line loose the selection text by default. And
              which can be provided through “SELECTION-SCREEN COMMENT”.

              Syn.,   SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME.  
                           SELECTION-SCREEN BEGIN OF LINE.
                             SELECTION-SCREEN COMMENT 5(10) TEXT-003.
                             *provide the selection screen elements
                           SELECTION-SCREEN END OF LINE.
                         SELECTION-SCREEN END OF BLOCK B1.

     Q2)+ How to create the text for check boxes?
                                      (or)
              How to provide user-friendly descriptions for selection screen elements?
     Ans:- To provide user-friendly descriptions for selection screen elements,
               Path: Go to àText elements à Selection texts
               Enter the text, save it & activate it.

     Q3)+ How to disable a field on selection screen?
     Ans:- We can disable a field on selection screen, by using “AT SELECTION
               SCREEN OUTPUT” event. In this event, loop the screen and in the loop,
               We have to keep SCREEN-INPUT = ‘0’ for that particular field.

     Q4)+ How to validate the entered values of the selection-screen?
     Ans:- By using the event “AT SELECTION SCREEN”, we can validate
              the entered values of the selection-screen. This event triggers before       
              leaving the selection-screen and this event is not only used to validate
              the input of the selection-screen but also used to display user friendly     
              messages on the selection-screen itself.
              The input is valid only when there is at least one record found in
              The master data. If a record found, then SY-SUBRC value becomes
              ‘0’, if recode not found, then its value becomes <> ‘0’. In this way,
              we can validate the entered values of the selection-screen.
    
     Q5)+ What are the events in reports?
     Ans:-  1)    INITIALIZATION
2)     AT SELECTION SCREEN OUTPUT
3)     AT SELECTION SCREEN ON VALUE REQUEST
4)     AT SELECTION SCREEN
5)     START OF SELECTION
6)     END OF SELECTION
7)     TOP-OF-PAGE
8)     END-OF-PAGE
9)     AT LINE SELECTION
10) AT USER COMMAND

     Q6)+ What are the different techniques used in “AT LINE SELECTION”?
     Ans:- 1) SY-LISEL
               2) HIDE
               3) GET CURSOR

     Q7)+ How many secondary lists can we create in reports?
     Ans:- 20 secondary lists.
    
     Q8)+ How many types of messages we have in reports?    
     Ans:- 1) Error message (E)
               2) Warning message (W)
               3) Information message (I)
               4) Abort message (X)
               5) Termination message (A)
              6) Status message (s)
    
     Q9)+ In how many ways, can we display messages?
     Ans:- 2 ways.
1)    MESSAGE E001(message class).
2)    MESSAGE ‘message text’ type ‘E’.

     Q10)+How to create message class?
     Ans:- We can create message class, by using transaction code SE91.

     Q11)+How to validate the group of fields?
     Ans:- We can validate the group of fields by using ‘chain’ and ‘endchain’.
               That is, If the validation has to be done for more than one field, then, in
               That situation, those fields are placed between ‘chain’ and ‘endchain’.
      
     Q12) What are the control break events?
     Ans:- 1) AT FIRST: to display the starting text
               2) AT LAST: to display the ending text
               3) AT NEW: to display the starting text of the subgroup
               4) AT END: to display the ending text of the subgroup
               5) ON CHANGE OF:

       AT FIRST---->this is used for system field heading in
                      ABAP  program.
 
         AT NEW------>this is used to display the fields.
 
         AT END------>this is used for row-wise calculation i.e, 
                      sub-total.
 
         AT LAST----->this is used for calculation of grand total.
 
         

General questions:-

     Q1)+ What are your Roles & Responsibilities in your project?
     Ans:- a) Preparing the technical specifications according to the functional                                
                   specifications.
               b) Developing the code according to the client requirement.
               c) Unit testing and performance tuning of the program.

     Q2)+ How will you get the work?
     Ans:- My team lead allots the work through mail.

     Q3)+ What are the positions in your company?
     Ans:- àAssociate Software Engineer
                   à Software Engineer
                        à Senior Software Engineer
                             à Team lead
                                  à Project manager
                                       à Delivery lead


     Q4)+ What are the types of projects?
     Ans:- 2 types of projects.
1)    End-to-End Implementation
2)    Support project

     Q5)+ Which tool are you using for getting tickets(Change request)?    
     Ans:- By using Remedy tool we get the tickets.

     Q6)+ Transaction codes? +
     Ans:-           ABAP Dictionary -   SE11              (Data dictionary)  
               ABAP Program Editor -  SE38
                 Transaction Recorder -  SHDB             (BDC)
                               Form Painter -  SE71               (SAP Scripts)
                       SAP Smart Forms -  SMARTFORMS
                         Function Builder -  SE37               (Function Modules)
                             Screen painter -  SE51               (Module pool programming)
                                    Menu painter -  SE41

                     To find out the Package  -  SE93
           To find out the Customer Exit  -  SMOD
       To Implement the Customer exit  - CMOD
                          To find out the BADI  -  SE80
                     To Implement the BADI  -  SE19
                           
Real time questions:-      

     Q1)+ What is the landscape of your company?
     Ans:- Our company is having 3 servers named as
1)    Development server:  CCD (only for Developers)
2)    Quality server:  CCQ (for testing the Quality)
3)    Production server:  CCP (For End users)

Development server has 2 clients: 100 and 500.
Quality server has          1 client:   100.
Production server has     1 client:   100.

     Q2)+ How will you transport your transport request?
     Ans:- By using transaction code SE09 or SE10, we transport our
               requests from Development server to Quality server.

     Q3)+ How will you interact with your functional consultants?
     Ans:- Depending on the requirement, Sometimes I use to call them directly
               And sometimes in presence of my TL.

What is your reliant experience?     Experience:
What is your Current salary?      Current salary:
How much you are expecting? Expected salary:
How many days?                          Notice period:

No comments:

Post a Comment