SAP ABAP Interview

What is an 'Instance'?
An 'Instance' is an administrative unit that groups together components of an SAP R/3 system or simply an Application Server, which has its own set of work processes. A Client can contain many instances. Loosely defined, an instance refers to a server.
Sometimes the database is also referred to as an ‘instance.’ In this case it is called the ‘Central Instance.’ 

What do You Mean by the ‘SAP R/3 System Landscape’?
The ‘System Landscape,’ in SAP, refers to a number of systems and their deployment within an SAP installation. The various systems may be designated as Development, Test, and Production Clients.

What is an ‘R/3 Data Dictionary’?
The ‘Data Dictionary’ is a collection of logical structures of various objects (Tables, Views, or Structures) used in application development in SAP, which shows how they are mapped to the underlying RDBMS in Tables/Views.

What is an 'SAP Business Object'?
An ‘SAP Business Object’ is similar to real-world business objects such as Sales Order, Invoice, Employee, etc., which consist of various tables/programs that are related to each other in a business context. All the business objects are maintained in the 'BOR (Business Object Repository)'. The various characteristics of an object are called 'Attributes'. 
For example, the business object Sales Order is characterized by the following attributes:
  • Date of the order
  • Items of the order
  • Prices of various items of the order
  • Name of the customer to whom the order belongs to
The application program or programs used by the system to change or manipulate a business object are known as Method(s). For example, a program could be used to (a) check the availability of stock to deliver, (b) trace the shipment route, (c) check the item prices, (d) validate the order date, etc.
So, attributes and methods collectively represent business objects in SAP.

Explain ‘Client-Dependent’ and ‘Client-Independent’ Tables.
There are certain tables, in SAP, which when changed will not affect similar tables in other Clients. These are known as ‘Client-Dependent’ tables. All Client-dependent tables have Mandt as their first field.
On the other hand, if a change made in one Client is reflected in another table across various Clients, then such a table is called ‘Client-Independent’ In this case, the first field of the table will not be ‘Mandt.’ You need to be extra careful when changing the settings or content of these tables as this will affect all the Clients.

What are the Different ‘Types’ of ‘ABAP/4 Programs’?
There are nine types of ABAP/4 programs in SAP:
  • 1   Executable Programs (ABAP Reports)
  • I   INCLUDE Program
  • M   Module Pool/Dialogue programs
  • S   Sub-Routine Pool
  • J   Interface Pool
  • K   Class Pool
  • T   Type Pool
  • F   Function Group
  • X   XSLT Program
What are ‘Internal Tables’?
‘Internal Tables’ are standard data type objects which exist only during the Runtime of an ABAP/4 program. They are used to perform table calculations on subsets of database tables and for re-organizing the contents of database tables according to a user’s need. Internal tables fulfil the need for arrays in ABAP/4.
There are three types of internal tables:
  • Standard Tables with a ‘linear’ index. The key is always ‘non-unique.’
  • Sorted Tables with either a ‘unique’ or ‘non-unique’ key.
  • Hashed Tables (they do not have a linear index) with the key defined always as ‘unique.’
What is a ‘Logical Database’?
A ‘Logical Database’ is a special data-retrieval program delivered by SAP, with its own dynamic Selection Screens. You need to code only the processing logic (GET, CHECK, etc., statements). The logical database consists of a ‘read’ program in which the structure of the local database is reproduced with a selection screen.

Advantages:
  • Check functions to validate that user input is complete and correct.
  • Meaningful data selection.
  • Central authorization checks for database accesses.
  • Excellent read access performance while retaining the hierarchical data view determined by the application logic.
What are the Two Methods for Modifying SAP ‘Standard Tables’?
You can modify SAP ‘Standard Tables’ using:
  • Append Structures
  • Customizing INCLUDES
What is ‘BDC’ Programming in SAP?
‘BDC (Batch Data Conversion)’ is an automated procedure for transferring large volumes of external or legacy data into the SAP system using batch input programming. There are three ways to do this:
  • Call Transaction Method
  • Session Method
  • Direct Input Method
Irrespective of the method, the techniques use the following steps:
  • Identify the screens of the transaction that the program will process.
  • Write a program to build the BDC table that will be used to submit the data (i.e., text file) to SAP.
  • Submit the BDC table to the system in the ‘batch mode’ or as a ‘single transaction’ by the CALL TRANSACTION command.
The ‘Call Transaction’ method cannot be used when you want to process multiple transactions. Instead, use the ‘BDC-insert function’ to achieve this.

What is the ‘BAPI’?
The ‘BAPI (Business Application Programming Interface)’ is SAP’s standardized application interface for integrating third party applications with SAP’s business processes and data thereby providing an entry into the R/3 system. A BAPI may be used to create a ‘business object’ or to change the attributes of a business object. Note that the assignment of a BAPI to a business object is always 1-to-1.
A BAPI Explorer helps you to move around the collection of BAPIs in the system, which is grouped both hierarchically and alphabetically. For each BAPI in the explorer, you are provided with several tabs for details, documentation, tools, and projects (to create new BAPIs).

A BAPI can:
  • Create a Purchase Order
  • Change a Purchase Requisition
  • Create a Customer
  • Display an Invoice
What is ‘ALE’?
‘ALE (Application Link Enabling)’ is used to support the construction and operation of distributed applications, through the exchange of data messages ensuring data consistency across loosely coupled SAP applications, using both ‘synchronous’ and ‘asynchronous’ communications without the need for a central database.
ALE is comprised of three layers:
  • Application services
  • Distribution services
  • Communication services
ALE helps to:
  • Distribute applications across several SAP systems, such that centralized/decentralized functions can operate in the same company area.
  • Maintain and distribute master data elements from a central system.
  • Maintain and distribute control data objects from a central system with the synchronized configuration data (important to decentralize functions yet keep them integrated).
  • Link R/2 and R/3 systems.
  • Link SAP and external systems, via IDocs (Intermediate Documents).
Is ‘SAP XI’ Intended to Replace ‘ALE’?
Most ALE solutions are custom built with very little re-usability and scalability. The introduction of SAP XI along with the NetWeaver technology replaces ALE with out-of-box functionality available in SAP XI.

What is an ‘RFC’?
A ‘Remote Function Call (RFC)’ is a call to a ‘function module’ running in a system different from the ‘calling-system.’ The remote function can also be called from within the same system (as a ‘remote call’), but usually the ‘calling-system’ and the ‘called-system’ will be in different systems.
An RFC helps to take care of the following communication:
  • Communications between two independent SAP systems.
  • Client-server communications between an external Client and an SAP system acting as the server.
  • Client-server communications between an SAP System acting as the Client and an external server.
What is ‘OLE’?
For the Windows front-end, SAP provides interfaces based on Microsoft’s ‘Object Linking and Embedding’ Technology (OLE Automation) for embedding objects such as Microsoft Excel files.

What is a ‘Match Code’ in SAP?
‘Match Codes’ (now known as Search Help with release 4.6) help to search and retrieve data when the key of a record is not known. The technique involves (a) creating a ‘Match Code Object’ (now known as a ‘Search Help Object’) and (b) specifying a ‘Match Code ID.’ The system helps you to access the match codes (search help) in the following ways:
  • Keeping the cursor in the field, and then pressing ‘F4.’ 
  • Keeping the cursor in the field, clicking the ‘right’ button on the mouse, and then selecting ‘possible entries.’
  • Keeping the cursor in the field, and then clicking on the ‘magnifying glass.’
What is a ‘Drill-down’ Report?
A ‘Drill-Down Report,’ also called an Interactive Report, is a report with more detail. Imagine that you are looking at a Balance Sheet, presented as a ‘drill-down’ report.
The topmost list, also known as the ‘Basic List,’ contains the top-level information such as current assets, fixed assets, etc., under the grouping ‘assets’ on one side of the Balance Sheet. The ‘drill-down’ functionality helps you select a line item from the Basic List (e.g., fixed assets) and ‘drill-down’ further to a detailed list (‘secondary list’) which displays various components of the fixed assets such as land, buildings, machinery, etc. You may ‘drill-down’ even further by doubleclicking the ‘building’ line, which will bring up the next detailed list and so on.
You will be able to create a ‘drill-down’ report with a maximum ‘drill’ level of 20; that is, including the Basic List you will have a total of 21 levels in a single ‘drill-down’ report.

What is ‘ALV’ Programming in ABAP?
SAP provides a set of ‘ABAP List viewer (ALV)’ function modules, which can be used to enhance the readability and functionality of any report output. This is particularly useful in a situation where the output of a report contains columns extending 255 characters in length. In such cases, this set of ALV functions can help the user to choose and arrange columns from a report output and also save different variants for report display. This is very efficient for dynamically sorting and arranging the columns and provides a wide array of display options.

What is ‘DynPro’?
‘DynPro’ in SAP refers to Dynamic Programming relating to the screens and ‘flow logic,’ which controls the processing and display of these screens. On a broader scale, a screen is also referred to as a ‘DynPro.’

What is an ‘ABAP/4 Query’?
‘ABAP/4 Query’ (also known as an SAP Query or Query) is a powerful tool used to generate simple reports without any coding. Typically, an ABAP/4 query is created first by defining a User Group and a Functional Group. The functional group can either be created with reference to a ‘logical’ table or a database table. Once the functional group is defined, the user group is assigned to the functional group. The last step is to create the query on the functional group that is generated.
An ABAP/4 Query can be used to create the following three types of reports:
  • Basic Lists: Reports with basic formatting without any calculated fields.
  • Statistics: Reports with statistical functions such as average, percentages, etc.
  • Ranked Lists: Ranked lists are used for analytical purposes.
What are the Components of ‘SAPscript’?
‘SAPscript’ is the SAP System’s own text-processing system. SAPscript is tightly integrated and used for many text-processing tasks. SAP Standard Styles and Layout Sets are always held in Client 000.
Layout Sets are used for the Page Layout of SAPscript documents. A ‘layout set’ has the following elements:
  • Header Data: Data related to development (created by, development class, etc.) and the layout set information (which elements are used) are both stored in the header data. A start page must be entered here.
  • Paragraph Formats: Paragraph formats are required in layout sets. However, they are also used for word processing in layout sets, for example, to format text elements.
  • Character Formats: You can also use character formats to format texts or paragraphs. Unlike paragraph formats, however, they are used to format text within a paragraph.
  • Windows: Windows are names and window types, which are not physically positioned until they are allocated to pages and units of measurement are specified. 
  • Pages: Pages are defined to provide the system with a start and end point in text formatting.
  • Page Windows: Page windows are the combination of windows and pages, where the dimensions of a window and its position on a page are specified.
Why Do We Need ‘Enhancements’?
The standard R/3 application may not offer some of the functionality you need for a particular customer or for a particular situation. The R/3 ‘Enhancement’ functionality allows you to add your own functionality to SAP’s standard business applications or modify the standard one to suit the particular need.
The enhancement may be done through:

Customer exits 
Customers’ potential requirements, which do not form a part of the standard software, are incorporated in the standard R/3 as empty modification ‘shells.’ Customers can then fill these with their own coding. SAP guarantees that all such exists will remain valid across all future releases. The customer exits include:
  • Menu Exits
  • Screen Exits
  • Function Module Exits
  • Keyword Exits
ABAP/4 Dictionary Elements 
These are ABAP/4 Dictionary Enhancements (creation of table appends), Text Enhancements (customer-specific keywords and documentation for data elements), and Field Exits (creation of additional coding for data elements).

Differentiate ‘Screen Painter’ from ‘Menu Painter.’
‘Screen Painter’ is an ABAP Workbench tool used to create or modify the screens for your transactions. The screen painter allows you to make modifications to screen attributes, the flow control logic, or the layout.
‘Menu Painter’ is a tool used to design the interface components. Status, Menu Bars, Menu Lists, F-key settings, Functions, and Titles are the components of Menu Painter.
Both the screen painter and menu painter are graphical interfaces of ABAP/4 applications.

What is a ‘Modification Assistant’?
The ‘Modification Assistant’ is the tool that offers you support when making modifications to the standard, by branching to a ‘special modification mode’ whenever you are modifying objects from the standard in an ABAP workbench editor. Originals are initially protected in this mode and can only be changed with the help of the additional ‘pushbuttons’ that are placed at your disposal.
All changes that you make to the system are logged with the help of the Modification Assistant. This provides you with a detailed overview of modifications that is easy to read and that dramatically reduces the amount of effort needed to upgrade your system.
The Modification Assistant offers support in the following areas:
  • ABAP Editor
  • Class Builder
  • Screen Painter
  • Menu Painter
  • Text Element maintenance
  • Function Builder
  • ABAP Dictionary
If an object can be edited using the Modification Assistant, a dialogue box appears the first time that you attempt to edit that object informing you that editing functions are limited in modification mode. This dialogue box appears exactly once per user for each of the various kinds of transport objects.

What is a ‘Spool Request’?
‘Spool Requests’ are generated during ‘dialogue’ or ‘background’ processing and placed in the spool database with information about the printer and print format. The actual data is placed in the Tem Se (Temporary Sequential objects).

What is the ‘CTS’?
The ‘Change and Transport System (CTS)’ is a tool that helps to organize development projects (in the ABAP workbench) and customize data (in customizing), and then move/transport these changes between the SAP Systems/Clients in your system landscape. An example is moving the configuration settings from ‘development’ to ‘test’ and finally to the ‘production’ Client. The changes (such as the creation of a new Company Code, changing a document type, etc.) are assigned to a ‘transport request’ and transported by the Basis or System Administrator.

What is a ‘Transport’?
A ‘Transport’ in SAP is nothing but the transfer of R/3 System components from one system to another. The components to be transported are specified in the object list of a transport request.
Each ‘transport’ consists of an ‘export process’ and an ‘import process’:
  • The export process reads objects from the source system and stores them in a data file at the operating system level.
  • The import process reads objects from the data file and writes them to the database of the target system.
The system maintains a ‘transport log’ of all actions during export and import. The ‘transport organizer’ helps to manage the transports in SAP.

How do You Find Out Who has ‘Transported’ a ‘Transport Request’?
Look at Table TPLOG (go there using the Transaction Code SE16) and input the transport name in the CMDSTRING field with ′*.′ Example: *PZDK980001* 

What is an ‘Authorization’ in SAP?
An ‘Authorization’ is the process of giving someone permission to do or have something. In multi-user SAP systems, a SAP Basis Administrator defines for the system which users are allowed access to the system and what privileges of use each user gets (such as access to transactions, etc.).

Explain the ‘Client’ concept of SAP.
A ‘Client’ is the top-most organizational structure, which has its own set of master records. A Client is denoted by a 3-character alphanumeric code in SAP, and is a mandatory element. The settings made at the Client level, data maintained, etc., are available across all the Company Codes. A Client should have at least one Company Code defined.
SAP comes delivered with Clients 001 and 002, which contain all the default settings. Usually, copying from the default Clients creates additional and new Clients.
Typically, in SAP, you will have different ‘types’ of Clients; namely:
  • Development Client
  • Test Client
  • Production Client
In any implementation, you must have at least three types of Clients as mentioned above. There are some companies where you will have more than three. These include:
  • Development Client
  • Test Client
  • Quality Assurance Client
  • Training Client
  • Production Client
A ‘Development Client’ is also called a ‘sand box’ Client and is sometimes known as a ‘play’ Client. This is the logical place in the SAP system where you try out new configurations, write new programs, etc. This is the place, as the name suggests, where you can ‘play’ around before finalizing a scenario for customization.

Once you are okay with the configuration or a new program, you will then move it manually (transport) to the ‘Test Client’ where you will carry out all the tests (both modular and integration). The end-users are provided with the training using the ‘training’ Client. Sometimes both the ‘test’ and ‘training’ Client are in a single ‘instance.’ The ‘quality assurance’ Client helps with necessary quality checks before something is ready to be passed on to the ‘production’ Client.

After satisfactory results, it will be transported (automatically) to the ‘Production Client’ (also called the ‘Golden Client’). You will not be able to make any modifications, manually, to the ‘production’ Client and the authorization is very limited because this Client is responsible for day-to-day business transactions and any issues here will jeopardize all business operations, which is why this is also called the ‘live’ Client.
Do not confuse this term with the ‘Client’ that denotes a customer in normal business parlance.

How can You Find the Field/Data Underlying a ‘Transaction’?
A common way to find the technical data underlying a transaction is to place your cursor in the field, press the key ‘F1,’ and then click on the button ‘Technical Data’ to see the details. This works as long as you are looking at the ‘transparent’ Table. If the information is populated from a ‘structure,’ then this will not help you because the ‘structure’ may be populated from a number of sources including some ‘includes,’ and may also contain some calculated fields. If the ‘include’ is in fact a table, then chances are your data comes from that table. Check to see if there is a ‘logical’ database in the business area you are looking at. Looking at the ‘structure’ of the ‘logical’ database often reveals the tables used to drive that business area. Also check to see if the field name you are looking for is in any of the tables. Logical databases can also be useful in determining how tables are linked together.
You may also use other methods (listed below) to zero-in on the field. You can perform any of these, in isolation or in combination, until you find what you are looking for:
  • Debugging
  • SQL Trace
  • Run-time Analysis
Start the ‘transaction’ in Debug mode. Set a ‘watch-point’ for the structure-field you are interested in. When the debugger ‘breaks,’ look at the lines just above the ‘break-point.’ This will show where the field was populated. This may be a ‘structure,’ in which case you will restart the process using that ‘structure’ as a ‘watch-point.’
Turn SQL Trace on, and run your transaction. Switch the ‘trace’ off, and examine the log. This will detail the tables hit, and the order in which they were hit. Not all tables hit will be displayed; for example, configuration tables tend not to show up, as they are buffered.
The Runtime Analysis will show all tables accessed by the transaction.

Explain ‘LSMW.’
The ‘LSMW (Legacy System Migration Workbench)’ is a free SAP-based tool that supports the one-time or periodic transfers of data from non-SAP systems to SAP. The LSMW can be used in conjunction with the Data Transfer Workbench. The LSMW assists in organizing your data migration project and guides you through the process by using a clear sequence of steps. The most common conversion rules are predefined. Reusable conversion rules assure consistent data conversion for different data objects.
The LSMW performs the following steps:
  • Reads the legacy data from one or several files (such as spreadsheets or sequential files)
  • Converts the data from source format to target format
  • Imports the data using standard interfaces (Batch Input, Direct Input, BAPI, IDoc, etc.) 
How do You Transport ‘LSMW’ Data from One System to Another?
There are two ways to do this:
  • Export/Import method. With this method, you have the flexibility of subprojects or objects that need to be transported. Use the Menu Path ‘LSMW>Extras>Export project.’
  • Transport request. With this method, you will not be able to select the objects, and the project as a whole is transported. Use the Menu Path ‘LSMW>Extras >Create change request.’
Can You Transport ‘Variants’ of Multiple Programs in One Step?
Yes. Use program RSTRANSP using Transaction Code: SE38.

What is ‘SAPNet’?
The ‘SAPNet’ R/3 Front-end provides a remote connection to SAP’s service and support group to provide assistance in the event of an implementation project system or production system problem. Additionally, the SAPNet R/3 Front-end provides information on the latest high-priority SAP system information, including error alarm messages that help you prevent problems before they occur. You can also find release, installation, upgrade, and migration information. This functionality is included in the standard SAP R/3 Basis System. Connection is made using ISDN or a leased line through the project’s telecommunications service provider.

3 comments:

  1. Thanks for the feedback Sankar

    ReplyDelete
  2. Thanks for sharing this Informative content. Well explained.Got to learn new things from your Blog.
    SAP SD

    ReplyDelete
  3. your blog is really useful for me. Thanks for sharing this useful blog..sap hr abap training

    ReplyDelete