SAP ABAP Interview Questions

 Q.What is an ABAP data dictionary? Ans: ABAP 4 data dictionary describes the logical structures of the objects used in application development and shows how they are mapped to the underlying relational database in tables/views. Q.What are domains and data element? Ans: 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: It is used to describe the semantic definition of the table fields like description the field. Data element describes how a field can be displayed to end-user. Q.What is foreign key relationship? Ans: A relationship which can be defined between tables and must be explicitly defined at field level. Foreign keys are used to ensure the consistency of data. Data entered should be checked against existing data to ensure that there are now contradiction. While defining foreign key relationship cardinality has to be specified. Cardinality mentions how many dependent records or how referenced records are possible. Q.Describe data classes? Ans: Master data: It is the data which is seldomly changed. Transaction data: It is the data which is often changed. Organization data: It is a customizing data which is entered in the system when the system is configured and is then rarely changed. System data:It is the data which R/3 system needs for itself. Q.What are indexes? Ans: Indexes are described as a copy of a database table reduced to specific fields. This data exists in sorted form. This sorting form ease fast access to the field of the tables. In order that other fields are also read, a pointer to the associated record of the actual table are included in the index. Yhe indexes are activated along with the table and are created automatically with it in the database. Q.Difference between transparent tables and pooled tables? Ans: Transparent tables: Transparent tables in the dictionary has a one-to-one relation with the table in database. Its structure corresponds to single database field. Table in the database has the same name as in the dictionary. Transparent table holds application data. Pooled tables. Pooled tables in the dictionary has a many-to-one relation with the table in database. Table in the database has the different name as in the dictionary. Pooled table are stored in table pool at the database level. Q.What is an ABAP/4 Query? Ans: ABAP/4 Query is a powerful tool to generate simple reports without any coding. ABAP/4 Query can generate the following 3 simple reports: Basic List: It is the simple reports. Statistics: Reports with statistical functions like Average, Percentages. Ranked Lists: For analytical reports. - For creating a ABAP/4 Query, programmer has to create user group and a functional group. Functional group can be created using with or without logical database table. Finally, assign user group to functional group. Finally, create a query on the functional group generated. Q.What is BDC programming? Ans: Transferring of large/external/legacy data into SAP system using Batch Input programming. Batch input is a automatic procedure referred to as BDC(Batch Data Communications).The central component of the transfer is a queue file which receives the data vie a batch input programs and groups associated data into “sessions”. Q.What are the functional modules used in sequence in BDC? Ans: These are the 3 functional modules which are used in a sequence to perform a data transfer successfully using BDC programming: BDC_OPEN_GROUP - Parameters like Name of the client, sessions and user name are specified in this functional modules. BDC_INSERT - It is used to insert the data for one transaction into a session. BDC_CLOSE_GROUP - This is used to close the batch input session. Q.What are internal tables? Ans: Internal tables are a standard data type object which exists only during the runtime of the program. They are used to perform table calculations on subsets of database tables and for re-organising the contents of database tables according to users need. Q.What is ITS? What are the merits of ITS? Ans: ITS is a Internet Transaction Server. ITS forms an interface between HTTP server and R/3 system, which converts screen provided data by the R/3 system into HTML documents and vice-versa. Merits of ITS: A complete web transaction can be developed and tested in R/3 system. All transaction components, including those used by the ITS outside the R/3 system at runtime, can be stored in the R/3 system. The advantage of automatic language processing in the R/3 system can be utilized to language-dependent HTML documents at runtime. Q.What is DynPro? Ans: DynPro is a Dynamic Programming which is a combination of screen and the associated flow logic Screen is also called as DynPro. Q.What are screen painter and menu painter? Ans: Screen painter: Screen painter is a tool to design and maintain screen and its elements. It allows user to create GUI screens for the transactions. Attributes, layout, filed attributes and flow logic are the elements of Screen painter. Menu painter: Menu painter is a tool to design the interface components. Status, menu bars, menu lists, F-key settings, functions and titles are the components of Menu painters. Screen painter and menu painter both are the graphical interface of an ABAP/4 applications. Q.What are the components of SAP scripts? Ans: SAP scripts is a word processing tool of SAP which has the following components: Standard text. It is like a standard normal documents. Layout sets. - Layout set consists of the following components: Windows and pages, Paragraph formats, Character formats. Creating forms in the R/3 system. Every layout set consists of Header, paragraph, and character string. ABAP/4 program. Q.What is ALV programming in ABAP? When is this grid used in ABAP?- Ans: ALV is Application List viewer. Sap provides a set of ALV (ABAP LIST VIEWER) function modules which can be put into use to embellish the output of a report. This set of ALV functions is used to enhance the readability and functionality of any report output. Cases arise in sap when the output of a report contains columns extending more than 255 characters in length. In such cases, this set of ALV functions can help choose selected columns and arrange the different columns from a report output and also save different variants for report display. This is a very efficient tool for dynamically sorting and arranging the columns from a report output. The report output can contain up to 90 columns in the display with the wide array of display options. Q.What are the events in ABAP/4 language? Ans: Initialization, At selection-screen, Start-of-selection, end-of-selection, top-of-page, end-of-page, At line-selection, At user-command, At PF, Get, At New, At LAST, AT END, AT FIRST. Q.What is CTS and what do you know about it? Ans: The Change and Transport System (CTS) is a tool that helps you to organize development projects in the ABAP Workbench and in Customizing, and then transport the changes between the SAP Systems and clients in your system landscape. This documentation provides you with an overview of how to manage changes with the CTS and essential information on setting up your system and client landscape and deciding on a transport strategy. Read and follow this documentation when planning your development project. Q.What are logical databases? What are the advantages/ dis-advantages of logical databases? Ans: To read data from a database tables we use logical database. A logical database provides read-only access to a group of related tables to an ABAP/4 program. Advantages: i)check functions which check that user input is complete, correct,and plausible. ii)Meaningful data selection. iii)central authorization checks for database accesses. iv)good read access performance while retaining the hierarchical data view determined by the application logic. dis advantages: i)If you donot specify a logical database in the program attributes,the GET events never occur. ii)There is no ENDGET command,so the code block associated with an event ends with the next event statement (such as another GET or an END-OF-SELECTION). Q.What is a batch input session? Ans: BATCH INPUT SESSION is an intermediate step between internal table and database table. Data along with the action is stored in session ie data for screen fields, to which screen it is passed, program name behind it, and how next screen is processed. Q.How to upload data using CATT ? Ans: These are the steps to be followed to Upload data through CATT: Creation of the CATT test case & recording the sample data input. Download of the source file template. Modification of the source file. Upload of the data from the source file. Q.What is Smart Forms? Ans: Smart Forms allows you to create forms using a graphical design tool with robust functionality, color, and more. Additionally, all new forms developed at SAP will be created with the new Smart Form solution. Q.How can I make a differentiation between dependent and independent data? Ans: Client dependent or independent transfer requirements include client specific or cross client objects in the change requests. Workbench objects like SAPscripts are client specific, some entries in customizing are client independent. If you display the object list for one change request, and then for each object the object attributes, you will find the flag client specific. If one object in the task list has this flag on, then that transport will be client dependent. Q.What is the difference between macro and subroutine? Ans: Macros can only be used in the program the are defined in and only after the definition are expanded at compilation / generation. Subroutines (FORM) can be called from both the program the are defined in and other programs . A MACRO is more or less an abbreviation for some lines of code that are used more than once or twice. A FORM is a local subroutine (which can be called external). A FUNCTION is (more or less) a subroutine that is called external. Since debugging a MACRO is not really possible, prevent the use of them (I’ve never used them, but seen them in action). If the subroutine is used only local (called internal) use a FORM. If the subroutine is called external (used by more than one program) use a FUNCTION. Q.How we format the data before before write statement in report ? Ans: We can format the reports output by using the loop events like: first new last etc check docu Q.What is the difference between Table and Template? Ans: table is a dynamic and template is a static Q.When do we use End-of-selection? Ans: End-of-selection event are mostly used is when we are writing HR-ABAP code. In the HR-ABAP code, data is retrived in the Start-of-selection event and Printing on the list and all will be done in End-of-selection event. Q.In events start-of-selection is default event. When we have to use this event explicitly? Why? Ans: The default event in the ABAP is Start-of-selection.We have to call explicitely this event when you are writing other than ths event? , that is when you write AT? SELECTION-SCREEN EVENTS OR INITIALIZATION EVENT etc,you have to explicitely mention the Start-of-selection event while you are writing the logic. Before these events called ,all the code you have written come into this default Start-of-selection screen event. Q.What is the differences between ABAP and OOABAP. In which situation we use OOABAP? Ans: OOABAP is used to develop BSP/PCUI applications and also anthing involved object oriented like BADIs, SmartForms..etc.where as ABAP is used to develop traditional programs in R/3. Q.What is table buffer? Which type of tables used this buffer? Ans: buffer is nothing but a memory area. table is buffered means that table information is available on application server. when you call data from database table it will come from application server. transperent and pooled tables are buffered. cluster tables can not buffered. Q.What is the use of pretty printer ? Ans: Exactly where can we link the functional module to abap coding. Pretty Printer is used to format the ABAP Code we write in ABAP Editor ,like KEY WORDS in Capitals and remaining are in small letters which is also depend on system settings. We can call the function module in the ABAP Code .Press the Pattern button on Appl. tool bar then u will get box where u write the function module NAME which u want to call in the code by selecting the radio button CALL FUNCTION. In this way we link function module to ABAP Code. Q.What is the difference between SAP memory and ABAP memory? Answer1: data sending between main sessions using get parameter and set parameter is sap memory data sending between internal sessions using import or export parameters is abap memory Answer2: sap memory is a global memory whereas abap memory is local memory. For example, we have four programs in abap memory and assigned some varibles to a particular program in abap memory then those varibles can't be used by anyother program in abap memory i.e., the variables are only for that program and also local to that memory,whereas sap memory can access all the abap memory or else it can perform any kind of modifications. Answer3: SAP memory is available to the user during the entire terminal session. ABAP memory is available to the user during? life time? of? external session. Q.What is the difference between Type and Like? Answer1: TYPE, you assign datatype directly to the data object while declaring. LIKE,you assign the datatype of another object to the declaring data object. The datatype is referenced indirectly. Answer2: Type is a keyword used to refer to a data type whereas Like is a keyword used to copy the existing properties of already existing data object. Answer3: type refers the existing data type like refers the existing data object Q.What is Tcode SE16. For what is it used. Explain briefly? Answer1: SE16 is a T-code for object browser. Generally used to search the fields of SAP Tables . and respective data. Answer2: se16 is a data browse and it is used to view the contents of the table and we cannot change or append new fields to the existing structure of the table as we cannot view the structure level display using the se16 Q.What are different ABAP/4 editors? What are the differences? Ans: The 2 editors are se38 and se80 both have the abap editor in place. In se38 you can go create programs and view online reports and basically do all thedevelopmet of objects in this editor. In se80 ( object navigator) there are additional features such as creating packages,module pool , function group ,classes, programs ( where you can create ur programs) and BSP applications . Q.What is difference between dialog program and a report? Ans: Report is a excecutable program Dialog is a module pool program.It has to be executed via a transaction only. Dialog programming is used for customization ofscreens Q.How do you connect to the remote server if you are working from the office for the client in remote place. WAS web application server or ITS are generally used for this purpose. If you are sitting at your office with a server which is in the system and the other server is at the clients place you can generate IDOC, intermidiate documents which carry the data you want to transfer or the documents you want to transfer, these IDOC are interpretted by the system at the recieving end with the message class with which it is bound with. If you want to logon a system which is very distant..then remote login can be used this depends on the internet speed. Q.Explain about roll area , Dispatcher, ABAP-Processor. Answer1: Roll area is nothing but memory allocated by work process. It holds the information needed by R/3 about programs execution such as value of the variables. Dispatcher :All the requests that come from presentation server will be directed first to dispatcher. Further dispatcher sends this requests to work process on FIFO(First In and First Out) basis. Answer2: Dispatcher recieves the request from client and assigns the request to one of the work process. Roll area: Each workprocess works in a particular memory that memory is known as Role Area, which consists of User context and session data. ABAP- Processor :is an interpretor which can execute logic Q.Which one is not an exit comand ? (Exit, cencle, stop, back) Ans: STOP. Effect :The statement STOP is only to be used in executable programs EXIT. Effect :If the EXIT statement is executed outside of a loop, it will immediately terminate the current processing block. BACK. Effect : This statement positions the list cursor on the first position of the first line in a logical unit. So "Cancle" is not an exit command Q.What is Field symbol ? Answer1: You can use field symbols to make the program more dynamic. In this example the name of a table control is substituted by a field symbol. Thus you cal call the form with any internal table, using the name of the table control as a parameter. Example form insert_row using p_tc_name. field-symbols type cxtab_control. "Table control assign (p_tc_name) to . * insert 100 lines in table control -lines = 100. Answer2: fieldsymbol has the same concept as pointer in c, fieldsymbol don't point to a data type like char, num instead of that it points to the memory block. the syntax for fieldsymbol is FIELD-SYMBOL . EG. FOR FIELD SYMBOL. DATA: DAT LIKE SY-DATUM, TIM LIKE SY-UZEIT, CHAR(3) TYPE C VALUE 'ADF'. FIELD-SYMBOL : . MOVE DAT TO . WRITE:/ . MOVE TIM TO . WRITE:/ . MOVE CHAR TO . WRITE:/ . The output will be Today's date current time Q.What is lock object ? Ans: LockObjects used to synchornize access of several users using same data. Q.Why BAPI need then BDC ? Ans: BAPI"S provide the standard interface to other applications apart from SAP and within differnt vesions of SAP too. Also it is OOD bases so dosen"t depends on screen flow. BDC gets failed if we make changes for screen changes through IMG customization Q.What are the advantages and disadvantages of using views in ABAP programming ? Ans: advantages: view is used to retrieve the data very fastly from the database tables *memory wastage is reduced *faster than joins to retrieve the data from database tables disadvantages: view is not a container,it will not hold the data *view memory is not permanent memory Q.How data is stored in cluster table? Ans: A cluster table conatins data from mulitple DDIC tables. It stores data as a name value pair ( varkey, vardata) Q.Have you used performance tuning? What major steps will you use for these? Ans: First of all tunning can be done In three ways: disk i/o ,sql tunning , memory tunning, Before tunning u have to get the status of your database using Oracle utility called statpack , tkprof, then you should go for tunning Q.How to create client independent tables? Ans: client independent tables: the table in which the first field is not mandt is the client independent tables *mandt is the field with mandt as the data element *automatically client which we login is populated to mandt Q.What type of user exits have you written? Ans: There are four types 1.function exit ixit 3.screen exit. 4.field exit. these are the user exits Q.What is a View ? Ans: A view is a logical grouping of one or more tables. A view on one or more tables i.e, the data from a view is not actually physically stored instead being derived from one or more tables. A view can be used to summarize data which is distributed among several tables How Many Types are there? Database View (SE11) Database views are implement an inner join, that is, only records of the primary table (selected via the join operation) for which the corresponding records of the secondary tables also exist are fetched. Inconsistencies between primary and secondary table could, therefore, lead to a reduced selection set. In database views, the join conditions can be formulated using equality relationships between any base fields. In the other types of view, they must be taken from existing foreign keys. That is, tables can only be collected in a maintenance or help view if they are linked to one another via foreign keys. Help View ( SE54) Help views are used to output additional information when the online help system is called. When the F4 button is pressed for a screen field, a check is first made on whether a matchcode is defined for this field. If this is not the case, the help view is displayed in which the check table of the field is the primary table. Thus, for each table no more than one help view can be created, that is, a table can only be primary table in at most one help view. Projection View Projection views are used to suppress or mask certain fields in a table (projection), thus minimizing the number of interfaces. This means that only the data that is actually required is exchanged when the database is accessed. A projection view can draw upon only one table. Selection conditions cannot be specified for projection views. Maintenance View ( SE54 ) Maintenance views enable a business-oriented approach to looking at data, while at the same time, making it possible to maintain the data involved. Data from several tables can be summarized in a maintenance view and maintained collectively via this view. That is, the data is entered via the view and then distributed to the underlying tables by the system. Q.What is Locking ? Ans: When two users simultaneously attempt to access the same data record, this is synchronized by a lock mechanism. When dialog transactions are programmed, locks are set and released by calling certain function modules. These function modules are generated automatically from the definition of so-called lock objects in the ABAP/4 Dictionary. To synchronize the access to a table by setting and removing locks, a Lock object has to be defined in the ABAP/4 Dictionary. Activating the lock object automatically creates #function modules for setting and removing locks. These function modules must be included when programming interactive transactions. Lock Mechanism To set locks, a lock object must be defined in the ABAP/4 Dictionary. In this lock object, those tables in which data records are to be locked by calling a lock are determined. All tables included in a lock object must be connected to each other via foreign keys. The key fields of the tables in a lock object form the Lock arguments for the tables. The lock arguments are the basis for formulating the logical condition for identifying the records to be locked. When activating this lock object, two function modules with the names ENQUEUE_ and DEQUEUE_ are generated. Example : Problem: You wish to prevent a user from being able to change the name of a course or the name of the professor with responsibility for the course at a time when another user is editing the course description (which contains this information). Solution: The problem described above can be solved by defining a lock object E_UKURS. This is done by defining primary and secondary tables in the lock object. Table UKURS is check table of table UKRSB, so UKURS should be selected as primary table and UKRSB as secondary table of the lock object. The Lock argument in this case is the field combination FABNR, KRSNR, and SPRAS (i.e Primary Key Combination). The Lock mode Shared is to be selected here. This allows several users to access the data simultaneously in display mode. The lock mode in the generated function modules for setting (ENQUEUE_E_UKURS) and releasing (DEQUEUE_E_UKURS) locks is therefore set to shared as default, but can be overridden by calling the function modules. If the function module ENQUEUE_E_UKURS is called with FABNR = ‘1′ and KRSNR = ‘3′, the record for course 3 in faculty 1 is locked in table UKURS. Furthermore, all the course descriptions for this course are locked in table UKRSB since field SPRAS was not specified when the function module was called. In such cases, the lock is made generically for a field which is not defined. If the function module DEQUEUE_E_UKURS is now called with FABNR = ‘1′, KRSNR = ‘3′ and SPRAS = ‘D’, the German course description is unlocked. All other course descriptions remain locked. Q.What is database utility ? Database utility is the interface between the ABAP/4 Dictionary and the underlying the SAP system. The database utility is the interface between the ABAP/4 Dictionary and the relational database underlying the SAP system. You can call the database utility from the initial screen of the ABAP/4 Dictionary with Utilities ® Database utility. The database utility allows you to create, delete and convert objects from the ABAP/4 Dictionary in the database. MODULARIZATION What is Modularization and its benefits? If the program contains the same or similar blocks of statements or it is required to process the same function several times, we can avoid redundancy by using modularization techniques. By modularizing the ABAP/4 programs we make them easy to read and improve their structure. Modularized programs are also easier to maintain and to update. Q.What guarantees the integration of all application modules? Ans: The R/3 basis system guarantees the integration of all application modules.  The R/3 basis s/w provides the run time environment for the R/3 applications ensures optimal integration, defines a stable architectural frame for system enhancements, and contains the administration tools for the entire system.One of the main tasks of the basis system is to guarantee the portability of the complete system. Q.What are the central interfaces of the R/3 system? Ans: Presentation Interface. Database Interface. Operating system Interface.  Q.Which interface controls what is shown on the p.c.?  Ans: Presentation Interface. Q.Which interface converts SQL requirements in the SAP development system to those of the database? Ans: Database Interface. Q.What is SAP dispatcher? Ans: SAP dispatcher is the control agent that manages the resources for the R/3 applications. Q.What are the functions of dispatcher?  Ans: Equal distribution of transaction load to the work processes. Management of buffer areas in main memory. Integration of the presentation levels. Organization of communication activities. Q.What is a work process? Ans: A work process is where individual dialog steps are actually processed and the work is done.  Each work process handles one type of request. Q.Name various work processes of R/3 system?    Ans: Dialog or Online (processes only one request at a time). Background (Started at a specific time) Update (primary or secondary) Enque (Lock mechanism). Spool (generated online or during back ground processing for printing).  SAP ABAP Interview Questions            SAP ABAP Interview Questions and Answers Q.Explain about the two services that are used to deal with communication. Ans: Message Service: Used by the application servers to exchange short internal messages, all system communications. Gateway Service: Enables communication between R/3 and external applications using CPI-C protocol. Q.Which work process triggers database changes? Ans: Update work process. Q.Define service (within R/3)? Ans: A service is a process or group of processes that perform a specific system function and often provide an application-programming interface for other processes to call. Q.What are the roll and page areas? Ans: Roll and page areas are SAP R/3 buffers used to store user contexts (process requests).  The SAP dispatcher assigns process requests to work processes as they are queued in the roll and page areas. Paging area holds data from the application programs. Roll area holds data from previous dialog steps and data that characterize the user. Q.What are the different layers in R/3 system? Ans: Presentation Layer. Application Layer. Database Layer. Q.What are the phases of background processing? Ans: Job Scheduling. Job Processing. Job Overview. Q.What components of the R/e system initiate the start of background jobs at the specified time? Ans: The batch scheduler initiates the start of background job.  The dispatcher then sends this request to an available background work process for processing. Q.Define Instance. Ans: An instance is an administrative unit in which components of an R/3 systems providing one or more services are grouped together.  The services offered by an instance are started and stopped at random.  All components are parameterized using a joint instance profile.  A central R/3 system consists of a single instance in which all-necessary SAP services are offered.  Each instance uses separate buffer areas. Q.From hardware perspective, every information system can be divided into three task areas Presentation, Application Logic and Data Storage. Ans: The R/3 Basis software is highly suitable for use in multi-level client/server architectures. Q.What are R/3 Basis configurations? Ans: A central system with centrally installed presentation software. Two-level client/server system with rolled out presentation software. Two-level client/server system. Presentation and Application run on the same computer. Three-level client/server system.  Presentation, Application and database each run on separate computers. Q.What is a Service in SAP terminology? Ans: A service refers to something offered by a s/w component. Q.What is Server in SAP terminology? Ans: A component can consist of one process or a group and is then called the server for the respective service. Q.What is a client in SAP terminology? Ans: A S/W component that uses the service (offered by a s/w component) is called a Client.  At the same time these clients may also be servers for other services. Q.What is a SAP system? Ans: The union of all s/w components that are assigned to the same databases is called as a SAP system. Q.What is the means of communications between R/3 and external applications? Ans: The means of communication between R/2,R/3 and external applications is via the CPI-C handler or SAP Gateway, using the CPI-C Protocol. Q.What is the protocol used by SAP Gateway process? Ans: The SAP Gateway process communicates with the clients based on the TCP/IP Protocol. Q.Expand CPI-C. Ans: Common Program Interface Communication. Q.What is a Spool request? Ans: Spool requests are generated during dialog or background processing and placed in the spool database with information about the printer and print format.  The actual data is places in the Tem Se (Temporary Sequential objects). Q.What are different types of Log records? Ans: V1 and V2.  V1 must be processed before V2.  But, we can have more than one V2 logs. Q.What are the types of Update requests? Ans: An update request can be divided into one primary (V1) and several Secondary update components (V2).  Time-critical operations are placed in V1 component and those whose timing is less critical are placed in V2 components.  If a V1 update fails, V2 components will not be processed. Q.Explain how SAP GUI handles output screen for the user. Ans: The SAP front-end s/w can either run on the same computer or on different computers provided for that purpose. User terminal input is accepted by the SAP terminal program SAP GUI, converted to SAP proprietary format and sent to the SAP dispatcher.  The dispatcher coordinates the information exchange between the SAP GUIs and the work processes.  The dispatcher first places the processing request in request queues, which it then processes.  The dispatcher dispatches the requests one after another, to the available work process.  The actual processing takes place in the work process.  When processing is complete, the result of a work process is returned via the dispatcher to the SAP GUI.  The SAP GUI interprets the received data and generates the output screen for the user. Q.What is full form of BDC Session? Ans: Batch Data Communication Session. Q.What are the steps in a BDC session? Ans: The first step in a BDC session is to identify the screens of the transaction that the program will process. Next step is to write a program to build the BDC table that will be used to submit the data to SAP. The final step is to submit the BDC table to the system in the batch mode or as a single transaction by the CALL TRANSACTION command. Q.How do you find the information on the current screen? Ans: The information on the current screen can be found by SYSTEM à STATUS command from any menu. Q.How do you save data in BDC tables? Ans: The data in BDC tables is saved by using the field name ‘BDC_OKCODE’ and field value of ‘/11’. Q.What is the last entry in all BDC tables? Ans: In all BDC tables the last entry is to save the data by using the field name BDC_OKCODE and a field value of ‘/11’. Q.What is a multiple line field? Ans: A multiple line field is a special kind of field which allows the user to enter multiple lines of data into it. Q.How do you populate data into a multiple line field? Ans: To populate data into a multiple line field, an index is added to the field name to indicate which line is to be populated by the BDC session (Line index). Q.What are control tables? Ans: The values specified for the size category and data class are mapped to database-specific values via control tables. Q.What is the function of the transport system and workbench organizer? Ans: The function of the transport system and the Workbench Organizer is to manage any changes made to objects of the ABAP/4 Development Workbench and to transport these changes between different SAP systems. Q.What is a table pool? Ans: A table pool (or pool) is used to combine several logical tables in the ABAP/4 Dictionary. The definition of a pool consists of at least two key fields and a long argument field (VARDATA). Q.What are pooled tables? Ans: These are logical tables, which must be assigned to a table pool when they are defined. Pooled tables can be used to store control data (such as screen sequences or program parameters). Q.What is a table cluster? Ans: A table cluster combines several logical tables in the ABAP/4 Dictionary. Several logical rows from different cluster tables are brought together in a single physical record. The records from the cluster tables assigned to a cluster are thus stored in a single common table in the database. Q.How can we access the correction and transport system? Ans: Each time you create a new object or change an existing object in the ABAP/4 Dictionary, you branch automatically to the Workbench Organizer or correction and transport system. Q.How is conversion of data types done between ABAP/4 & DB layer? Ans:Conversion between ABAP/4 data types and the database layer is done within the database interface. Q.How is conversion of data types done between ABAP/4 & external level? Ans: Conversion between the external layer and the ABAP/4 layer is done in the SAP dialog manager DYNP. Q.What is interactive reporting? Ans: It helps you to create easy-to-read lists. You can display an overview list first that contains general information and provide the user with the possibility of choosing detailed information that you display on further lists. Q.What are the uses of interactive reporting? Ans: The user can actively control data retrieval and display during the session. Instead of an extensive and detailed list, you create a basic list with condensed information from which the user can switch to detailed displays by positioning the cursor and entering commands. The detailed information appears in secondary lists. Q.What is secondary list? Ans: It allows you to enhance the information presented in the basic list. The user can, for example, select a line of the basic list for which he wants to see more detailed information. You display these details on a secondary list. Secondary lists may either overlay the basic list completely or you can display them in an extra window on the screen. The secondary lists can themselves be interactive again. Q.How to select valid lines for secondary list? Ans: To prevent the user from selecting invalid lines, ABAP/4 offers several possibilities. At the end of the processing block END-OF-SELECTION, delete the contents of one or more fields you previously stored for valid lines using the HIDE statement. At the event AT LINE-SELECTION, check whether the work area is initial or whether the HIDE statement stored field contents there. After processing the secondary list, clear the work area again. This prevents the user from trying to create further secondary lists from the secondary list displayed. Q.How to create user interfaces for lists? Ans: The R/3 system automatically, generates a graphical user interface (GUI) for your lists that offers the basic functions for list processing, such as saving or printing the list. If you want to include additional functionality, such as pushbuttons, you must define your own interface status. To create a new status, the Development Workbench offers the Menu Painter. With the Menu Painter, you can create menus and application toolbars. And you can assign Function Keys to certain functions. At the beginning of the statement block of AT END-OF-SELECTION, active the status of the basic list using the statement: SET PF-STATUS ‘STATUS’. Q.What is interactive reporting? Ans: A classical non-interactive report consists of one program that creates a single list. Instead of one extensive and detailed list, with interactive reporting you create basic list from which the user can call detailed information by positioning the cursor and entering commands. Interactive reporting thus reduces information retrieval to the data actually required. Q.Can we call reports and transactions from interactive reporting lists? Ans: Yes. It also allows you to call transactions or other reports from lists. These programs then use values displayed in the list as input values. The user can, for example, call a transaction from within a list of change the database table whose data is displayed in the list. Q.How to maintain lists? Ans: To return from a high list level to the next-lower level (SY-LSIND), the user chooses Back on a secondary list. The system then releases the currently displayed list and activates the list created one step earlier. The system deletes the contents of the released list. To explicitly specify the list level, into which you want to place output, set the SY-lsind field. The system accepts only index values, which correspond to existing list levels. It then deletes all existing list levels whose index is greater or equal to the index specify. For example, if you set SY-LSIND to 0, the system deletes all secondary lists and overwrites the basic list with the current secondary list. Q.What are the page headers for secondary lists? Ans: On secondary lists, the system does not display a standard page header and it does not trigger the event. TOP-OF-PAGE. To create page headers for secondary list, you must enhance TOP-OF-PAGE: Syntax TOP-OF-PAGE DURING LINE-SELECTION. The system triggers this event for each secondary list. If you want to create different page headers for different list levels, you must program the processing block of this event accordingly, for example by using system fields such as SY-LSIND or SY-PFKEY in control statements (IF, CASE). Q.How to use messages in lists? Ans: ABAP/4 allows you to react to incorrect or doubtful user input by displaying messages that influence the program flow depending on how serious the error was. Handling messages is mainly a topic of dialog programming. You store and maintain messages in Table T100. Messages are sorted by language, by a two-character ID, and by a three-digit number. You can assign different message types to each message you output. The influence of a message on the program flow depends on the message type. In our program, use the MESSAGE statement to output messages statically or dynamically and to determine the message type. Syntax:REPORT MESSAGE-ID . Q.What are the user interfaces of interactive lists? Ans: If you want the user to communicate with the system during list display, the list must be interactive. You can define specific interactive possibilities in the status of the list’s user interface (GUI). To define the statuses of interfaces in the R/3 system, use the Menu Painter tool. In the Menu Painter, assign function codes to certain interactive functions. After an user action occurs on the completed interface, the ABAP/4 processor checks the function code and, if valid, triggers the corresponding event. Q.What are the drill-down features provided by ABAP/4 in interactive lists? Ans: ABAP/4 provides some interactive events on lists such as AT LINE-SELECTION (double click) or AT USER-COMMAND (pressing a button). You can use these events to move through layers of information about individual items in a list. Q.What is meant by stacked list? Ans: A stacked list is nothing but secondary list and is displayed on a full-size screen unless you have specified its coordinates using the window command. Q.Is the basic list deleted when the new list is created? Ans: No. It is not deleted and you can return back to it using one of the standard navigation functions like clicking on the back button or the cancel button. Q.What is meant by hotspots? Ans: A Hotspot is a list area where the mouse pointer appears as an upright hand symbol. When a user points to that area (and the hand cursor is active), a single click does the same thing as a double-click. Hotspots are supported from R/3 release 3.0c. Q.How does the interection between the Dynpro and the ABAP/4 Modules takes place? Ans: A transaction is a collection os screens and ABAP/4 routines, controlled and executed by a Dialog processor. The Dialog processor processes screen after the screen, thereby triggering the appropriate ABAP/4 processing of each screen .For each screen,the system executes the flow logic that contains the corresponding ABAP/4 processing.The controls passes from screen flow logic to ABAP/4 code and back. Q.How does the Dialog handle user requests? Ans: when an action is performed ,the system triggers the PROCESS AFTER INPUT event.The data passed includes field screen data data entered by the user and a function code. A functioncode is a technical name that has been allocated in a screen Painter or Menu Painter to a meny entry,a push button,the ENTER key or a function Key of a screen.An internal work field(ok-code)in the PAI module evaluates the function code,and the appropriate action is taken. Q.What is to be defined for a push button fields in the screen attributes? Ans: A function code has to be defined in the screen attributes for the push buttons in a screen. Q.How are the function code handles in Flow Logic? Ans: When the User selects a function in a transaction ,the system copies the function code into a specially designated work field called OK_CODE.This field is Global in ABAP/4 Module Pool.The OK_CODE can then be evaluated in the corresponding PAI module. The function code is always passed in Exactly the same way , regardless of Whether it comes from a screen’s pushbutton,a menu option ,function key or other GUI element. Q.What is roll area? Ans: A roll area contains the program’s runtime context. In addition to the runtime stack and other structures, all local variables and any data known to the program are stored here. Q.How does the system handle roll areas for external program components? Ans: Transactions run in their own roll areas. Reports run in their own roll areas. Dialog modules run in their own roll areas Function modules run in the roll area of their callers. Q.Does the external program run in the same SAP LUW as the caller, or in a separate one? Ans: Transactions run with a separate SAP LUW Reports run with a separate SAP LUW. Dialog modules run in the same SAP LUW as the caller Function modules run in the same SAP LUW as the caller. The only exceptions to the above rules are function modules called with IN UPDATE TASK (V2 function only) or IN BACKGROUND TASK (ALE applications). These always run in their own (separate) update transactions. Q.What are function modules? Ans: Function modules are general-purpose library routines that are available system-wide. Q.What are the problems in processing batch input sessions? How is batch input process different from processing online? Ans: If batch-input session is terminated with errors, it appears in the list of INCORRECT session and it can be processed again. To correct session, first you can analyze the session. The analysis function allows to determine which screen and value produced error. If you find small errors in the data, you can correct them interactively, otherwise you need to modify batch input program, which are generated the session or many times even the data file. While batch input is a two-step procedure, call transaction does both steps online one right after the other. In this method, you call a transaction from your program. Q.What do you define in the domain and data element? Ans: Domain: Parameters to be passed 1.Data Type: where you need to enter the data type available in SAP 2.Field Length: Field Length in the number of valid position 3.Value Table: name of a table to be entered, the fields referring to the domain may only assume values contained in the value table. Data Element: Parameters to be passed when creating a data element. 1.Short Text: Mandatory Fields 2.Domain: A mandatory field. 3.Text Element: You can enter description in short or long text for the field. This text is used when entering data for these fields. Q.What is a collect statement? How is it different from append? Ans: Collect searches in the internal table for an entry, all of whose alphanumeric fields are identical with those of the entry in the work area or header line. If such an entry is found, COLLECT adds all numeric fields from work area or header line to the corresponding fields in the table entry. Otherwise the collect statement appends the contents of the work area or header line to the end of the table. The APPEND statement stores the contents of the header line at the end of the internal table. Q.What is open sql vs native sql? Ans: Open SQL allow you to access database tables declared in the ABAP dictionary regardless of the database platform that you R/3 system is using. Native SQL allows you to use database specific SQL statements in an ABAP program. This means that you can use database tables that are not administered by the ABAP dictionary and therefore integrate data that is not part of the R/3 system. As a rule, an ABAP program containing database-specific SQL statements will not run under different database system. If your program will be used on more than one database platform, only use Open SQL statements. Q.What does an EXEC SQL stmt do in ABAP? What is the disadvantage of using it? Ans: Executes the Native SQL statements enclosed between EXEC SQL and ENDEXEC statements. Unlike Open SQL Native SQL statements can address tables that are not declared in the ABAP Dictionary. Example Creating the Table AVERI_CLNT: EXEC SQL. CREATE TABLE AVERI_CLNT ( CLIENT  CHAR(3) NOT NULL, ARG1 CHAR(3) NOT NULL, ARG2 CHAR(3) NOT NULL, FUNCTION CHAR(10) NOT NULL, PRIMARY KEY (CLIENT, ARG1, ARG2) ) ENDEXEC. In a Native SQL statement, data is passed between the ABAP program and the database using host variables. A host variable is an ABAP variable that is identified as such in the Native SQL statement by a preceding colon (:). Example Displaying an extract from the table AVERI_CLNT: DATA: F1(3), F2(3), F3(3). F3 = ' 1 '. EXEC SQL. SELECT CLIENT, ARG1 INTO :F1, :F2 FROM AVERI_CLNT WHERE ARG2 = :F3 ENDEXEC. WRITE: / F1, F2. To simplify the form of the INTO lists in the SELECT statement, you can, as in Open SQL, specify a single structure as the target area. Q.What is the meaning of ABAP editor integrated with ABAP data dictionary? Ans: Integration means if you double-click an object to select it, the Workbench automatically launches the tool that was used to create the object. SAP has developed the Object Navigator to help you to organize your application development in this integrated environment. It provides a context that makes it easier for you to trace the relationships between objects in a program. Rather than working with tools and recalling development objects, you work with objects and allow the Workbench to launch the appropriate tool for an object. Q.What are the events in ABAP language? Ans: An ABAP/4 using events that are invoked by the user actions. Processing blocks are defined by event-keywords and are executed on invocation of certain relevant events. By default, the event start-of-selection is attached to all events in ABAP/4. In your programs you can define a processing block and attach this block to an event keyword. Q.What is a function group? Ans: Function groups are containers for function modules. You cannot execute a function group. When you call a function module, the system loads the whole of its function group into the internal session of the calling program (if it has not already been loaded). The name of a function group can be up to 26 characters long. This is used by the system to create the components of the group (main program and corresponding include programs). When you create a function group or function module in the function builder, the main program and include programs are generated automatically. Q.What happens when a table is activated in DD? Ans: When tables, types (data elements, structures, table types) and views are activated, they are placed at the disposal of the runtime environment in the form of runtime objects. These runtime objects contain the information about the object in a form that is optimal for access by ABAP programs and screens. The runtime objects are buffered so that ABAP programs and screens can access the information relevant to them quickly. Q.What is a check table and what is a value table? Ans: Check table specified in the foreign key for the field. A foreign key links two tables T1 and T2 by assigning fields of table T1 to the primary key fields of table T2. The T1 is called foreign key table (dependent table) and table T2 the check table (referenced table). In some cases you can see when you define a domain that all the table fields or structure components referring to this domain should be checked against a certain table. This information can be stored in the domain by entering a value table. The system proposes the value table as check table when you try to define a foreign key for the field or component. This proposal can be overridden. Example: Domain S_CARR_ID (data type CHAR, length 3) in the flight Model describes the three-place code of the airlines. All the airlines are listed together with their codes in table SCARR. It is generally advisable to check fields referring to domain S_CARR_ID against table SCARR. SCARR is therefore entered as value table for domain S_CARR_ID. If you want to define a foreign key for a field referring to S_CARR_ID, SCARR is proposed as the check table. A check is not implemented by simply entering a value table! The check against the value table only takes effect when a foreign key has been defined. Q.What are select options and what is the diff from parameters? Ans: Select options you specify are displayed on the selection screen for the user to enter values. Incase of select option user can enter a range of values. But in parameters user can enter only single value. Q.How do you validate the selection criteria of a report? And how do you display initial values in a selection screen?  Ans: You can validate selection criteria of a report using at selection-screen event. You can display the initial values using default option of select-options. Q.What are selection texts? Ans: Description of specified selection text (SELECT-OPTION, PARAMETER). This description appears on the selection screen. Texts on the selection screen are stored as language-specific selection-texts in the program text elements. Q.What is CTS and what do you know about it? Ans: A change request is a list in the system, where mainly contains the object to be transported. It also contains the transport type, the request category and the target system. When the change request is created either manually or automatically the system assigns a number to it automatically and this number is known as change request number. The change request records all modifications made to development object. When the changes have been made and the change tasks have been released, the change request can be released. SE09 will display and check all the change request. Q.When a program is created and need to be transported to production does selection texts always go with it? if not how do you make sure? Can you change the CTS entries? How do you do it? Ans: Whenever selection texts are changed or created it will ask for change request, if a development class is assigned to the program. Using the change request number you can transport the selection texts. Yes. You can change the CTS entries using transaction se09. Q.Difference between a check table and a value table? Ans: Value Table This is maintained at Domain Level. When ever you create a domain , you can entered allowed values. For example you go to Domain SHKZG - Debit/credit indicator. Here only allowed values is H or S. When ever you use this Domain, the system will forces you to enter only these values. This is a sort of master check . To be maintained as a customization object. This mean that if you want to enter values to this table you have to create a development request & transport the same. Check table For example you have Employee master table & Employee Transaction table. When ever an employee Transacts we need to check whether that employee exists , so we can refer to the employee master table. This is nothing but a Parent & Child relationship . Here data can be maintained at client level , no development involved. As per DBMS what we call foregin key table, is called as check table in SAP. Q.What is use of using HASHED TABLE? Ans: Hashed table is useful when your have to work with very big internal table and to read it with "READ TABLE WITH KEY ..." The time access is constant ! Definition of a Hashed Table: "Defines the table as one that is managed with an internal hash procedure. You can imagine a hashed table as a set, whose elements you can address using their unique key. Unlike standard and sorted tables, you cannot access hash tables using an index. All entries in the table must have a unique key. contact for more on SAP ABAP Online Training