You are on page 1of 146

ABAP FAQ

SAP QUESTIONAIRE
1. Name the reports, interfaces, transactions, sap script programs written? Explain the
Functionality?
2. What is the typical structure of an ABAP/4 program?
Ans. = Declarative elements, Operational, control, events.
3. What are field symbols and field groups? Have you used component idx of
structure clause with fields groups?
Ans.: place holder for existing fields similar to fields point to point
Groups. : Common several fields under one Name.
4. What should be the approach for writing a BDC program?
Ans.: 1. Analysis the Data.
2. Generate SAP structure.
3. Develop transfer
program
4. Create sequential file. 5. Create batch input program. 6. Process batch input data
5. What is batch input session?
6. What is the alternative to batch input session?
Ans. : Call transaction & call dialog
7. A situation: An ABAP program creates a batch input session. We need to submit the
program and the batch session in back ground. How to do it? (up to 3.1H)
Ans.: Run the session by RSBDCSUB explicitly by providing batch input session name
Go to batch input, Double click on session name. It gives a pop up screen for run mode
enter it and run.
8. What are the problems in processing batch input sessions? How is batch input
process different from processing on line?
Ans.: Sessions cannot be run in parallel and not fast.
9. Name as many SAP Transactions as possible you are familiar with?
Ans. : SE38 - ABAP editor , SE80 Object Browser , SE36 logical databases
SE11 ABAP data dictionary & SE16
SE37 Function Module
10. What are the different types of data dictionary objects?

Page 1 of 146

ABAP FAQ
Ans : Tables Data Elements Domains - Structure Foreign Keys
11. How many types of tables exist and What are they in data dictionary?
Ans : Transparent Tables - Pooled Tables Cluster Tables
12. What is the step by step process to create a table in data dictionary?
Ans : Create Domain Create Data elements Create fields Create Tables
13. Can a transparent table exist in data dictionary but not in the database physically?
Ans: yes ,if not activated.
14. What are the domains and data elements?
Ans : domain describes Technical Characteristics of a table fields e.g. value range
Elements describe role played by a fields in technical contains e.g. Form of field
text.
15. Can you create a table with fields not referring to data elements?
Ans : yes
16. What is the advantage of structures? How do you use them in the ABAP programs?
Ans: structure is used to define the construction of data produced when calculations are
carried out within programs or when data is transferred between programs. Contain data
at runtime only.
17. What does an extract statement do in the ABAP program?
Ans: Fills the fields groups with values.
18. What is a collect statement? How is it different from append?
Ans: Collect does not allow duplicate keys and append adds a line even if it exists
already.
19. What is open SQL v/s Native SQL?
Ans : Native SQL used to include SQL stmt of RDBMS in ABAP/4 programs
Open SQL - subset of standard SQL with enhancements that are specific to SAP.
20. What does an EXEC SQL stmt do in ABAP? What is the disadvantage of using it?
Ans: it allows us to execute a SQL stmt relevant to a particular database attached to SAP.
It is not transparent. (disadvantage)

Page 2 of 146

ABAP FAQ
21. What is the meaning of ABAP/4 editor integrated with ABAP/4 Data dictionary?
Ans: the Graphical programming environment. We can write ABAP/4 code, control
access to objects under development, create new or access predefined database
information.
22. What are the events in ABAP/4 language?
Ans: Interactive reports - At line selection At user-command At PF-status
Classical reports - Top of page end of page start of selection end of selection.
23. What is an interactive report? What is the obvious different of such report compared
with HTML type report?
Ans : Features Screen oriented short basic lists compressed data in basic list
Detailed information in secondary lists or windows.
24. What is drill down report?
Ans: A list which you create by selecting on characteristic value of a report and which
contains detailed information about that value.
25. How do you write a function module in SAP? Describe.
Ans : using function < fname>
function library : parameters , importing changing
tables exporting
.
Exceptions.
End function
26. What are the exceptions in a function module?
Ans: error situations that can occur within function modules EXCEPTION - return codes.
27. What is a function group?
28. How are the date and time fields values stored in SAP?
Ans: As character fields of length 8 and 8 as NUMC.
29. What is a Julian date format?
30. Name a few data dictionary objects?
Ans: Tables Views Structure Domains Data elements Match codes Lock
objects type groups.

Page 3 of 146

ABAP FAQ
31. What happens when a table is activated in DD?
-A table definition is generated
- Map to the database system
-For each table, a table of the same name with the same fields and corresponding data
type is created in database.
Primary index is
generated automatically
32. What is a check table and what is a value table?
- When we define a foreign key in a table (A). If this key refers to primary key of
another table (B). Table B is check table
- Fields referring to a domain may assume values contained in the corresponding fields
of the value table. Field referring to the domain should have a foreign key
33. What are match codes? Describe.
- Tool that helps us to search data records in the system.
34. What transactions do you use for data analysis?
35. What is table maintenance generator?
- used to maintain tables and providing authorization for particular objects
1. One step maintenance
2. Two step maintenance
36. What are ranges? What are number ranges?
- A range of numbers that can be laid down for assignment of document numbers.
Internal
External
What are select options and what is the different from parameters?
- Select options are used to select a range of values where as in Parameters only one
value can be given
- Select option generates a line on selection screen, the first part of which contains a
text, followed by a range for input possibilities.
37. How do you validate the selection criteria of a report? And how do you display initial
values in a selection screen?
- Validation - AT LINE SELECTION Screen event
- Initial Values by default statement in select options / parameters

Page 4 of 146

ABAP FAQ
38. What are selection texts?
- Texts that appear on the selection screen for a particular field. Default fields name.
What is CTS and What do you know about it? [ CTS is Correction and Transport
Systems ]
- Correction system manages the internal system components like objects like only
original version of the object exists. It stores all changes made to the object.
- Transport system allows to transports the object from on SAP system to another
(Development system to Production system). It allows to over write or delete existing
object in target system and import new objects to target systems.
- During development work we start by opening a task (correction) to which we can
assign new and changed objects. Once changes have been made, transport new or
changed objects to other SAP system by means of transport (Change) request.
39. When a program is created and need to be transported to production does selection
texts always go with it? If no how do you make sure? Can you change the CTS
entries? How do you do it?
40. What is client concept in SAP? What is the meaning of client independent?
- A client is self contain unit in an R/3 system with separate master records and its own
tables.
- Client independent records and tables can be accessed from any client.
41. Are program clients dependent?
- Yes
42. Name a few system global variables you can use in ABAP program?
- SY-TEXT SY-TVARD SY-TVAR1 SY-TVAR2
43. What are internal tables? How do you get number of lines in an internal table? How
to use a specific numbers occur statement?
- Internal Tables are Temporary tables used to store values at run time no. of lines in
Internal tables DESCRIBE TABLE ITAB LINES LIN.
- Use a Specific nos. OCCURS statement.
44. How do you take care of performance issues in your ABAP programs?
- Runtime Analysis
45. What are data sets?

Page 5 of 146

ABAP FAQ
- Sequential files in ABAP.
46. How to find the return code of a stmt in ABAP programs?
SY-SUBRC
47. What are interface / Conversion programs in SAP?
- BDC
48. Have you used SAP supplied programs to load master data?
- SAP supplied BDC programs RM06BBI0 (Purchase requisitions)
- RMDATIND (Material master) RFBIKR00 (Vendor Masters)
RFBIDE00 (Customer Master) RVINVB00 (Sales Order)
49. What are the Techniques involved in using SAP supplied programs? Do you prefer
to write your own programs to load master data? Why?
- Identify relevant fields
- Maintain transfer structure ( Predefined first one is always session record)
- Session record structure , Header Data, Item ( STYPE record type )
- Fields in session structure STYPE, GROUP , MANDT, USERNAME , NO DATA
- Fields in header structure consists of transaction code also STYPE, BMM00,
TCODE,MATNR and Fields in Item - ITEMS
- Maintain transfer file sample data set creation
- Transfer data by direct input.
50. What are logical databases? What are the advantages/disadvantages of logical
databases?
- LDB consists of logically related tables grouped together used for reading and
processing data.
- Advantages = 1. No need of programming for retrieval , meaning for data selection
2. Easy to use standard user interface, have check completeness of user
input.
- Disadvantages = 1. Fast in case of lesser no. of tables But if the table is in the lowest
level of hierarchy, all upper level tables should be read so performance is slower.
51. What specific statements do you using when writing a drill down report?
- GET CURSOR
- AT LINE SELECTION
- AT USER COMMAND
- HIDE

Page 6 of 146

ABAP FAQ
-

SY-LISEL

52. What are different Tools to report data in SAP? What all have you used?
- ABAP QUERY
53. What are the Advantage and disadvantages of ABAP query tool?
- Advantages
= no lengthy code
- Disadv. = Interactive lists drill reports are not possible and conditional reporting not
possible.
54. What are the functional areas? User groups? And how does ABAP/4 query work in
relation to these?
- Functional areas = provide the user with a framework for defining a query quickly.
Select a logical database from application system.
User groups = used to set up appropriate environment for the user or authorization for
using query. By creating fun. Areas and assigning them to user groups. System
administrator determines the range of reports the individual application depts. Or end
users can generate using ABAP query.
55. Is a logical database a requirement / must to write an abap/4 query?
- Logical database is not a must for ABAP/4 query.
56. Have you created / maintained functional areas?
57. What are Change header / detail tables? Have you used them?
58. What do you do when the system crashes in the middle of a BDC batch session?
59. What do you do with errors in BDC batch session?
-Analysis and correct them.
60. How do you set up background jobs in SAP? What are the steps? What are events
driven batch jobs?
- Create a job using function module JOB-OPEN
- Collect the job specifications.
- Add a job step to the job with the function module JOB-SUBMIT.

Page 7 of 146

ABAP FAQ
-

Close the job and pass it to Background processing system for execution with the
function module JOB-CLOSE
EVENT DRIVEN BATCH JOBS :Types = System events triggered when activation of new operation mode takes
place
User events - Triggered from ABAP/4 or external program.
Triggering an event notifies the background processing that named condition has been
reached. The Background system reacts by starting any jobs that were waiting for the
event.

61. Is It possible to run host command from SAP environment? How do you run?
62. What kind of financial periods exist in SAP? What is the relevant Table for that?
63. Does SAP handle multiple currencies? Multiple Languages?
- Yes
64. What is currency factoring technique?
65. How do you document ABAP/4 programs? Do you use program documentation
menu option?
66. What is sap script and layout set?
67. What are the ABAP/4 Commands that link to a layout set?
- Call function OPEN-form.
- Call function WRITE-from.
Call function CLOSE-from
68. What is output determination?
69. What are IDOCS?
-

Page 8 of 146

ABAP FAQ
70. What are Screen Painters? Menu Painter? GUI Status? etc
- Screen Painters: - Arranging or creating elements of the screen.
- Menu Painters: - Designing and creating menu bar.
- GUI Status: - Interface between user and SAP program (PF STATUS).
71. What is screen flow logic? What are the selections in it? Explain PAI and PBO?
- Call the ABAP/4 modules for screen PBO, PAI.
72. Overall how do you write transaction program in SAP?
- Create the transaction using object browser (SE80)
- Define the objects e.g. screen, Transactions. Modules PBO, PAI.
73. Does SAP has a GUI screen painter? If yes What operating systems is it available
on? What is the other type of screen painter called?
- Yes
- On what OS is it available
- Other type of screen painter alpha numeric screen painter.
What are step loops? How do you program page down page up in step loop?
- Step loops: Method of displaying a set of records.
- Page down & Page up: decrement / increment base counter
- Index = base + sy-step1 1
Is ABAP a GUI language?
- Yes
74. Normally how many and what files get created when a transaction program is
written? What is top XXXXXXTOP program?
- Main program with A Includes
- I ) TOP INCLUDE GLOBAL DATA
- II ) Include for PBO
- III) Include for PAI
- IV) include for Forms
What are Include Programs?
- Set of code which are included into the main program at runtime.
75. Can you call a subroutine of one program from another program?
- Yes
76. What are user exits? What is involved in writing them? What precautions are
needed?

Page 9 of 146

ABAP FAQ
-

User defined functionality included to predefined SAP standards.


Should find the customer enhancements belonging to particular development class.
Precautions =

77. What are RFCS? How do you write RFC on SAP side?
- Remote Function Calls.
78. What are the general naming conventions of ABAP programs?
- Start with Z or Y followed by Char or Nos.
- 8 Letters long / 20 letters (4.0b onwards)
79. How do you find if a logical database exists for your program requirements?
- Get table command
- Table name where used list logical database
- Attribute
80. How do you find the tables to report from when the user just tell you the transaction
he uses? And all the underlying data is from SAP structure?
- Go to transaction. F1 and go to technical information.
81. How do you find the menu path for a given transaction in SAP?
- Go to dynamic menu, Give the search term i.e. transaction name
- SAP std menu ABAP/4 workbench Development / utilities.
82. What are the Different Modules of SAP?
- PP PM MM FI SD HR
83. What is IMG in SAP?
- Implementation guide containing all IMG, activities arranged by business application
components.
84. How do you get help in ABAP?
- Place cursor on required field and press F1 or H keyword in command mode.
85. What are different ABAP/4 Editors? What are the differences?
- Command mode Editor
- PC Mode with line numbering
- PC Mode without Line numbering

Page 10 of 146

ABAP FAQ
86. What are different elements in layout sets?
- Paragraphs
- Character String
- Page
- Page Windows
- Windows
- Header Data
87. Can you use if then else, perform etc. statements in SAP Script?
- YES
88. What type of variables normally used in sap script to output data?
- & Tables name- fields &.
89. How do you number pages in sap script layout outputs?
- & page &
- &next Page &
90. What takes most time in SAP script programming?
- Defining layout set up / sets.
91. How do you use tab sets in layout sets?
- Define paragraph with defined tabs.
92. How do you backup sap script layout sets? Can you download and upload? How?
93. What are presentation and application servers in SAP?
94. In an ABAP/4 program how do you access data that exists on a presentation server
v/s on an application server?
95. What are different data type in ABAP/4?
Memory Management

Advantages of new memory management

Page 11 of 146

ABAP FAQ
-

Quicker access to internal tables and lists


Quicker context change
Less load on CPU and disk
Performance advantages

96. Can R/3 be operated with old SAP paging?


- In emergency Yes But only temporarily.
97. Reasons to continue using old SAP paging system?
- Os requirements for new memory mgt. Sys not met
- Extremely large user contexts in background jobs.
- Extremely large total of all dialog user contexts
- Extremely heavy OS paging due to too little main memory.
98. Does new memory mgt. Require more main memory?
- No more main memory than with old SAP paging with a large paging buffer large
paging
- Buffer - needed for good performance.
99. What happens if main memory is not large in new memory mgt.?
- OS paging increases if it exceeds a certain value, (depends on disk throughput)
performance declines.
100. How to use the new two-part roll area?
- Some data must be held in roll area and must be rolled into and out of work processes.
Roll area must not drop below a minimum size. In two part roll area implementation, you
can limit amount of data in roll area before extended memory is used remaining portion
of roll area is used only if no further extended memory can be allocated to a user context.
DICTIONARY
101.What is a dictionary?

Dictionary contains Meta data or information for the data in data management
system.
It supports redundancy free data storage and data integrity.

Page 12 of 146

ABAP FAQ
Primary Key field or combination of fields used to uniquely identify a row of the table
Foreign Key - Combination of fields in a table acting as a primary key in another table.
Difference between structure and a Table Using tables, data cant be stored
permanently in Database, and Structures contain data only during the runtime of a
program.
Structures Used for defining data at the interface between module pools and screens and for
standardizing parameters of functional modules.
Table attributes Determine who is responsible for maintaining the table and which type of access
is allowed for the table e.g.:
Delivery class table maintained by sap or customer.

Table maintenance allowed Table entries accessed using std table


maintenance.
Activation Type Whether table can be activated directly from ABAP/4
dictionary or
whether the runtime object must first be generated by c program.
Database Utility Interface between ABAP/4 Dictionary and the database.
Data Elements Describe the role played by a field in technical context. Fields of same semantic
meaning refer same data elements.
Domain describe technical characteristics of a table field. It specifies the value range, which
describes allowed values for a field.
Index Copy of database table reduced to specific fields

Function speed up scanning of table for data records satisfying a given search
criteria.
Foreign key Table Table which contains the foreign key. E.g. ZEMP table.
Check Table Table which has foreign key of another table as its primary key e.g. DEPT.
Cardinality N: M indicates how many dependent record or referenced records.
View :- used to summarize data distributed among different tables type of views
Types of Views

1 Database created in database (read only)


2 Projection - used to suppress the display of table fields (all operations possible)
3 Help views Display information in online help system

4 Maintenance views used to realize commercially relevant views on data


customizing vies
business oriented approach to looking at data Views that cannot be used to
create new views
- Structure views used to generate a structure from several logically
connected tables
- Entity views used to represent entity type of Data Modular on tables of
ABAP/4 dictionary

Page 13 of 146

ABAP FAQ
Maintain Status Determine if records can only be read or if it is also possible to change them.
Match codes tool to help you search for data records in the system
Match codes object describes the set of all possible search paths for the search term.
Match codes Id describes a special search path for a search term.
Match codes

fields from several tables


built on the basis of transparent tables, clusters and pools
restricted by stipulating selection conditions
use as entry aids

Database index - fields from only table


Lock Objects simultaneous access of records by two users synchronized by lock objects.
Activation During activation, the runtime object of aggregate object or tables is created. The runtime
object is buffered so that the application program can access it quickly. Runtime object has
information about the following objects of table

- domain data elements field definition table definition


Time stamp whenever the table is activated, a time stamp is created and stored activation of table in
ABAP/4 dictionary affects time stamp of all reports using it. When the program is called we can
determine whether to execute it or regenerate it by comparing the time stamps

Type of stamp CRSTAMP most recent activation of table


- ABSTAMP comparison of reports
- DYSTAMP comparison with screens.
Runtime object of a table collects the information about the data elements, domain field definition in a
form optimal for program access. It is created when the table is generated for first time.
Mass activation program Activate large sets of objects Simultaneously.

ADV
1 large no of tables are affected by the change of domains or data elements at a time, so
reactivated only once.
2 related objects and its associated value table could be activated together else we
should maintain sequence correctly.
Activation Procedure
Step 1 internal and external characteristics check (naming convention. Relation
between check table and value table.
Step 2 partially active objects are checked whether external characteristics are arranged
in order

Page 14 of 146

ABAP FAQ
Changing the structure deleting the table in database. Activate the revised table in the dictionary. Table in
database is created. Data in table is lost.
Changing the database catalog by ALTER TABLE. Data is preserved indexes recreated.
Converting of tables original table is renamed and temporarily buffered, revised table is activated in
ABAP/4 dictionary and created in database Data from temporary table is reconstructed.
Conversion procedure

1 Generating a program
2 Renaming the database table Prefix of QCM is added to table name
3 Activating revised version
4 reloading data
5 secondary index
we need at least 16 MB RAM for conversion

Lock Mechanism prevents a new database operation being started an existing one has been correctly
completed. When conversion is done, lock is created automatically and released only when
conversion is successful.

Clearing of locks
restart adjustment attempt is made to continue conversion at the point of
termination
Cancel adjustment lock entry is simply deleted from table
Restart log progress of each step of conversion is noted in restart log,
Adjust structures

A structured adjustment is activated by changing database catalog


U structured adjustment is activated by converting tables

Type of versions

Versions in ABAP Dictionary active or partially active / revised


Temporary versions
Historical versions

Type of status

New newly created , not activated


Activated activated version of object used by other components during runtime
Partially active not yet been fully activated
Revised version changed after activation, but not yet re-activated
Deactivated match code Id is not proposed for selection by F4 help function

Version Management functions

Canceling changes reset revised version to active version


Storing changes active version will be temporarily stored in version
Switching changes switch between active and revised versions

Page 15 of 146

ABAP FAQ
Version catalog list of all existing versions of an object

Revised version produced when we edit an existing object


Active version produced when we activate an object
Temporary version produced when we copy the active version temporarily to the
database with store version functions
Historical versions created when 1. Correction is created 2 correction is released

Function provided

Display old versions


Retrieving historical or temporary versions
Comparing versions in same system
Comparing versions in different systems

Buffering created locally on application server, changes in buffer are loaded in log table. Synchronization
mechanism runs (1 2 min) log table is read and buffer contents changed by other servers are invalid.
Synchronization of all buffers in application servers is by asynchronous procedure
Tables that can be buffered transparent and pooled tables
Possible buffering types

full buffering either, whole table or none of the table is located in the buffer (Tables
up to 30 kb done in client dependent fully buffered tables)
Generic buffering generic areas of the table are fully buffered.
Generic key left justified section of primary key of a table.
generic area all records for which fields of generic key correspond
Single record buffering records actually being accessed are loaded to buffers, large
records where few records are accessed.

102.When to reset a buffer?

A) If consistencies occurred between the buffer contents and the database.


103.What is Database Utility?
A) Interface between ABAP/4 dictionary and relational database in SAP system. It allows to create, delete
and convert objects from ABAP/4 dictionary in the database.
Processing types :-

Direct Changes carried out immediately.


Background background job is scheduled.
Enter mass processing - entries are generated with relevant function in system table
TBATG.
Repository Information System: - tool that makes data stored in ABAP/4 dictionary available.

Find - search for objects from a specific object class that meets certain search criteria.
Where-used list: -used to determine the use of an object in other objects.

Page 16 of 146

ABAP FAQ
Data types in R/3: -

Layers for data and data descriptions:


External layer plane at which user sees and interacts with the data
ABAP/4 layer data formats used by ABAP/4 processor.
Database layer data formats used in the database.
Table spaces and extents: Table space - physical storage area in the database.

Database determines in which table space the table is stored when it is created in the
database.
Size category describes the probable space requirement of the table in the database.

Transport system: Allows you to transport changes made to a particular development object.

Allows transporting objects from one SAP sys to another.

Table pool: - used to combine several logical tables in ABAP/4 dictionary, created for each match code
object.
Table clusters: Combine several logical tables in ABAP/4 dictionary. Several logical rows from different cluster tables
are brought together in a single physical record.

Used to store control data, temporary data or texts e.g. documentation.

Work bench organiser: - provides assistance for organizing development projects by


allowing you to distribute project work for individual developers or teams among
different change requests.
Request: - Objects from the areas of customizing and ABAP/4 development workbench
are managed and recorded in separate requests.
Request overview: - When we start the workbench organizer, we are presented with a
request overview that shows all change requests available and allows us to access several
levels of detail, right down to the level of the object list itself.
Task: - Developments, correction and repairs recorded in tasks.
Change request: - Tasks are transported using change requests.
Development class: - Indicates which area the object belongs to. (Set of repository objects, which are
mutually different.)

Page 17 of 146

ABAP FAQ
Production system: - Development projects are carried out here.
Transport log: - Enables you to immediately find out which objects were transported, by whom and why.
Transport system: -Used for moving objects from SAP development system to production system or
between different systems.
System types: Development system (development work).

Quality assurance system: - Development and customizing settings are tested here.
Production system: - After successful testing, cust. Setting released here.
Training or demo systems: - For presentation of completed developments.
Relationship between system types.

Special development
Recipient
System

System
Transports of
Originals

Integration
System

Consolidation

Transportable
change requests

System
Automatic
Delivery

Special development system: - used for programming critical paths of development projects.
Integration system: - developing applications and testing systems.
Consolidated (production) system: - receives transports from integration system. It contains released
versions.
Recipient system: - receive transportable change requests as soon as they are imported successfully into
consolidation system.
Transport layer: - describes the transport route for distributing the developer class objects among various
systems in the group. All development classes are distributed via same route belong to same transport
layer.
Correction system: - prevents parallel, uncoordinated changes to the same object, even if many copies of
the objects exists, connected by SAP system. It saves all changes to repository and customizing
objects in original system on a version database. It is activated each time the user edits Repository
object.
Request category: -

CUST client-specific customizing.


SYST SAP Repository and customizing for all clients.

Request Types: -

Transport request List of objects to be transported.


Repair request List of changed objects, which are not original.
Local change request List of local objects.
Correction request List of all changed original objects.
Object list List of all transport objects.

Page 18 of 146

ABAP FAQ

Customizing request List of all changed client specific-customizing objects.


Request source client: - Client in which requests and all assigned tasks are edited.
Request target client: - Client where request is imported.
Private object: - Exempt from the correction system.
Local object: - Exempt from both correction and transport systems.
Restrictions on transport system: -

Cannot overwrite, add to or delete original objects that are under repairs.
Can transport to consolidation system only with transport type K.
Can transport to recipient systems only from consolidation system to which recipient
systems have subscribed.

Protecting a Transport Request: - Lock the objects listed in requests so prevents users from correcting it.
Task & Request Status: -

DOCUMENT still editing a task or request and have not protected or released yet
(not locked).
LOCKED shows that you have tried to lock a task or request, but not all objects are
locked.
LOCKED ALL objects in task or transport layer-locked successfully.
RELEASED task or request released.
OPEN released but not yet transported.

Tables associated with CTS: -

TSYST list of available systems.


DEVL ABAP/4 Development Workbench transport layers.
TWSYS consolidation routes for change requests.
TASYS recipient system.

Memory
SAP memory (Global Memory): - is available to a user during the entire duration of a terminal session. Its
contents are retained across transaction boundaries as well as external and internal sessions.
External session: - when user logs on to R/3 system, the system creates a new terminal session called
external session. E.g. System Create Session.
Internal session: - created by calling a transaction (with CALL TRANSACTION), a dialog module (with
CALL DIALOG) or a report (with SUBMIT or RETURN).
For external session: - internal sessions are allowed.
Read/Write from SAP memory: - GET PARAMETER / SET PARAMETER.
Roll area: - Data areas of used programs are created in roll areas for each internal session.
Posting data between internal sessions: - EXPORT TO MEMORY and IMPORT FROM MEMORY.
Main program group: - Created when exporting an internal session.

Page 19 of 146

ABAP FAQ
Additional program group: - If a function module belonging to a function group not so far loaded,
additional program group is created.
Main program: - First program of program group.
Subroutine call: - When external subroutine is called, system loads the relevant program and adds it to the
program group of calling program.
Work areas: - Both table & common workareas with the same name are created once for each program
group and then shared by all programs in the group.
List system: - Consists of basic list and all details list belonging to basic list assigned to exactly one screen
level.
User interface: - Only program has its own user interface. Internal sessions interface is initially empty.
Special user interface has to be activated using SET PF-STATUS statement.
ABAP/4 memory: - Retained only during the lifetime of an external session.
Data cluster: - Group of several data objects.
Data objects: - Units of data, which a program processes at runtime.

104. What is ABAP?


Advanced Business Application Programming is a 4th generation programming language
created by SAP for the interactive development of application programs.
105. What is ABAP/4 Development workbench?
An SAP CASE tool to develop standard application software or your own application 4
software
That can process both tables and your own tables.
106. Describe interactive reporting.
A reporting function with following features:
Screen oriented
Short basic lists
Compressed data in the basic list
Detailed information in secondary lists or windows
Function key driven
107. What are the functions in the editor command line?
Press F1 or F4
Examples include:
I(nsert)-Insert new lines at end of text
FIND string -Multiple text search
N(ext)string-On/Off text search
R(eplace)string 1 string 2 -Replace String 1 by String 2
IC abc -Insert Structure
PP-Call Pretty Printer
Etc

Page 20 of 146

ABAP FAQ
108. How do you: move, copy, insert, delete lines in the editor?
Enter the M,C,I,D line command in the number area M,C,D can function as block
commands (ie.MM,CC,DD) C,M must be accompanied by a direction indicators B(efore)
and A(fter)
109. What are chain statements?
A way to join together successive statements starting the same way
Example: WRITE:/ 'xyz', X, COUNTER
110.

Correct the syntax: data: wf_name(25) type C,


wf_age(3) type C,
Move myname to wf_name
Answer:
data: wf_name (25) type C.
wf_ age (3) type n.
move 'myname' to wf_name.
111. What is program attributes type I,'M'?
Type: I=3D Online
Type:I=3D Include
StatusT=3D Test
Application : m=3D Material Management or module
112. What is the program application field used for?
The attributes "type, "application, "class" are used for management of ABAP/4
programs.
"Type" and "application" are the only ones required to create program.
113. What is the syntax of the WRITE statement?
WRITE <format> <value><options>
Format = 3D/p(l)
/- line feed
p-column position
l-output length
value=3D output value field or literal
options-format options
Example: Write: /5(3)'CAPPY'.
output starting at position 5 3D CAP
114.

Where are text elements maintained?

Page 21 of 146

ABAP FAQ
ABAP/4 >>Development>>Text Elements>>(headers, columns titles etc.)
SE38 >> Text Elements >> (headers, column, titles etc.)
115. What functions do the ULINE and SKIP commands serve?
ULINE-generates a dotted line
SKIP-generates a blank line
116. What are the data types within SAP?
P-Packed number
I-Integer
F-Floating point number
N-Numeric text
C-Text
D-Date
T-Time
X-Hexadecimal
117. What purpose does LIKE serving?
To define variables that are similar to those you previously defined or those that exist in
the Data Dictionary
118. What is the syntax of the COMPUTE statement?
COMPUTE X=3D A + B (COMPUTE is optional.)
119. How is the PARAMETERS statement defined? What does it do?
PARAMETERS : PAR1 TYPE P,
PAR2 DEFAULT 'X'.
Allows a selection screen to appear for user-input when report is executed.
120. How do the field-symbol and assign statements work with each other?
Name 3 ways to activate the debugger.
Via menu navigation
Set breakpoints in the program
Type '/h' in the command field when executing the program
Describe the functions of the debugger screen.
Single step -Process the next program line
Execute- In contrast to the single step,executes all processing steps belonging to one line
Continue-Processing continues until the next breakpoint or until the end of program

Page 22 of 146

ABAP FAQ
Table--Display the contents of internal tables
Editor-to go to the ABAP/4 editor
Hexadecimal display-Data contents can be displayed in hexadecimal format
Replace-to change the data contents during debugging
121. What is the basic format of the SELECT statement?
Select * from <table-name> where <logical expression>
EX:SELECT * from TABNA
WHERE COUNTRY=3D 'USA'
122. How do you limit the data retrieved by a SELECT statement?
WHERE
123. Where and where do you use a goto command?
NEVER
124. Are the following logical expressions true or false?
T a) value1 LT value3
T b) value3 > value1
T c) value2 between value1 and value 3
F d) value2 LE value1(?)
T e) value3 <> value1
F f) value3 CS '+5'
T g) value2 CA '0A9GB'
**NOTE wildcards +,*, # only work with CP
125. What is the output of the following?
Given TABA:
Country City
A
NewYorkNews
A
Johannesville
A
MartinMarietta
A
Rockville
B
Littleton
B
Sr.Charles
PROGRAM Program
TABLES: TABA.
SELECT*FROMTABA.
ON CHANGE OF TABA-COUNTRY.
WRITE: /TABA-COUNTRY, TABA_CITY.

Page 23 of 146

ABAP FAQ

ENDON.
ENDSELECT.
Littleton.

126. What do CHECK, EXITS do in a program?


CHECK<logical expression> terminates the current loop or subroutine if logical
expression is not
fulfilled;Outside
of a loop structure , subsequent statements in the current processing
block are
not executed (Syntax CHECK FLAG NE SPACE)
EXIT-terminates the current loop or subroutine; outside of a loop structure, subsequent
statements in the current processing block are not executed.
127. What is the difference between a field string and an internal table?
The declaration of an internal table includes an OCCURS parameter (the number of
entries in the main storage roll area) field string-corresponds to one record internal tablecorresponds to many records
128. T or F: Move corresponding is an effective way to move fields with like names
from a DB table record to an internal table header line?
129. T or F: An append will add a record to a database table?
You can only append to an internal table.
130. What is the effect of an include structure statement?
Allows you to quickly declare field strings and /or internal tables that are similar in
structure to R/3 Repository Tables defined in the Data Dictionary.
131. T or F:The COLLECT statement will total up all P,I,F fields in database table
If non-numeric entries in the header line match those in the internal table, COLLECT will
add all numeric entries in the internal table header line to table entries where match was
found. When no match is found the contents of the header line is added to the end of the
table.
132. T or F: The SELECT statement allows the processing in internal table.
Use the LOOP AT ENDLOOP instead
133. T or F: The LOOP at command allows you to use the where clause.

Page 24 of 146

ABAP FAQ
If there is no table entry satisfying the 'where' logical expression ,the loop cannot be
executed
And the system field SY_SUBRC is set to a value not equal to zero .In any case the entire
table is read.
134. T or F: The read table command using the key clause is similar to the select
single.
Yes in that they both return only one entry from table But the READ is associated
with an internal And SELECT is associated with a database table.
135. How does the READ with KEY statement work?
READ TABLE <tab> WITH KEY <'string' or FIELD-NAME>
The search argument is compared character by character with the start of the 'tab' internal
table lines and returns one entry that matches
136. What field within the SY table contains the table index?
The SY_TABIX system field holds the index value of the table line which has been
placed in the
Header line of an internal table.
137. T or F: An internal table can be deleted, modified, or inserted without the use of
an index?
Within a LOOP you can make changes to an internal table. The line affected is
always the current line. If you dont use the LOOP command an index must be used to
change and internal table.
138. What does the CLEAR and REFRESH commands do?
CLEAR : Initializes(CLEARS) the header line
REFRESH : Deletes all table lines (deletes the body).Paging is released does not clear the
header
FREE : Deletes all table lines ,Memory is released does not clear the header(deallocates
the memory).
**CLEAR and REFRESH are typically used together.
139. Why would you use describe table command?
To gather information about an internal table (i.e. OCCURS value ,LINES existing table
entries)
140. What are the subroutines used for?

Page 25 of 146

ABAP FAQ
Subroutines are used in three different ways;
1) Subroutines and its call are in the same ABAP/4 program(internal call )
2)
The subroutine is an external program
3) Function modules are stored centrally in the function library where they are
assigned to a function group. Unlike external subroutines function modules have
clearly defined interfaces.
141. When should you use an include versus a perform versus a function module?
All are modularization techniques but typically the INCLUDE is for data structures, the
PERFORM is for ABAP/4 subroutines and function modules are for non-ABAP/4
subroutines.
142. What is the difference between internal and external calls?
INTERNAL-within program
EXTERNAL-outside program
143. Explain pass by value, reference and changing value?
By Value:When the subroutine is called ,the formal parameters are copies of the actual
parameters(with their own storage location)
By Value and Result : the formal parameters have a separate storage location .At the end
of subroutine the value of the formal parameter is passed to the storage location of the
actual parameter
Assigned
By Reference: when called the formal parameters are not allocated separate storage
locations. Instead the address of the actual parameter is passed. Changes to the values of
the formal parameters therefore have a direct effect on the assigned main program fields.
144. What is the syntax of perform, include and function modules?
Perform:
PERFORM <name> USING <a1> <a2> <a3> <a4>
FORM <name > [TABLES <table name>] USING VALUE (<f1>) CHANGING VALUE
(<f2>)
Include:
INCLUDE <name>
Function modules:
CALL FUNCTION function name
EXPORTING

Page 26 of 146

ABAP FAQ
IMPORTING
145. How is data passed to a function module?
Using the EXPORTING clause
146. What are exceptions?
The EXCEPTIONS parameter is a section in the CALL FUNCTION statement where
exceptional situations can be processed.
147. How are they called and handled in the code?
CALL FUNCTION function name
EXPORTING
IMPORTING
EXCEPTIONS NOT_FOUND = 3D1
NOT_VALID = 3D2
OTHERS = 3D3
CASE SY-SUBRC
WHEN 1
WHEN 2
148. How can internal tables be passed to forms and function modules?
Internal tables are passed by reference in function modules and forms.
(For PERFORM FORM statements use the TABLES parameter.)
149. What is global Vs local data?
Local data data relevant only within a subroutine
Global data data relevant within the entire program.
150. What is ABAP workbench?
ABAP/4 workbench is used to implement both simple and complex projects. It allows
access
To the following tools
-R/3 Repository
-ABAP/4 program development
-Screen Painter
-Menu Painter
151. What is its use?
It can be used to develop ABAP/4 programs

Page 27 of 146

ABAP FAQ
152. What are the three categories of DATA in the SAP?
Master Data changes relatively rarely
Transaction Data kept for only a limited time in the system together with any associated
index tables.
System-specific Data data, texts, ABAP/4 programs and so on.
153. What are the table types in SAP?
Internal Structure Structures and attributes, which have no associated data records in
the database, belong to type INTTAB.
Transparent Table Data Records are stored in the database in a table flagged in the
Dictionary as transparent. The name of the physical table corresponds to the name of the
logical table definition in the R/3 Repository.
154. What is Logical Database? What ABAP/4 command is used to process the
Logical Database?
A Logical Database is a hierarchical structure of tables. Use the GET statement to process
Logical Databases.
155. What event is executed when START OF SELECTION event exits?
The statement END-OF-SELECTION is executed. This is different from STOP
statement, which terminates report processing all together.
156. What is the RSDBST00 report program used for?
RSDBST00 provides information about logical databases.
157. How is the GET LATE command utilized?
It occurs when all subordinate segments have been processed and before the system
requests the next table entry of the same table (hierarchy)
158. How do you use the STOP command?
The STOP is specified within the processing block END-OF-SELECTION, report
processing is terminated immediately and the list is displayed.
159. Explain the select-options statement.
It generates a line on the selection screen, the first part of which contains a text, followed
by a range for the input possibilities.
160. What is the syntax to declare values?
SELECT-OPTIONS

Page 28 of 146

ABAP FAQ
Variable_name FOR table_ element DEFAULT range TO range
161. Does SELECT statement perform an authorization check?
SELECT statement does not carry out any authorization checks.
162. Why is it important to know this?
To remind the programmer that he/she should do this checks.
163. What are the attributes associated with SAPSQL?
SAP-SQL has the following attributes:
1) SAP-SQL syntax corresponds to that of standard SQLs
2) SAP-SQL is a subset of standard SQL
3) SAP-SQL contains SAP short forms.
164. The most important thing to remember about the SELECT SINGLE is?
There are several things to remember:
1)
It retrieves only one row
2)
It does not need an ENDSELECT statement
3)
THE FULL KEY OF THE TABLE MUST BE INCLUDED IN THE WHERE
CLAUSE OF THE SELECT STATEMENT
165. How do the BETWEEN, LIKE and IN comparisons work?
BETWEEN <f1> AND <f2> is inclusive
LIKE <with % and _ masked literal> - string and character wild characters
IN (<field1> , <field2> , . ,<field3>)
166. Can Meta Characters be used in a where clause?
Meta characters are wild characters , i.e. %, and _ Yes they can be used in where
clause
167. How do the command ranges work?
It is similar to the DATA statement for an internal table with the columns ,SIGN,
OPTION
LOW and HIGH (It replaces the need to define a data structure with above statement)
168. Can you select a database record and place it directly into an internal table?
Yes, using the SELECT * from tablename INTO TABLE itab.
169. Describe the syntax and function of the AUTHORITY CHECK command?

Page 29 of 146

ABAP FAQ
AUTHORITY CHECK OBJECT <object name>
ID <name1> FIELD <f1>
ID <name2> FIELD <f2>

IF SY-SUBRC NE 0.
170. How does the MESSAGE statement work?
Displays a message at the lower right-hand corner of the screen instead of a user note
with WRITE.
MESSAGE-ID <class>
A message has a class, id and Qualifier
171. What is Data cluster?
It is grouping of data objects. It is divided according to various points of view into work
areas comprising data clusters
172. Explain the EXPORT and IMPORT commands?
You use EXPORT to specify the data objects of your cluster as a list. For an IMPORT,
you need Only a subset of the objects in your cluster in any order.
173. What is an event? And how (in what order) do they get processed in SAP?
An action within the SAP system beginning with a key word that introduces a new
processing block
174. Describe the activities of the TOP-OF-PAGE event.
If you want to improve layout of the report output, you can use the keywords TOP-OFPAGE and END-OF-PAGE, HEADING.
175. How many detail lists can exist on top of the originally generated list? How can
you keep track of the number of lists?
Nine detail lists can exist. The system field SY-LSIND contains the index of the list,
which is currently being generated by the report.
176. What is contained in the field SY-LISEL? How and when is it loaded?
You often want to select a line in the current list and have additional information
displayed interactively for this line .For this purpose, you need to provide the appropriate
data for the selected line. The selected line is automatically transported to SY-LISEL.
177. Explain the HIDE command.

Page 30 of 146

ABAP FAQ
You can use the HIDE command to hide line specific field contents in a list.
178. What is the syntax to call a specific status, titlebar?
Place the cursor on the status name with the statement SET PF-STATUS <status> and
double click or press F2 (similar for SET TITLEBAR <code>
179. How does the system interpret pull down menus push buttons, PF-keys etc in the
ABAP/4 code? OK-code
A GUI interface is associated with an ABAP/4 program. The different GUI interfaces are
classified according to their status .You can assign menus to each status:
function key menu for defining the function key
Pushbutton menu for defining the pushbutton sequence
Menu bar for defining the pull-own menus.
180. What are the components of the status or menu?
Pushbuttons, menu lists, function keys and codes.
181. Wh
at are the advantages of using AT USER-COMMAND (SY-UCOMM) Vs
AT PF-KEY?
A function can be assigned to another function key without program
change required
If a function key can be used in different lists or list levels you assign
specific function texts to the different status of this key
An event triggered by a command Vs a pf-key
182. What is the MARKFIELD command how does it work?
183. Explain the READ LINE and MODIFY LINE commands.
184. What does a command window do?
185. Know the syntax of the SCROLL functions.
186. Explain the GET CURSOR command.
187. What can be gained using the GET CJURSOR command in the conjunction i.e.
program (ZZTEST01)
That has parameter of CUSTNO, customer number and a select options statements of
DATE .

Page 31 of 146

ABAP FAQ
188. How would you call (Submit) program ZZTEST01 from your main program with
return, loading the customer number parameter with the value of Z66 and a date
range of 19940102 to 19950102? I.e. What is the proper Syntactically correct
command?
189. What are the differences between calling a program, transaction with return and
without return and how can each be accomplished?
190. What are the differences between the parameter SET and GET and the IMPORT
EXPORT commands? Note each parameter can only store one field value.
IMPORT- from memory
EXPORT to memory
191. How can you pass more than one group of data by using IMPORT commands?
192. You have a program that needs to call a separate?
193. How can you exit out of a submitted program and return to the original program?
Submit report
194. What are the characteristics and phases of background processing?
- Execution of ABAP/4 programs w/o dialog
- Complete integration in the SAP system
- Parallel background and online operation
- Ease of use
- Distributed processing=09
Phases
Job scheduling->job processing->job overview
195. How is the spool list is used?
To list jobs during the scheduling process.
196. Can data be transferred from one job step to another?
You can use ABAP/4 global memory to pass on the contents of fields, records, and
internal tables to subsequent steps, IMPORT/EXPORT statements.
197. What are the function modules for generating jobs?
JOB_OPEN , JOB_CLOSE , JOB_SUBMIT

Page 32 of 146

ABAP FAQ
198. WHAT are the commands that allow you to process sequential file? And what is
their syntax?
READ DATASET (reading) and TRANSFER (writing)
OPEN DTASET <dataset name> for <input output appending> in <binary text > mode at
POSITION <position> MESSAGE <field>
READ DATASET <dataset name > INTO <field>
CLOSE DATASET <dataset name>
DELETE DATASET <dataset name>
TRANSFER <field> to <dataset name>
199. What is the process for transferring data from legacy system to SAP?
FTP file transfer, Manufacturer specific field transfer NFS(network file system)
200. What is the difference between opening a dataset for input, output, appending?
FOR OUTPUT
Opens the file for writing if exists it is overwritten if not then it is created
FOR INPUT
Opens an existing file for reading
FOR APPENDING
Opens the file for writing at the end of the file .If it does not exist, it is created, if
opened, you return to the end.
201. What is binary mode?
The content of the data is not interpreted by the reading and writing operations. Data are
entered or displayed directly. Does not interpret carriage returns.
202. Explain the process to transfer a record to a dataset?
TRANSFER <field> to <dataset name>
203. Why batch input?
To input a large amount of information at off peak times.
204. Can data be put directly into the database?
No, only after the data has been checked.
205. Explain at high level, the batch input process?

Page 33 of 146

ABAP FAQ
Batch data is placed into queues called batch input sessions , then placed into the
application programs for maintenance into the database
206. What are the function modules associated with batch input?
BDC_OPEN_GROUP , BDC_CLOSE_GROUP , BDC_INSERT
207. What is the structure of the BDC table?
Program/Dynpro/start/field name/ field content
208. How do you find the transaction number, program number and field names?
F1, Technical help
209. Write out a coding example for filling a BDC Table?
FORM <NAME>
REFEESH <bdc table>
CLEAR <bdc table>
MOVE <program name > to <bdc table>-PROGRAM
<number1> TO <bdc table>-DYNPRO
X TO <bdc table>-DYNBEGIN
APPEND <bdc table>
CLEAR <bdc table>
MOVE: <field1> TO <bdc table>-FNAM
<field2> TO <bdc table>-FVAL
APPEND <bdc table>
210. What are the processing modes for Batch Input?
Process on screen , Display errors only and process in the background
211. What are the available OK Codes that can be utilized during batch input
processing?
/n terminates current batch input transaction and marks as incorrect.
/bdel delete current batch input transaction from session
/bend terminate batch input processing and mark session as incorrect
/bda change display mode to process the session on screen instead of displaying only
errors
/bde change display mode to display only errors instead of processing the session on
the screen
212. What is the effect of the BDC_CURSOR field name in the BDC table?

Page 34 of 146

ABAP FAQ
You can set the cursor and enter as a corresponding field value the name of the field on
which the cursor is to be positioned
213. Where is processing logic located in an on-line program?
ABAP/4 program (module pool)
214. Describe the online processor. What is its function?
Controls the flow of online program
215. How are screen names defined? Do you create a screen first or define your
program first?
Define the program first and then create a screen
216. What does PBO stands for? When is the PBO logic performed?
PROCESS BEFORE OUTPUT Processed before the screen is displayed
217. What does PAI stands for? When is the PAI logic performed?
PROCESS AFTER INPUT Processed after the user has pressed ENTER.
218. How is data passed from the screen fields to the ABAP/4 program?
Through the flow logic
219. What does the TOP Include do for you as a programmer?
220. What are the steps in creating screen?
221. Where are the module statement declared? Where is the logic within each
module?
Module statements are in the flow logic within each module is in the ABAP/4
module pool Program.
222. What is the significance of the word OUTPUT in the declaration?
MODULE TEST_KNOWLEDGE OUTPUT
ENDMODULE.
Then we know that it is part of the PBO, therefore is processed before the screen is
presented.
223. Describe the fields on the screen

Page 35 of 146

ABAP FAQ
Attributes screen , Screen types ,follow up screens , cursor position etc
After you have entered the screen number, the screen branches to the screen attribute
maintenance. Enter a short description , select the type NORMAL and specify the number
of the Follow-up screen.
224. What are the three components of ON-LINE program?
Screen , ABAP/4 program and transaction code
225. What is gained by using the Dictionary Fields menu option when creating your
screen?
The fields you have created inherits the same attributes as those in the Data Dictionary.
Create a checkbox , frame, pushbuttons and radio buttons on a screen
Just type a name and go to graphic element push button.
226. How do you assign an OK_CODE for a push button? How it is used in your
ABAP?
In the field list ,name the element and give it the value that it will represent when pushed
You must make sure that you clear the field that represents the pushbutton after every
check.
227. What automatic checks does the screen perform? (should be four)Describe all
four and how they are used?
The field format, required input, a foreign key table, parameters
228. What are the two methods to declare input field as mandatory?
In the field list placing a question mark as the first entry in the input field.
229. How does foreign key work? What you have to put in your screen to identify the
foreign key?
No? Then where is the foreign key identified?
You have defined a screen field by referring to a Data Dictionary, which has a check
table. When the foreign key is checked the system compares the values of the fields to be
checked with the contents of the key fields of the corresponding table.
230. What are the two effects of the foreign key from a user standpoint?
Possible entries & a check against the key field contents.
231. What is user defined validation checks in the flow logic?
FIELDSELECT FIELDVALUES or in the module pool FIELDMODULE

Page 36 of 146

ABAP FAQ
232. Does the value command in the flow logic go in the PAI or the PBO event?
PAI
233. If an error occurs in the module pool, which fields are available for entry and
which are display only fields?
Only those fields defined with the FIELD statement before MODULE & relevant checks
in a chain.
234. When is the chain command used in the PBO event?
If you want to make more than one field ready for input after an error.
235. What table stores the online messages? What is the message class and what is its
significance?
Table T100. The message class is a specific class of messages for a group of transactions
236. What are the 5 different message types and how are they handled by the system?
What is then difference between the Warning and Error messages?
A : Abend Message displayed on the current screen and subsequent task terminated
I : Information Message displayed on the current screen , but user can continue program
by pressing ENTER
E: Error Message displayed on the current screen. With FIELD statements , the fields
concerned become ready again for input and user is required to make the entry /entries
again
W : Warning As E message , but correcting input is optional
S: Success Message displayed on the follow-up screen as an I message.
237. What does WITH statement add to a message?
In the place of the & or $ the fields or values are placed in the error message.
238. What effect does the FIELD statement have within the flow logic?
The field statement resets the fields so those fields are ready for input again.
239. What is the importance of the chain statement?
The CHAIN statement allows you to include multiple FIELDS for reenter.
240. Where are the messages displayed on the screen?
At the bottom

Page 37 of 146

ABAP FAQ
241. Is the SET PARAMETER statement to be issued in PBO or PAI module? Why?
PAI, the value must be input into the fields first before it can be placed in the buffer.
242. Where does the GET PARAMETER statement get its values? Which field gets
populated with the new value?
From the buffer
243. Where can the SET CURSOR command be executed? What is its effect?
244. What are the matchcodes and how do they affect the screen field? Where are they
specified in the online program?
245. What is the effect of an ON CHAIN-REQUEST command in your flow logic?
246. What commands are used to change database table entries?
247. How can you check if the changes to the database were successful?
248. What is the difference between the Long form and the short form of making
database changes?
249. What is the advantages using the SAP long form over the short form of database
changes?
250. Can where clause be used when updating database entries?
251. Describe array operations and their advantages?
252. What is logical unit of work? How is it defined?
253. What function is performed by the commit work command?
254. Why is it so important for a programmer to check the lock entries?
To find out if record is locked and also to maintain data integrity.
255. How can you find a lock entry for a database table?
The function module ENQUEUE <lock object> checks whether a lock was triggered for
the same object. Otherwise an exception FOREIGN_LOCK is carried out. If the object is
not locked the function module sets the lock.

Page 38 of 146

ABAP FAQ
256. What steps are necessary to set a lock on a record within a database table?
Execute CALL FUNCTION statement
CALL FUNCTION ENQUEUE <lock object>
EXPORTING
EXCEPTIONS
CASE SY-SUBRC.
.
.
ENDCASE.
257. How do you unlock the entry? Why is this necessary?
Execute the CALL FUNCTION statement
CALL FUNCTION DEQUEUE <lock object>
EXPORTING
It is important to unlock the entry so others can update it.
258. What is the difference between CALL SCREEN # # # and SET SCREEN ###
LEAVE SCREEN?
SET SCRREN statement sets or overwrites the follow-up screen.
LEAVE SCREEN executes the screen number currently in the follow-screen field
CALL SCREEN interrupts the processing of the current screen to call a new screen or a
chain of screens, processing of the current screen is resumed directly after the call.
259. After a CALL SCREEN command where does the processing return after the
screen has been executed?
It returns the processing to the calling screen
260. Which is the more similar to a call with return, the SET SCREEN or the CALL
SCREEN?
The CALL SCREEN command.
261. What function is performed by the SET SCREEN 0 command?
Returns to the original screen
262. What are the main differences between the repot status and screen status?
263. Where must you place the SET PF-STATUS command in your online program?
Place it in the PBO module of the screen

Page 39 of 146

ABAP FAQ
264. Why is it good idea to clear OK_CODE field after deciding which action to take?
You need to clear the OK code to avoid sending a screen that already has a function code.
265. How do you specify that a function is an exit type command?
By specifying function type E for the pushbuttons or menu options in the screen painter
or menu painter
266. What is the purpose of the AT EXIT-COMMAND?
Usually there are many ways to leave a screen (back,exit,cancel) .This command will
perform termination logic for all functions of type E
267. What are screen groups?
A group of screen fields such as radio buttons or checkboxes.
268. What is the correct syntax for dynamically modifying a large number of screen
fields?
MODULE MODIFY _SCREEN_OUTPUT
.
.
.
LOOP AT SCREEN
IF SCREEN GROUP = 3D GR1
SCREEN-INPUT=3D 1
ENDIF.
IF SCREEN-NAME = 3D TAB-FIELD
SCREEN-ACTIVE=3D 0.
ENDIF.
MODIFY SCREEN.
ENDLOOP.
269. What is the name of the internal table that stores the screen information?
SCREEN.
270. What is the purpose of the MODIFY command when performing the dynamic
screen modifications?
After you activate or deactivate the field attributes by assigning them 1 or 0, you save the
modifications via MODIFY SCREEN command.

Page 40 of 146

ABAP FAQ
Technical Questions from the BC team (Group 1)
Set 1:
1.
Direction for the use of view object within the program?
View object A view object is a virtual table tailored to the needs of an application .This
allows
Direct access to specific data.
View object is used in within an ABAP/4 program the same way a table is used. If you
have created a view object ZVIEW , you can display its contents using following
example program
REPORT ZEXAMPLE.
TABLES: ZVIEW.
SELECT * FROM ZVIEW.
WRITE: / ZVIEW.
ENDSELECT.
2.
Direction for the use of check box and radio buttons in screen painter?
Creating Radio Button and Check Boxes on the screen
1)
Go to the full screen editor.
2)
Place an underscore at the point where you want to place the field.
3)
Define the name of the field using <Field Attributes>
4)
Place the cursor on the field and press <Graphic element>
5)
Then press <Radio Buttons> or <Check boxes> depending on which graphic
element you want
6)
Then you group related check boxes and radio boxes.
Difference between Radio Buttons and Check boxes.
Radio buttons force one and only one entry to be active (Value X. Inactive has value '')
for each group before control is passes back to the program.
Check boxes allow for any combinations of entries on the screen.
3.

When table in data dictionary is created , the relationship between cardinality


factor and table Cardinality:
The following values are allowed when inserting data:
C
- 1 To 1 (Optional)
CN - 1 To M (Optional)
N - 1 To M (Mandatory)
I
- 1 To 1 (Mandatory)
Dependency factor:
This defines the foreign key relationship when applying updates.

Page 41 of 146

ABAP FAQ
4.
When an internal table is created, the settings criteria for the value of occurs?
The objective of setting the value of an occurs for an internal table is a question of
optimization. The following facts should be taken into account when making such
decision.
1) The complete data area of a program is 64000 bytes.
2) The initial size declared is kept in roll area (quicker access to program)
3) Data entered that exceeds the initial size stores in the roll file (Slower access to
program)
You should also analyze the expected volume and access rates before making the
decision.
5.

When entering values on table related with foreign key using on-line program
(using insert), why checking on possible entries on foreign key is not carried out?

6.
Direction for the use of area menu?
Area menus are used purely for the pathing to transactions. They contain the same
information
As a transaction except for the part that is defined by the screen painter component.
Details of the Area menu screen :
Title : Workbench : Maintain area menu initial screen
Transaction : SE43
Path : Tools ->CASE->Development->Maintain area menu
Creating an area menu:
1) Enter the name of the new area menu.
Since there are no SAP area menus starting with "Z, an appropriate naming convention
would be for all user created area menus to start with "Z".
2)Hit <Create>
3)Enter:
-Maintain Language (must be "E")
-Short text (description of area menu)
-Hit<Continue>
4) You should be now in the area menu editor.
The fields that you can maintain are as follows:
-Title : Text at the top of your area menu
-Menu bar: Text for pulldown menu options & functions or sub menus.
-Push button settings: - Number(s) of the corresponding function key(s) defined.
-Function key settings: - Text and associated definitions for function keys.

Page 42 of 146

ABAP FAQ
7.
Description on roll area, work area, roll in?
Answer:
Roll area: Contains data that is automatically copied into the process ' private memory at
the beginning of the dialog step (Rolled in).
Page area: I believe that the page area is a section of memory, which is the size of 11/0
operation.
Work area: Contains the graphical user interface elements for the display and entry of
data.
Roll in: When data is copied from the role file to the roll area.
Technical Questions from the BC team (Group 1)
Set 2:
It is possible to delete data entered with ABA/4 program in table maintenance. However,
deletion of data uploaded from SAM file in table maintenance is not possible.
Definitions: I am not sure if I understand this question. Are you asking if it is possible
to delete data from a SAP table using information stored on a Unix file or are you asking
me if the contents of a SAP file can be deleted before a Unix file is loaded? I need more
information to be able to answer this question.
The difference between two SYNTAX. Insert table name & insert table name, commit
work.
The difference can be demonstrated by the examples below.
Start of Program I.
Database update statements
Run-time error occurs here
End of program 1= 20
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
=3D=20
Start of program 2.
Database update statements.
Commit work statements =20
Run time error occurs here
=20
End of program 2=20
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
=20=20
Program I will not update the database & program 2 will.

Page 43 of 146

ABAP FAQ
Structured Logic
1.
What is the difference between Structure & Intab table?
2.
BDC program - How do you prepare? When you run BDC Program?
3.
What is a Transaction for job definition, Explain those 3 modes.
4.
Call transaction module, give syntax.
5.
How do BDC program using Call Transaction - What are modes - A , N , E
6.
"Check " statements, how it works.
7.
Explain "Chain input" fields.
8.
What is the difference when use fields in Chain, End Chain and when use in
Subroutine?
9.
Difference between Append and Collect statement?
10. How you populate internal table.
11.
Syntax to create for internal table. Why you use occur parameter?
12. Debugging a program - give how you set breaks points?
13. Explain Field Group.
14. What is a Field symbol?
15. Transaction for Menu painter?
16. Transaction for Screen painter? What is flow logic? Explain
17. Transaction for MM creation?
18. Transaction for Sales Order (S /D) - Create, Display & Change?
19. Transaction for Delivery (S / D) - Create, Display & Change?
20. Where you specify logical database, while you are creating a program?
21. If you want to run two programs , within one program how you run
22. Another program instead of opening another session? 22. Parameter, Select
Option -difference?
23. Example of nested "Select " statement syntax?
24. Give some System Fields.
25. At line - selection how it works. Which system field contains information?
26. How do you declare and call subroutines?
27. What is the difference between Move & assign statement?
28. What it does "New-Page" statement?
29. What is a Transaction for creating a Job and how you navigate from menu path?
30. What is Internal Table?
Internal Table is a temporary table, where you store the data temporarily in a BAP
program.
Types of Table types - Logical level
Transparent,
Pooled, cluster

Page 44 of 146

ABAP FAQ
Database Table
31. What is BDC and How you use it?
Batched Data Communication. Batch input is an automatic procedure for the non-online
data transfer of data into the system. BDC is used mainly to port data from legacy system
to New system Using file access command like OPEN DATASET, READ DATASET. We
populate the data into database tables. This can be run as a batch job using BDC. SAP
strongly recommends that you use same screen flow to populate a table because that way
referential integrity and additional checks are done properly.User dialog is simulated
32. What is Dataset and How you use it?
To open operating system file you use OPEN DATASET function FOR OUTPUT or
INPUT or Append Mode.
Ex : OPEN DATASET Dataset _ I FOR OUTPUT
33. What is a variant and Where do you use this?
Variant contains parameters for a program. You can run a program either using variant or
directly. If you run directly you have to enter all the parameters and if you use variants
you do not need to enter parameters. You can have many variants for a program.
34. What is Set Parameter and Get Parameter?
We can store parameters in memory (SPA /GPA Memory) using Set Parameter and Get
Parameter commands. Set Parameter sets the value in the memory and and Get Parameter
retrieves the value from memory.
Ex : SET PARAMETER ID USER _ID FIELD EMPLOYEE-USERID
35. What is Field Symbol?
Field Symbol are variables. Main advantage of the Field Symbol is you do not have to
define field
Type it can be of any type and any length depending on the field you assign at the
runtime.
Ex. FIELD_SYMBOLS <F>
ASSIGN LFAI - NAMEI TO <F>
36. What is Menu painter? And How do use it in your application?
Menu painter is tool to create Menus, Push Buttons assignments and from Screens.
During run time you can assign any menu status to a screen.
You assign a four-character function code for each function and you use OK-CODE to
identify which function need to be run. You write code in PAI module for each function.

Page 45 of 146

ABAP FAQ
37. What are the variables that start with SY-?
These are system variables like
SY-DATUM System Date
SY-SUBRC System Return Code 0- Success, 4 - failure
These are the System Fields, you use this to generate a list
SY-Title
SY-pagct
SY-Srows
SY-scols
These are used for interactive reporting
SY-Curow
SY-CUCOL
38. What is Logical database and Explain about GET and PUT modules?
Faster Way of executing for selecting records.
Logical database is not a physical database. It is logical database structure of tables where
you specify the relationship between a set of related tables. Every logical database has
root table & child nodes. If you want to use GET table command in your program you
need to declare that related structure as a logical database. Once you specify the structure
you set SELECT-OPTIONS and then Database Program and modify the code for PUT
Forms. This PUT forms are executed whenever you use GET function in the code.
39. What are PBO and PAI?
PBO is process Before Output and PAI is process After Input. System runs code in PBO
module before displaying the screen. Code in PAI is executed for any user like clicking a
button or pressing function key and etc.
40. How you use PERFORM command?
PERFORM command is used to call a sub routine from any module.
Ex. : PERFORM Message_ Handler USING 0
41. What is Screen Painter? And How do you write a script for command Button?
Screen Painter is a tool to create a screens which can have User Input fields, Command
buttons, Frames, Radio Buttons, Combo boxes, and Check boxes. Key point here is you
need to specify OK-CODE (you can give any name but normally you use OK-CODE)
For OK function and you declare same variable in Module Pool also. In PAI module
using Case statements to determine which key was pressed.
CASE OK-CODE

Page 46 of 146

ABAP FAQ
WHEN DELE
MODULE Delete _ Function.
42. What are Events?
Start of Selection
Get <table>
End of selection
43. What kind of On line programs did you write or use?
On-line program is a program, which is not off line or Background job. Transaction and
Dialog modules are online programs.
RHO Consulting

1.

Explains what are the BDC Components?

2.

What is the difference between TRANSP and POOL TABLE?

3.

HIDE Statement, how it works?

4.

RANGES statements, why you use in ABAP/4 programming?

5.

In internal table how you get how many lines in it?

6.
What kind of Transaction did you use? Where did you use? Why did you use?
SE38
ABAP Program
SE51
Data dictionary
7.

What are the commands, which can be used only in screen, flow logic but not in
ABAP?

8.

How do you change the text (description which normally appears as non-editable
on the screen) of the Table field?
You can change the text for Data element. For data element you have Three different
description text (short, medium and long). You can Use any one of the texts.
9.

Where do you store BDC information? (Which table?) and What are the fields in
table?
In BDCDATA table. Fields are DYNPRO Screen Number
PROGRAM Program Name

Page 47 of 146

ABAP FAQ
FNAM Field Name
FVAL Field Value
DYNBEGIN
10.

What do you know about profiles? How can you give an authorization to
particular user?
A Profile is made up authorization. There are two types ;of Profiles single and composite.
Material setup
1.
How did you do pricing? (including menu flow ) about policy
Table ----> (Customer/Material ) ------> Access Sequence (price Customer discount
Material )
------> Condition type ------> Pricing Procedure ----------> procedure determination
SD config -----> Functions ------> Pricing -------> Control Data -----> Environment ----->
Create tables.
1.
Maintain condition tables of fields that can be used as Conditions to check for in
pricing.
There is a fixed list of fields that can be checked.
2.

What did you do in payroll?

3.
What did you do in customizing Org. structure?
Set up Company group, company code, controlling area, business Area, credit control
area, financial management area, plants, storage Organization, distribution channel,
division , shipping Points, loading points, plant sections, person groups, person
subgroups, and Payroll subunits and mapped them.
4.

What did you do in Account Assignment in material management? And also about
valuation class

5.

What are number ranges? How did you assign?

6.

What did you do in Time Data?

7.

What are infotypes? How did you use it? Do you remember any info types you
used?

8.

What type of materials did you use?


ROH
Raw material

Page 48 of 146

ABAP FAQ
HAWA
FERT
PROD
WETT
9.

Trading
Finished goods
Product Group
Competitive product

What are the logical databases and tables did you use in MM and SD?
EMM
Purchasing documents for material
EKKO
(Purchase Document Header)
EKPO
(Purchase document item)
EKET
(Delivery Schedules)
EKPB
(Material provided item in purchasing document)
EKKN
(Account assignment)
EKBE
(History of purchasing document)
MSM
Material Master
MARAV View tabelle fuer die logische DB MGM
MARM
Quantity unit
MBEWV View f=FCr logische Datebanken
MVKE
Material Master : Sales Data
MARCV View f=FCr logische Datebanken MSM
PROPF
Forecast parameters
MARD
Material master : storage location / batch segment
MCHB
Batch stocks
MKOL
Special Stocks from vendor
MLGN
Material data for storage number
MLGT
Material data for storage type
VFV
Invoices in sales & Distribution
VBRK
Billing : Header Data
VBUK
Sales Document : Header Status and Administrative D
VBPA
Sales Document : Partner
VBRP
Billing : Item Data
VBFA
Sales Document Flow
VBFAVG SD Document : Flow Records
VBPAPO Item Partner in SD Document
KONV Conditions (Procedure Data)

10.

How do you create logical database? Menu Sequence also.


CASE Development Work Bench Other Object EDIT Logical
Databases
OR

Page 49 of 146

ABAP FAQ
CASE Development Program Maintenance ABAP Development Utilities

Development / Test Logical Databases


11.

Hierarchy of Data Dictionary?


Table contain fields
Tables
Fields data elements
Data
Elements
Data elements domains
Domains
12. What is the difference between Data elements and Domain?
Ans: - A domain (Generic data types) describes the technical attributes of a field, such
as the data type or the number of positions in a field. The domain defines primarily
a value range describing the valid data values for the fields referring
To this domain.
Data elements (Specific data types) A data element is an elementary type. It
describes the type attributes (data type, field length and possibly the number of
decimal places) and screen information (explanatory text or field help) about
unstructured data objects (table fields and structure fields or variables).
Table fields and structure fields with the same contents should refer to the same data
element. This ensures that the attributes of these fields are always consistent.
A data element can be referenced in ABAP programs with TYPE. This permits you to
define variables that take on the type attributes of the data element in an ABAP program.
13.

How the tables in logical databases are related to each other?

14. What are the different relations between two entities?


One-One, One-Many and Many-Many
It is also called as cardinality.
CN 0,1,More
C
0, 1
N
1 or More
1
1
15. What is 3-tier architecture? What does that middle layer do?
Client, Server and Application Layer.
16.

What did you do in shipping? About the process?

Page 50 of 146

ABAP FAQ
Ans: - Shipping Conditions are defined in Customer Master. (Table KNA1 (General
Data))
Transportation groups are defined in Material Master. (Table MARA (General
Data))
All valid leg combos must be configured in the system. (A leg is the link between a starting and a
finishing point).

The shipping point is defined for each order item


The route groups legs together.
Shipping Delivery Order (create and save) Picking transfer orders (create &
confirm)
17. What are the different sections in Functions?
IMPORTING, EXPORTING and EXCEPTIONS
18. What are Field Groups?
Ans: - An extract dataset consists of a sequence of records. These records may
have different structures. All records with the same structure form a record
type. You must define each record type of an extract dataset as a field
group, using the FIELD-GROUPS statement.
FIELD-GROUPS <fg>.
This statement defines a field group <fg>. A field group combines several fields under one name.
For clarity, you should declare your field groups at the end of the declaration part of your
program.

19.

In your experience programming AMAP/4, What guidelines do you follow as best


practices?
Ans: - a) Store data in internal tables to reduce duplicate processing.
b) Copy an existing process and changes it.
c) Follow prescribed naming conventions for programs.
d) Use an include statement (ZIU0001) from the main documentation block.
e) For describing the content of the program, such as date, program author, purpose, list
of parameters and specifies, list SAP tables used, and list external input/output,
tables/files are used.
20.

What are some of the SAP ABAP/4 control statements that you used to write one
of your more complicated programs.
AT END OFEND AT
AT NEWENDAT
CALL
CASE...WHENENDCASE

Page 51 of 146

ABAP FAQ
CHECK
DOENDDO
EXIT
FORMENDFORM
IF...ELSE...ENDLOOP
LEAVE
LOOP...ENDLOOP
MODULE...ENDMODULE
ON CHANGE OF...ENDON
PERFORMUSING
SELECTENDSELECT
STOP
WHILEENDWHILE
21.

What are the different data types that are supported by SAP ABAP/4?

And how did you use them in your programming experience?


Packed, numeric, Character, and Date
22.

What are the various data structures (table processing) used in the ABAP/4
environment?
Ans: - The data structures are field string, internal tables, append and collect.
23.

Have you ever developed a batch-input program? If so, what approach did you
use to get data into SAP?
Ans: - Batch Input is a SAP method for transfering data into SAP System. The transfer
consists of two phases:
1) Create the batch input data for the target SAP system (ASCII data files are specially
prepared for SAP batch input processing).
2) Processing the batch input data in the target system.
There are three approaches for submitting data for batch processing:
1. Batch Session
2. CALL DIALOG Statement
3. CALL TRANSACTION Statement
24.

Have you ever done any transaction program/development using ABAP/4, screen
painter, and menu painter? If so, describe the steps or technique used to develop
transactions?

Page 52 of 146

ABAP FAQ
Ans: - The following list outlines the general steps that should be followed when
developing a new SAP R/3 transaction. I do not have to be performed specifically to this
sequence, but these topics/steps should be performed.
1. Preliminary work: Design the transaction, specify the transaction code in the system
and enter the transaction attributes.
2. Define global data in the data dictionary. Determine which domains, data elements,
and tables you want to use.
3. Create an ABAP/4 module pool. Create a module pool for the transaction and assign a
name and attributes according to the customer naming conventions.
4. Define screens (Screen Painter): Paint your screens, that defines the positions and
texts of the fields on the screen and assign appropriate names. In doing this, you point
the Data Dictionary fields you have defined in the Data Dictionary, Define the
attributes of all screens.
5. Define menus, windows, and function keys (Menu Painter): Define the interface for
your transaction with menus, pop-up windows and function keys for each individual
screen. Assign function code to each function that the user can execute.
6. Define screen flow logic.
7. Program the individual modules: Write the detailed processing logic, program and
modules called in the screen flow logic, pass the data between the module pool and
SAP memory, process the function codes from the interface and process the reports.
8. Create and program on-line messages: Create on-line messages and document them
(in the form of texts) Call the messages in the appropriate modules. Observe the rules
for error dialog.
9. Test the transaction. Test the transaction with the on-line debugging facility.
Transport transaction programs : Transport your completed transaction to the
production system
Instance.
25.

Have you ever created a user-defined database in SAP/R3? If so how did you go
about adding a user-defined database to the system?
To add a user-defined database to the system, the following steps are required.
1) Define the structure in the data dictionary.
A. Go to the Data dictionary Maintenance screen. Fill in the name of the database you
are defining
B. Define the database structure
To do this, select the object class tables for editing. In the resulting screen, fill in the
necessary information about the database.
C. Provide the database fields. Go to the fields screen so those new fields can be
entered into the system. You must atleast enter MANDT, RELID, SRTFD, SRTF2,

Page 53 of 146

ABAP FAQ
CLUSTR and CLUSTD. When you have entered all the required fields save the
record structure.
D. Active the table. The table is now defined in the Data Dictionary and known to the
system at large.
Add the database to the system by going to the Database Create screen.
There select processing method of in -line, so that the database has been created, you can
now create database clusters with the EXPORT command or access the database records
using SQL.
26. Describe the basic framework of an ABAP/4 program?
The basic structure of an ABAP/4 program is as follows:
REPORT report_name
DATA : pagebreak (12) TYPE C,
DATA : title (10) TYPE C,
TABLES: ABC, DEF, XYZ.
PARAMETERS: ABC-DSC.
FIELD-GROUPS:
FIELD-SYMBOLS
<name>
<street> = 7F
<city>
INSERT
INITIALISATION
INCLUDE ASD0001
START-OF-SELECTION.
Call to extract data from the database are performed here
END-OF SELECTION.
TOP-OF-PAGE
END-OF-PAGE
FORM Form_Name
ENDFORM.
27.
28.

What are the functional modules you have strong background?


What is the difference between a step-loop using internal table and a transparent
table?

Page 54 of 146

ABAP FAQ
Section A

1. Please circle T(rue) or F(alse) for each of the following questions:2. Move Corresponding is an effective way to move fields with like names from a
DB table record to an internal table header line. (T / F)
3. An append will add a record to a database table. (T / F)
4. The COLLECT statement will total up all P, I and F fields in a database table. (T /
F)
5. The SELECT statement allows processing of an internal table. (T / F)
6. The Loop at command allows you to use the WHERE clause. (T / F)
7. An internal table can be deleted. Modified, or inserted without the use of index.
(T / F)
8. The SELECT command performs its own authorization check. (T / F)
9. The WHERE clause in the SELECT SINGLE command is optional. (T / F)
10. When using the GET and SET PARAMETER ID command the memory id must
be defined to the Data Dictionary?
11. The SET PARAMETER commands function is to create a storage location in
memory and retrieve its contents?
Section B
There is only (1) correct answer for each of the following questions. Please circle the
letter, which you think corresponds to the correct answer.
1.
A LIKE statement is used to:
(a) Move similar fields between the header areas of internal tables.
(b) Set declared data fields to the same characteristics as a different data field.
(c) Assign a default value to a parameter.
(d) Pass parameters to a subroutine.
2.
All are examples of SAP events except:
(a) Start of Selection.
(b)End of Selection.
(c) Top of Page.
(d)New Page.
3.
The best definition of the ABAP.4 workbench is:
(a) A method of finding fields within the data dictionary.
(b)A method of navigating between SAP objects and a method of establishing a
hierarchy between related SAP objects.
(c) A screen that contains the attributes for screens, programs, transactions, etc.
(d)An easy way of creating objects in SAP.

Page 55 of 146

ABAP FAQ
4.

Which is correct for reading an entire table, DBTAB, into an internal table, ITAB,
structure that was previously defined?
(a) SELECT * FROM DBTAB INTO ITAB.
(b)SELECT SINGLE * FROM DBTAB INTO TABLE ITAB.
(c) SELECT * FROM DBTAB INTO TABLE ITAB.
(d)READ DBTAB INTO TABLE ITAB.
5.
Which is an example of passing by reference?
(a) PERFORM CHECK_FIELDS USING F1 F2 F3.
FORM CHECK_FIELDS USING VALUE F1 VALUE F2 VALUE F3.
(b)PERFORM CHECK_FIELDS USING F1 F2 F3.
FORM CHECK_FIELDS USING VALUE F1 VALUE F2 F3.
(c) PERFORM CHECK_FIELDS USING F1 F2 CHANGING F3.
(d)FORM CHECK_FIELDS USING VALUE F1 VALUE F2 CHANGING F3.
6.
A MOVE-CORRESPONDING command:
(a) Moves all data from an internal table into a database table.
(b)Moves all like named fields from one field string to another.
(c) Adds all numeric fields in a totals column.
(d)Allows you to declare an internal table to have the same structure as database table.
7.
A ten byte long character field, WS-CUSTNUM, would be declared as:
(a) WS_CUSTNUM TYPE C.
(b)DATA WS_CUSTNUM LIKE SPLAN-TIDI.
(c) DATA WS_CUSTNUM (10) TYPE CHAR.
(d)DATA WS_CUSTNUM (10) TYPE C.
8.
Each record within a database table is specified by:
(a) A specific index number or SY-TABIX.
(b)A unique key structure which can be same for multiple records within the table.
(c) One field, Known as the key field, that is specified to each record.
(d)A unique key structure which consists of any number of fields and must be unique for
each record within the database.
9.

To set an initial value in the parameter, CUSTNO, what word is required in the
following statement to complete the syntax: PARAMETERS: CUSTNO(10) TYPE
C____________0000111008=20
(a) Value.
(b)Default.

Page 56 of 146

ABAP FAQ
(c) Initial.
(d)Like.
10. Which of the following does not have an END associated with it?
(a) LOOP.
(b)DO.
(c) GET.
(d)SELECT.
11.
Which is the best example of a foreign key?
(a) Data element.
(b)Domain.
(c) A VALUES statement within the PAI module of the flow logic.
(d)A check table.
12.
(a)
(b)
(c)

An on-line program consists of:


Flow Logic, a screen, and an ABAP program module pool.
A Screen, an ABAP program module pool, and a transaction.
Flow logic, screen and a PAI event.

13. PBOs:
(a) Are events performed in the screen after the user has entered some data?
(b)Is a module pool for an on-line screen?
(c) Is an on-line event?
(d)Contains all logic for error messaging.
14. All of the following are examples of automatic screen field checks except for:
(a) Data formatting.
(b)Check tables.
(c) Values table.
(d)VALUES statement in the PAI of the flow logic.
15. A COMMIT WORK command:
(a) Reads in a logical database.
(b)Closes a logical unit of work and confirms the changes in the database.
(c) Cancels a logical unit of work and rolls back all changes made with the UPDATE.
(d) Is automatically performs at each UPDATE dbtab command line
16.

The following is an example of a call without return:

Page 57 of 146

ABAP FAQ
(a) CALL TRANSACTION VAO1.
(b) SUBMIT SAPMV45A.
(c) CALL SCREEN 0.09.
Provide short answers for each of the following questions in the space provided:1.
Why would you use the DESCRIBE table command?
2.
What do the CLEAR, REFRESH and free commands do?
3.
What is the difference between internal and external calls?
4.
Explain: Pass by value, Pass by Reference, Pass by value and result?
5.
Name the 4 interface parameters of a function module?
6.
What are the 3 categories of DATA in the SAP system?
7.
What are the table TYPES in the SAP system?
8.
What ABAP/4 command is used to process a logical database?
9.
At what 2 points in the ABAP code can the STOP command branch to?
10. What is the difference between the templates % and _ during string
comparison?
11.
Where is the processing logic located in an on-line program?
12. Describe the on-line processor. What is its function?
13. What does PBO stand for? When is the PBO logic performed?
14. What does PAI stands for? Where is it located? When does it get performed?
15. How is data passed from the screen fields to the ABAP/4 program?
16. What does the TOP Include do for you as a coder?
17. What are the steps in creating a screen?
18. Where are the module statements declared? Where is the logic within each
module?
19. What is the significance of the word OUTPUT in the declaration?
MODULE TEST_KNOWLEDGE OUTPUT
ENDMODULE.
Describe the fields on the screen attributes screen. Screen types, follow up screens,
cursor position, etc.
20. What are the three components of an ON-LINE program?
21. What is gained by using the Dictionary Fields menu option when creating your
screen?
22. How do you assign an OK_CODE for a push button? How is it used in your
ABAP?
23. What automatic checks does the screen perform? (Should be four.) Describe all
four and how they are used.

Page 58 of 146

ABAP FAQ
24.
25.
26.
27.
28.

What are the two methods to declare input field as mandatory?


What are the two effects of a foreign key from a user standpoint?
What are user defined validation checks in the flow logic?
Does the VALUES command in the flow logic go in the PAI or the PBO event?
If an error occurs in the module pool, which fields are available for entry and
which are display only fields?
29. When is the chain command used in the flow logic?
30. Which table stores the one-line messages? What is the message class and what is
its significance?
31. What are the 5 different message types and how are they handled by the system?
What is the difference between the Warning and Error messages?
32. What does the WITH statement add to a message?
33. What effect does the FIELD statement have within the flow logic?
34. Where are messages displayed on the screen?
35. Is the SET PARAMETER statement to be issued in the PBO or the PAI module?
Why?
36. Where does the GET PARAMETER statement get its values? Which field gets
populated with the new value?
37. Where can the SET CURSOR command be executed? What is its effect?
38. What are matchcodes and how do they effect a screen field? Where are they
specified in the on-line program?
39. What is the effect of an ON CHAIN-REQUEST command in your flowlogic?
40. What commands are used to change database table entries?
41. How can you check if the changes to the database were successful?
42. What is the difference between the long form and the short form of making
database changes?
43. What is the advantage of using the SAP long form over the short form of database
changes?
44. Can Where clause be used when updating database entries?
45. Describe array operations and their advantages?
46. What is Logical Unit of Work? How is it defined?
47. What function is performed by the commit work command?
48. Why is it so important for a programmer to check the lock entries in the database?
49. How can you find a lock entry for a database table?
50. What steps are necessary to set a lock on a record within a database table?
51. How do you unlock the entry? Why is this necessary?
52. What is the difference between SET SCREEN ### and SET SCREEN ###.
LEAVE SCREEN.?

Page 59 of 146

ABAP FAQ
53.

After a CALL SCREEN ### command, where does the processing return after
the screen has been executed?
54. Which is more similar to a call with return, the SET SCREEN or the CALL
SCREEN?
55. What function is performed by the SET SCREEN 0 command?
56. Where must you place the SET PF-STATUS. Command in your on-line
program?
57. Why it is a good idea to clear the ok_code after deciding which action to take?
58. How do you specify that a function is an exit type command?
59. What are screen groups?
60. What is the correct syntax for dynamically modifying a large number of screen
fields?
61. What is the purpose of the MODIFY command when performing dynamic screen
modifications?
62. Various Event for a screen?
A) Clicking Push Button, Function Key, Menu Option.
63. How do you run a report for a row in table?
A) Using Graphics Multiplexer. There is an option some thing similar to screen capture
which captures data only. Using that data you can draw graphs (3D and 2D). This option
is available all the time from Menu! -> Generate Graphics which captures the data then
you need to drag and select the data you want to draw a graph on. Once you select you
can click on Graphics, which launches graphics multiplexer.
64.

What are reports? And How do you set up reports?

65. What are user Exits and transactions?


A) Generally, user exits are the forms defined within SAP standard code (usually starting
with user exit). These predefined areas in the code allow programmers to insert custom
defined code into the standard processing of a transaction (e.g. allow resorting of the
batch sequence in VA01 batch processing). There are many specific examples if you are
interested, but usually user exits are searched for when a specific use is being analysed.
66. What table is used for BDC?
A) BDC DATA
PROGRAM Program name
DYNPRO Screen number
DYNBEGIN

Page 60 of 146

ABAP FAQ
FNAM
Field name
FVAL
Field value
67. How do you set up a batch process?
A) If you are planning to import data then you need to prepare the data first.
You need to remember or note down the user actions (Function Key clicks or Push button
clicks).
Need to simulate those user events using Batch process technique that is
BDC_INSERT_GROUP, BDC_INSERT, and BDC_CLOSE_GROUP.
Schedule the Batch job.
68. What are different types of programs?
1 Online report (Executable Program4.6d)
J Job Report
I Include Report
M Module Pool
U Update Program
F Function Modules
S External Subroutines
69. What does GET LATE do?
A) In report, if you want to print Title on the top and Totals at the bottom then you need
to use GET LATE to print.
70. What does CHAINEND CHAIN do?
A) You use chain statement to define processing chain. If a check or a processing module
refers to several fields at the same time, you must place these fields together with FIELD
statement in a chain starting with CHAIN and ending with END CHAIN.
71.

What are the differences between SELECT-OPTIONS, VARIANTS and


PARAMETERS?
A) If you use Select options then you can define range of values like From-To. You can
include ranges or exclude ranges or You can specify single value.
If you use Parameters you can only enter a particular value to a field.
If you use Variants, you can have several variants for a program. You can save values of
set of parameters as a variant and you can have several variants with different
combinations of parameter values. You can run program with variant, In that case you do
not have to enter parameters.

Page 61 of 146

ABAP FAQ
72.

How do you import a UNIX program using BDC?

73. What is a variant?


A) A Variant is a selection set of input parameters.
74. What are the advantages of using variant?
A) If a report is run with same selection set at regular intervals, variants would save user
work. Variants also reduce load on the system, as restricting selection to a small essential
amount of data reduces the number of database accesses and hence the load on the
system.
75. What is variable selection with variants?
A) It is possible to fetch values for variants from table TVARV fields. In this case the
value of TVARV field is set before running the program with the variant. This is variable
selection since variant runs with different values. This is especially useful for batch mode
runs.
76. How do you run programs with variant?
A) Current screen will have Execute with variant and Overview of variants buttons if
variants can be used. Choose to run with Execute with variant and run with a variant.
77. What is SPA/GPA? When do you use it?
A) You can set and display default values in fields. You make the assignment using PID
in field attributes and check SPA or GPA option. Other way of using this is using SET
PARAMETER and GET PARAMETER commands.
Ex:- SET PARAMETER FIELD EMPL-EMPID ID EMP
GET PARAMETER ID EMP FIELD EMPL-EMPID
78. What are PBO and PAI?
A) Process Before Output and Process After Input.
79.

What is Screen Painter and What are steps involved in writing Scripts for
Command Buttons?
A) Entering OK-CODE for OK, declaring OK-CODE in Module Pool, and Writing script
using case OK-CODE statement and using function names.
80.

How can you test Flow Logic?

Page 62 of 146

ABAP FAQ
A) You need to create a transaction for this screen first. If you go to Screen -> Test then it
will show a radio button where you can either check with Screen Flow Logic or with Out
Screen Flow Logic.
81. What happens if you choose Hold Data option in screen attributes?
A) System automatically shows the data if the user returns to the screen.
82. What happens if you enter 0 in NEXT Screen attribute?
A) It does not go to any other screen and it moves back one level. However you can
control this in run-time using SET SCREEN command.
83. Where do you use Pop-Up Windows?
1. Data Input (prompting the user to enter data).
2. Online Control (Define or restrict the online flow for the user).
3. Data backup (Do you want to save the data? Yes or No).
4. Confirmation messages and Include messages.
84.

How many menu titles can you have in a main menu?

85. Why and How do you display a message?


A) Message is used to INFORM, WARN, EXIT with MSG, or CANCEL with MSG in a
transaction. Message is displayed using:MESSAGE xnnn
Where x is Type and nnn is the number of message. In addition Message class is set at
Program name line, e.g., PROGRAM xyz MESSAGE-ID cc where cc is message class.
86. What are various message types?
A) I-Info, W-Warning, E-Error, A-Abend, S-Success.
87. How do you create Message class?
A) Tools Case Development Program maintenance Messages
Enter name and go to next screen to enter messages.
88. What is BDC?
A) Batch Data Communication. Batch Input is a SAP method for transfering data into
SAP System. The transfer consists of two phases:
1) Create the batch input data for the target SAP system (ASCII data files are
specially prepared for SAP batch input processing),
2) Processing the batch input data in the target system.

Page 63 of 146

ABAP FAQ
89. Where did you use it?
A) Exported data from the legacy system to new SAP system. In Purchasing, you can
import vendor data and other information about vendors can be brought over to the new
system using this technique.
90. Can you explain how you imported data to the new system?
A) First step in this BDC is preparing data for the target SAP system (A
SCII data files).
Second step is to process data file and insert into SAP system. For example if you
want to get all customers information including general data and others. If you do
not have this technique, you need to key in all the information manually using SAP
screens. Using this technique, what you need to do is remember or note down all key
sequences including entering data and pressing Function keys or Push buttons to save
the data and move on to the next screens. You need to simulate same sequences using
BDC. For data entry you need to read in record by record from the data file and
assign those field values on the screen and simulate function keys to save data. That
way system will check referential integrity and other checks. The reason this is
normally run off line is, performance wise this is so slow because it has to load each
screen. Other alternative to these loading tables directly but SAP does not
recommend that because in some cases referential integrity is violated. That is how
you import the data using BDC.
NOTE: BDC does not always mean that it is used for importing data and that is it. You
can run any time intensive or laborious tasks (Off line) using this technique. For example
Monthly reports, no body needs to be there to run this you can schedule a Batch Job.
91.

What has to be done to the packed fields before submitting to a BDC session?

92.

What is the structure of BDC sessions?

93.

What are the fields in a BDC_TAB table?

94.

Did you use full graphical user interface in SAP R/3?

95.

What are the versions you have worked?

96.

How do you find the string length of a variable?

Page 64 of 146

ABAP FAQ
97.
98.

What do you define in the domain and data element?


What is the difference between a pool table and transparent table and how they
are stored at the database level. II. What are the functional modules you have strong
background?

99.

What is the difference between Structure and Internal table?

100. What is a Transaction for Job definition, Explain those 3 modes when you run
BDC Program?
101. Call Transaction Modes A, N, E. Explain?
102. Check statement, how it works?
103. Difference between Append and Collect statement?
104. How do you populate internal table?
105. Syntax to create Internal Table. When you use occur parameter?
106. Debugging a program, How you set break points?
107. Explain Field Groups?
108. What is a field symbol?
109. Transaction code for Menu Painter?
110.

Transaction for Screen Painter? What is flow logic? Explain.

111.

Transaction code for MM creation?

112. Transaction for Sales Order (S/D) Create, display and Change?
113.
Transaction for Delivery (S/D) Create, Display and Change?
114.

Where you specify logical database, when you are using tables in a program?

Page 65 of 146

ABAP FAQ
115. If you want to run two programs within one program, how do you run another
program instead of opening another session?
116.

Give some system fields?

117.

At-line-selection how it works. Which system field contains information?

118.

How do you declare and call subroutines?

119.

What is the difference between Move and assign statement?

True/False

1. SAP offers standard batch interface programs with dynamic record layout
capability?
2. SAP standard batch input programs structure descriptions are in the Data
Dictionary?
3. Data analysis should proceed data transfer?
4. All data conversion must take place prior to the data transfer?
5. The parameters MODE and UPDATE are optional?
6. The BDC table has a different layout for the CALL TRANSACTION?
7. A file can be transferred from the presentation server?
Study Questions & Answers for SAP Partner Academy

1.
What is the purpose of SAP Dispatcher?
A) Manages the resources for the R/3 Applications. Distributes work to the work
processes.
Main Tasks:
Equal distribution of transaction load to the work processes.
Management of buffer areas in main memory.
Integration of the presentation level.
Organisation of communication activities.
2.

There are five specialized work processes. What are they? And which task do they
control?
a) Online Processes one dialog step and then is available for next request.
b) Enqueue A locking mechanism to prevent the applications from interfering with
each other when accessing data.
c) Update To trigger database changes.
d) Background Used to plan the start of ABAP/4 programs.

Page 66 of 146

ABAP FAQ
e) Spool Spool requests are generated online or during background processing and
placed in a spool database with information about the printer a print format.
3.
What function does the message server perform?
A) Exchanges short internal messages (Ex. Triggering work processes).
4.

What enables communications between R2, R3, and external applications using
the CPI-C protocol?
A) SAP Gateway.

SAP R/3 ARCHITECTURE


1. What guarantees the integration of all application modules?
- The R/3 basis system guarantees the integration of all application modules.
The R/3 basis software 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.
2. What are the central interfaces of the R/3 system ?
Presentation interface
Database interface
Operating system interface
3. Which interface controls what is shown on the p.c. ?
Presentation interface
4. Which interface converts SQL requirements in the SAP development system to
those of the database ?
Database interface
5. What is SAP dispatcher ?
- SAP dispatcher is the control agent which manages the
resources for the R/3 applications.
6. What are the functions of dispatcher ?
- Equal distribution of transaction load to the work processes

Page 67 of 146

ABAP FAQ
Management of buffer areas in main memory
Integration of the presentation levels
Organization of communication activies
7. What is a work process ?
- A work process is where individual dialog steps are actually processed
and the work is done. Each work process
handles one type of request.
8. Name various work processes of R/3 system ?
- Dialog or Online ( processes only one request at a time )
Background ( started at a specified time )
Update ( primary or secondary )
Enque( lock mechanism )
Spool ( generated online or during back ground processing
For printing )
9. Explain about the two services that are used to deal with communication .
- 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.
10. Which work process triggers database changes ?
- Update work process
11. Define service( within R/3) ?
- 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.
12. What are the roll and page areas ?
- 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 received. If
the work process is unavailable the process requests are queued in the roll
and page areas.
Paging area holds data from the application programs.

Page 68 of 146

ABAP FAQ
Roll area holds data from previous dialog steps and data that characterizes the
user.
13. What are the different layers in R/3 system ?
- Presentation layer
Application layer
Database layer
14. What are the phases of background processing ?
- Job scheduling
Job processing
Job overview
15. What components of the R/3 system initiates the start of
background jobs at the specified time ?
- The batch scheduler initiates the start of background job.
The dispatcher then sends this request to an available background
work process for processing.

16. Define Instance.


An instance is an administrative unit in which components of an R/3 system
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 a seperate
buffer areas.
17. From hardware perspective, every information system can be divided into three task
areas Presentation, Application Logic and Data storage.
The R/3 Basis software is highly suitable for use in multi-level client/server
architectures.
18. What are R/3 Basis configurations ?

Page 69 of 146

ABAP FAQ
-

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 seperate computers.

19. What is a Service in SAP terminology ?


- A service refers to something offered by a software component.
20. What is a Server in SAP terminology ?
- A component can consist of one process or a group of processes and is then called
the server for the respective service.
21. What is a client in SAP terminology ?
- A software component that use the service (offered by a software component) is
called a Client. At the same time these clients may also be servers for other
services.
22. What is a SAP System ?
- The union of all software components that are assigned to the same database is
called as a SAP system.
23. What is the means of communications between R/3 and external applications ?
- 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.
24. What is the protocol used by SAP Gateway process ?
- The SAP Gateway process communicate with the clients based on the TCP/IP
Protocol.
25. Expand CPI-C .
- Common Program Interface Communication.
26. What is a Spool request ?
- 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 placed in the Tem Se (Temporary Sequential objects).

Page 70 of 146

ABAP FAQ
27. What are different type of Log records?
- V1 and V2. V1 must be processed before V2. But, we can have more than one V2
logs.
28. What are the types of Update requests ?
- 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 are less critical are placed in V2 components. If a V1
update fails, V2 compnents will not be processed.
29. Dialog work processes perform only one dialog step and then available for the next
request.
30. Explain what is a transaction in SAP terminology.
- In SAP terminology, a transaction is series of logically connected dialog steps.
31. Explain how SAP GUI handles output screen for the user.
The SAP front-end software 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 co-ordinates 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 recieved data and generates the output screen for the user.
32. SQL used in ABAP/4 is known as ____________.
OPEN SQL.
33. What is the transport protocol used in R/3 system ?
TCP/IP Transmission Control Protocol / Internet Protocol.
34. What is isolated Database server ?
Server which is not accessible from the front end.

Page 71 of 146

ABAP FAQ

DATA DICTIONARY
1. What are the layers of data descriptions in R/3?
The external layer
The ABAP/4 layer
The database layer
2. Define external layer.
The external layer is the plane at which the user sees and interacts
With the data, that is, the data format in the user interface. This data
Format is independent of the database system used.
3. Define ABAP/4 layer?
The ABAP/4 layer describes the data formats used by the ABAP/4 processor.
4. Define Database layer ?
The database layer describes the data formats used in the database.
5. What is a Data Class?
The Data class determines in which table space the table is stored when it
is created in the database.
6. What is a Size Category?
The Size category describes the probable space requirement of the table
in the database.
7. How Many types of size categories and data classes are there?
There are five size categories (0-4) and 11 data classes, only three of
which are appropriate for application tables:
- APPL0 - Master data (data frequently accessed but rarely updated)
- APPL1 - Transaction data (data that is changed frequently)
- APPL2 - Organizational data (customizing data that is entered when system is
Configured and then rarely changed)
The other two types are:
- USR
- USR1 - Intended for customers own developments
8. What are control tables?

Page 72 of 146

ABAP FAQ
The values specified for the size category and data class are mapped to
database-specific values via control tables.
9. What is the function of the transport system and workbench organizer?
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.
10. What is a table pool?
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 keys
Fields and a long argument field (VARDATA).
11. What are pooled tables?
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).
12. What is a table cluster?
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.
13. How can we access the correction and transport system?
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.
14. Which objects are independent transport objects?
Domains, Data elements, Tables, Technical settings for tables,
Secondary indexes for transparent tables,Structures, Views,
Match code objects, Match code IDs,Lock objects.
15. How is conversion of data types done between ABAP/4 & DB layer?
Conversion between ABAP/4 data types and the database layer is
done within the database interface.

Page 73 of 146

ABAP FAQ
16. How is conversion of data types done between ABAP/4 & external level?
Conversion between the external layer and the ABAP/4 layer is done in the SAP
dialog manager DYNP.
17. What are the Data types of the external layer?
ACCP, CHAR, CLNT, CUKY, CURR, DATS, DEC, FLTP, INT1, INT2, INT4,
LANG, LCHR, LRAW, NUMC, PREC, QUAN, RAW, TIMS, UNIT, VARC.

18. What are the Data types of the ABAP/4 layer?


Possible ABAP/4 data types:
C: Character.
D: Date, format YYYYMMDD.
F: Floating-point number in DOUBLE PRECISION (8 bytes).
I: Integer.
N: Numerical character string of arbitrary length.
P: Amount or counter field (packed; implementation depends on hardware
platform).
S: Time stamp YYYYMMDDHHMMSS.
T: Time of day HHMMSS.
V: Character string of variable length, length is given in the first
two bytes.
X: Hexadecimal (binary) storage.
18. How can we set the tablespaces and extent sizes ?
You can specify the extent sizes and the tablespace (physical storage
area in the database) in which a transparent table is to be stored by
setting the size category and data class.
19. What is the function of the correction system?
The correction system manages changes to internal system components,
such as objects of the ABAP/4 Dictionary.

Page 74 of 146

ABAP FAQ
20. What are local objects?
Local objects (Dev class $TMP) are independent of correction and
transport system.
21. What is a Development class?
Related objects from the ABAP/4 repository are assigned to the same
development class.This enables you to correct and transport related
objects as a unit.
22. What is a data dictionary ?
Data dictionary is a central source of data in a data management system. Its main
function is to support the creation and management of data definitions. It has details
about
- What data is contained ?
- What are the attributes of the data ?
- What is the relationship existing between the various data elements ?

23. What functions does a data dictionary perform ?


In a data management system, the principal functions performed by the data
dictionary are
- Management of data definitions
- Provision of information for evaluation
- Support for software development
- Support form documentation
- Ensuring that the data definitions are flexible and up-to-date.
24. What are the features of ABAP/4 Dictionary ?
The most important features are :
- Integrated to ABAP/4 Development Workbench
- Active in the runtime environment
25. What are the uses of the information in the Data dictionary ?
The following information is directly taken from the Data dictionary :
- Information on fields displayed with F1 help
- Possible entries for fields displayed with F4 help

Page 75 of 146

ABAP FAQ
- Matchcode and help views search utitlities.
26.What are the basic objects of the data dictionary ?
- Tables
- Domains
- Data elements
- Structures
- Foreign keys
27. What are the aggregate objects in the data dictionary?
- Views
- Matchcodes
- Lock objects
28.In the ABAP/4 Dictionary Tables can be defined independent of the underlying
database (T/F)
True
29. ABAP/4 Dictionary contains the Logical _ (Logical/Physical) definition of the table.
30. A field containing currency amounts (data type CURR) must be assigned to a
reference table and a reference field. Explain.
As a reference table, a system table containing all the valid currencies is assigned or any
other table which contains a field with the currency key format. This field is called as
reference field.
The assignment of the field containing currency amounts to the reference field is made at
runtime. The value in the reference field determines the currency of the amount.
31. A field containing quantity amounts (data type QUAN) must be assigned to a
reference table and a reference field. Explain.
As a reference table, a system table containing all the valid quantity units is assigned or
any other table which contains a field with the format for quantity units (data type UNIT).
This field is called as reference field.
The assignment of the field containing quantity amounts to the reference field is made at
runtime. The value in the reference field determines the quantity unit of the amount.
32. What is the significance of Technical settings (specified while creating a table in the
data dictionary) ?

Page 76 of 146

ABAP FAQ
By specifying technical settings we can control how database tables are created in the
database.
The technical settings allows us to
- optimize storage space requiremnets
- table access behaviour
- buffering required
- changes to entries logged
33.What is a Table attribute ?
The table attributes determine who is responsible for maintaining a table and which types
of access are allowed for the table. The most important table attributes are:
a. Delivery class
b. Table maintenance allowed
c. Activation type.
34. What is the significance of Delivery Class ?
- The delivery class controls the degree to which the SAP or the customer is
responsible for table maintenance
- whether SAP provides the table with or without contents.
- determines the table type.
- determines how the table behaves when it is first installed, at upgrade, when it
is transported, and when a client copy is performed.
35. What is the maximum number of structures that can be included in a table or structure
- Nine.
36. What are the two methods of modifying Sap standard tables ?
- Append Structures and
- Customizing Includes.
39. What is the difference between a Substructure and an Append Structure ?
- In case of a substructure, the reference originates in the table itself, in the forma
of a statement .include... .
- In case of an append structure, the table itself remains unchanged and the
refrence originates in the append structure.
40. To how many tables can an append structure be assigned ?
- One.

Page 77 of 146

ABAP FAQ
41. If a table that is to be extended contains a long field, we cannot use append structures.
Why?
Long fields in a table must always be located in the end, as the last field of the table. If a
table has an append structure the append line must also be on the last field of the table.
42.Can we include customizing include or an append structure with Pooled or Cluster
tables ?
- No.
43. What are the two ways for restricting the value range for a domain ?
- By specifying fixed values.
- By stipulating a value table.
44. Structures can contain data only during the run time of a program (T/F)
- True.
45. What are the aggregate objects in the Dictionary?
- Views
- Match Code
- Lock object
46.What are base tables of an aggregate object?
The tables making up an aggregate object (primary and secondary) are called aggregate
object.
47.The data of a view is not physically stored, but derived from one or more tables. (T/F).
-True.
48. What are the 2 other types of Views, which are not allowed in Release 3.0?
- Structure Views
- Entity Views.
49. What is a Match Code?
Match Code is a tool to help us to search for data records in the system. Match codes are
an efficient and user-friendly search aid where key of a record is unknown.
50. What are the two levels in defining a Match Code?
- Match Code object
- Match Code Id.

Page 78 of 146

ABAP FAQ
51. What is the maximum number of match code Id's that can be defined for one Match
code object ?
- 36. A match code Id is a one character ID that can be a letter or a number.
52. . Can we define our own Match Code ID's for SAP Matchcodes ?
Yes, the numbers 0 to 9 are reserved for us to create our own Match Code IDs for a SAP
defined Matchcode object.

53. What is an Update type with reference to a Match code ID?


If the data in one of the base tables of a matchcode ID changes, the matchcode data has to
be updated. The update type stipulates when the matchcode is to be updated and how it is
to be done. The update type also specifies which method is to be used for Building
matchcodes . You must specify the update type when you define a matchcode ID.
54. Can matchcode object contain IDs with different update types ?
- Yes.
55. What are the update types possible ?
The following update types are possible:
Update type A: The matchcode data is updated asynchronously to database
changes.
- Update type S: The matchcode data is updated synchronously to database
changes.
- Update type P: The matchcode data is updated by the application program.
- Update type I: Access to the matchcode data is managed using a database view.
- Update type K: Access to the matchcode is achieved by calling a function
module.
56. What are the two different ways of building a match code object ?
A match code can be built in two different ways :
- Logical structure : The matchcode data is set up temporarily at the moment
when the match code is accessed. (Update type I, K)
- Physical structure : The match code data is physically stored in a seperate table
in the database. (Update type A, S, P)
57. What are the differences between a Database index and a match code ?

Page 79 of 146

ABAP FAQ
- Match Code can contain fields from severeal tables whereas an index can
contain fields from only one table.
- Match code objects can be built on transparent tables and pooled and cluster
tables.
58. What is the function of a Domain?
- A domian describes the technical settings of a table field.
- A domain defines a value range, which sets the permissible data values for the
fields, which refers to this domain.
- A single domain can be used as basis for any number of fields that are identical in
structure.
59. Can you delete a domain which is being used by data elements ?
- No.
60. What are conversion routines ?
- Non standard conversions from display format to sap internal format and viceversa are implemented with so called conversion routines.
61. What is the function of a data element ?
- A data element describes the role played by a domain in a technical context. A
data element contains semantic information.
62. Can a domain, assigned to a data element be changed ?
Yes. We can do so by just overwriting the entry in the field domain).
63. Can you delete data element which is being used by table fields .
- No.
64. Can you define a field without a data element ?
- Yes. If you want to specify no data element and therefore no domain for a field,
you can enter data type and field length and a ashort text directly in the table
maintenance.
65. What are null values ?
- If the value of a field in a table is undefined or unknown, it is called a null value.
66. What is the difference between a structure and a table ?

Page 80 of 146

ABAP FAQ
-

Structures are constructed the almost the same way as tables, the only difference
using that no database table is generated from them.

67. What is a View ?


- A view is a logical view on 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.
68. How many types of Views are there ?
- Database View
- Help View
- Projection View
- Maintenance View
69. What is Locking ?
- When two users simultaneously attempt to access the same data record, this is
synchronised by a lock mechanism.
70. What is database utility ?
Database utility is the interface betweenn the ABAP/4 Dictionary and the
underlying the SAP system.
71. What are the basic fucntions of Database utility ?
The basic functions of database utility are :
- Create database objects
- Delete database objects
- Adjust database objects to changed ABAP/4 dictionary definition.
72. What is Repository Info. Systems ?
It is a tool with which you can make data stored in the ABAP/4 Dictionary available.

MODULARIZATION
1. Does every ABAP/4 have a modular Structure?

Page 81 of 146

ABAP FAQ

Yes

2. 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.
3.

B
C

Name the ABAP/4 Modularization techniques.


A. Source code module
B. Subroutines.
C. Functions.

4. How can we create callable modules of program code within one ABAP/4 Program?
A. By defining macros.
B. By creating include programs in the library.
5. _____ is the attribute type of the module program.
M
6. Is it posible to pass data to and from include programs explicitly?
No. If it is required to pass data to and from modules it is required to use subroutines
or function modules.
7. What are subroutines?
Subroutines are program modules which can be called from other ABAP/4 programs
or within the same program.
8. What are the types of Subroutines?

A. Internal Subroutines: The source code of the internal subroutines will be in the
same ABAP/4 program as the calling procedure (internal call).
B. External Subroutines: The source code of the external subroutines will be in an
ABAP/4 program other than the calling procedure.
9. It is not possible to create an ABAP/4 program which contains only Subroutines.
( True / False)

Page 82 of 146

ABAP FAQ

False.

10. A subroutine can contain nested form and end form blocks. (True / False)
False.
11. Data can be passed between calling programs and the subroutines using ________.
Parameters.
12. What are the different types of parameters?
Formal parameters: Parameters that are defined during the definition of subroutine
with the FORM statement.
Actual parameters: Parameters which are specified during the call of a subroutine
with the PERFORM statement.
13. How can one distinguish between different kinds of parameters?
A. Input parameters are used to pass data to subroutines.
B. Output parameters are used to pass data from subroutines.
14. What are the different methods of passing data?

A. Calling by reference: During a subroutine call, only the address of the actual
parameter is transferred to the formal parameters. The formal parameter has no
memory of its own, and we work with the field of the calling program within the
subroutine. If we change the formal parameter, the field contents in the calling
program also change.
B. Calling by value: During a subroutine call, the formal parameters are created as
copies of the actual parameters. The formal parameters have memory of their
own. Changes to the formal parameters have no effect on the actual parameters.
C. Calling by value and result: During a subroutine call, the formal parameters are
created as copies of the actual parameters. The formal parameters have their own
memory space. Changes to the formal parameters are copied to the actual
parameters at the end of the subroutine.
15. The method by which internal tables are passed is ___________.
By Reference.

Page 83 of 146

ABAP FAQ
16. How can an internal table with Header line and one without header line be
distinguished when passed to a subroutine?
Itab[ ] is used in the form and endform if the internal table is passed with a header
line.
17. What should be declared explicitly in the corresponding ABAP/4 Statements to
access internal tables without header lines & why?
Work Area. This is required as the Work Area is the interface for transferring data to
and from the table.
18. A subroutine can be terminated unconditionally using EXIT. (TRUE / FALSE)
True.
19. A subroutine can be terminated upon a condition using _____________.
CHECK Statement.
20. Function Modules are also external Subroutines. (TRUE / FALSE).
True.
21. What is the difference between the function module and a normal ABAP/4
subroutine?
In contrast to normal subroutines function modules have uniquely defined interface.
Declaring data as common parts is not possible for function modules. Function
modules are stored in a central library.
22. What is a function group?
A function group is a collection of logically related modules that share global data
with each other. All the modules in the group are included in the same main program.
When an ABAP/4 program contains a CALL FUNCTION statement, the system loads
the entire function group in with the program code at runtime. Every function module
belongs to a function group.
23. What is the disadvantage of a call by reference?
During a call by reference damage or loss of data is not restricted to the subroutine,
but will instantly lead to changes to the original data objects.

Page 84 of 146

ABAP FAQ
24. A function module can be called from a transaction screen outside an ABAP/4
program. (TRUE /FALSE)
TRUE.
25. What is an update task?
It is an SAP provided procedure for updating a database.
26. What happens if a function module runs in an update task?
The system performs the module processing asynchronously. Instead of carrying out
the call immediately, the system waits until the next database update is triggered with
the COMMIT WORK command.
27. The function modules are created and stored in the ______________.
Function Library.
28. When a function module is activated syntax checking is performed automatically.
(TRUE / FALSE)
TRUE.
29. What is the use of the RAISING exception.
The raising exception determines whether the calling program will handle the
exception itself or leave the exception to the system.
30. What is the difference between internal tables and extract datasets?

A. The lines of an internal table always have the same structure. By using extract
datasets, you can handle groups of data with different structure and get statistical
figures from the grouped data.
B. You have to define the structure of the internal table at the begining. You need not
define the structure of the extract dataset.
C. In contrast to internal tables, the system partly compresses extract datasets when
storing them. This reduces the storage space required.
D. Internal tables require special work area for interface whereas extract datasets do
not need a special work area for interface.
31. It is possible to assign a local data object defined in a subroutine or function module
to a field group. (TRUE / FALSE)

Page 85 of 146

ABAP FAQ

FALSE.

32. What is the difference between field-group header and other field groups?
The header field group is a special field group for the sort criteria. The system
automatically prefixes any other field groups with the header field group.
33. Can a field occur in several field groups.
Yes. But it leads to unnecessary data redundancy.
34. When sorting the extract dataset the fields used as default sort key lie in the
_____________.
Header field group.
35. What does the insert statement in extract datasets do?
It defines the fields of a field group.
36. What does the extract statement do in extract datasets?
The data is written to virtual memory by extract commands.
37. A field-groups statement or an insert statement reserves storage space and transfers
values. (TRUE / FALSE)
FALSE.
38. While using extract datasets it is required to have a special work area for interface.
(TRUE / FALSE).
FALSE.
39. The LOOP-ENDLOOP on extract datasets can be used without any kind of errors.
(TRUE / FALSE).
FALSE. It causes runtime errors.
40. The Maximum no of key fields that can be used in a header is _____________.
50.

Page 86 of 146

ABAP FAQ
41. While sorting field groups we cannot use more than one key field. (TRUE / FALSE)
FALSE.
42. While sorting, if the main storage space available is not enough, the system writes
data to an external help file. The SAP profile parameter, which determines this help
file, is _________________.
DIR_SORTTMP.
43. The extract statements in field groups can be used before or after processing the sort
statements. (TRUE / FALSE).
FALSE.

Page 87 of 146

ABAP FAQ

LOGICAL DATABASE
1. Preparation of the data records by the L.D.B and reading of the data records in the
actual report are accomplished with the command pair _________ and _________.
- Put and Get.
2. The three main elements of LDB are _____________.
- Structure, Selections, Database Program.
3. In LDB what determines hierarchy of the tables?
- Structure.
4. In general what are the two ways in which one can retrieve data from tables?
- Using Select statements and using LDB.
5. With LDB one can modify the pre-generated selection screen to their needs.
(True / False).
- Yes.
6. Logical databases are programs that read data from _________________.
- Database tables (Dictionary structures).
7. The event GET <table name> LATE process all tables that are hierarchically
superior to the < table name>.
(True / False).
- False. It processes all tables that are hierarchically inferior to the <table
name>.
8. The Database Program of LDB is a collection of __________________ which
selects the data and passes it to the report. (SUBROUTINES / FUNCTIONS ).
- Subroutines.
9. The layout of the Database program is determined by both ________________ and
_________________ .
- Structure and Selections.

Page 88 of 146

ABAP FAQ
10. The order in which data is made available to the report depends on ______________
of the LDB.
- Structure.
11. Apart from the structure and selections of the LDB the ____________ statements in
the report determines the behavior of the database at runtime.
- GET.
12. Node at the highest level in the structure is knows as ______________.
- Root.
13. There can be more than one node at the highest level in the structure.
( True /
False ).
- False. One can define only one node at the highest level in the structure on
LDB.
14. All nodes in the structure of LDB need not be defined in the ABAP/4 Dictionary.
(True / False).
- False. One has to define all nodes in the Dictionary or one has to select all
nodes that are defined in the Dictionary.
15. It is not possible to use ABAP/4 Dictionary Structures without an underlying
database using LDB.
(TRUE / False).
-

False. One can use additionally related tables, along with the tables defined in
the structure of LDB.

16. ________________ selections allow the user to define further selections for database
access in addition to the selection criteria already defined in the LDB selections.
-

Dynamic.

17. ________________ statement can be used along with the event GET in the report for
checking the selections which are not table-specific values.
-

Check.

18. In sense of Database Management System (DBMS) LOGICAL DATABASE is a


database.
(True / False).

Page 89 of 146

ABAP FAQ
-

False.

19. It is not necessary to maintain the Parent-Child relationship between the tables in
Logical Database Structure.
( True / False ).
-

False. One has to maintain the Parent-Child relationship.

20. Is it possible to extract data from tables without using the event GET in the report
with an appropriate LDB. ( True / False ).
-

False. One can extract data from tables using Select statements in a report,
though the report is having a LDB attribute.

21. What sort of tables one can use in designing the hierarchy of a LDB ?
- Tables which are having Foreign key relations.
22. A report program which uses only SELECT statements is called ___________
report. --- SQL Report .
23. One cannot use SELECT statements in a report
Logical Database.
( True / False ).
- False.

program

linked

to

24. Is it true that the Logical Database reads the data from the database tables using
Select Statements. ( True / False ).
- Yes. ( We are coding that in Database part of LDB ).
25. In a report with an LDB attribute, you do not have to define how the information
should be retrieved from the database tables, but only how the data should be
represeneted on the screen. ( True / False ).
-

True.

26. One can use the event GET in a report without LDB attribute.
True / False ).
-

False.

27. The last character of the LDB name denotes ___________________.


- Application.

Page 90 of 146

ABAP FAQ
28. The structure of Logical Databases reflects the ________________
of hierarchical tables in the SAP System.
- Foreign key

dependencies

29. It is mandatory that for each table in the LDB hierarchy there should exists one GET
statement in the report. ( True / False ).
-

False, it is not necessary.

30. What happens if a report does not contain a GET statement for a particular node of a
Logica Database.
-

Process will transfer to the next event.

31. In a Logical Database, one can define input fields on the selection screen with
_____________ and ____________ statements.
- Select-options & Parameters.
32. Suppose a logical database program contains the following lines:
SELECT-OPTIONS CONNID FOR SPFLI-CONNID.
PARAMETERS CARRID LIKE SFLIGHT-CARRID FOR TABLE
SFLIGHT.
SFLIGHT
If the tables statement in a report declares only SPFLI but not SFLIGHT what
will be the output, for the above two statements.
- Only select-options connid for spfli-carrid will be displayed on the screen.
33. Consider a report with F1S attribute, what will be the output for the following code.
Whether you will get the data from spfli and sflight or not, with corresponding
tables statement.
GET SBOOK.
Write: / spfli-carrid, spfli-connid, sflight-fldate, sbook-bookid.
- Yes, you will get the data from spfli and sflight.
34. Consider a report with F1S attribute, what will be the output of the following code.
Whether you will get the data from sbook or not, with corresponding
tables statement.
GET SPFLI.
GET SFLIGHT.
Write: / spfli-carrid, spfli-connid, sflight-fldate, sbook-bookid.
- You cannot extract data from sbook.

Page 91 of 146

ABAP FAQ
35. Identify any errors in the following code and correct the same, and what will be the
output, if there exists corresponding tables statement, for spfli, sflight, sbook.
GET SPFLI.
GET SBOOK.
Write : / spfli-carrid, spfli-connid, sflight-fldate, sbook-bookid,
sbook-class.
- No syntax errors. You will get data from all the three tables.
36. Does the following two statements do the same task ? If so which one takes takes
less time and which one is recomended.
SELECT * from spfli.
SELECT * from spfli.
Check : spfli-carrid = LH
Where spfli-carrid = LH
And
spfli-connid = 400.
And
spfli-connid = 400.
ENDSELECT.
ENDSELECT.
-

Yes they will do the same task. Second Select statement takes less time and it
is recomended.

37. If you want to improve the response time ( time to access data ) Logical DataBases
permits you to achieve this using __VIEWS____ .
38. Is there any upper limit (max) to the possible number of nodes in a logical database
structure ? If so what is that limit ?
-

Yes, there is an upper limit for defining number of nodes in a Logical


DataBase Structure.
Maximim nodes = 1200 / length.
Where length = maximum lenght of name in the structure.

39. In the structure of Logical DataBase nodes at different levels are displayed in the
same columns. ( True / False ). If false what type of nodes are displayed in the
same columns. If True what type of nodes are not displayed in the same columns.
- False. Nodes at same level are displayed in the same columns.
40. What are the advantages of Logical DataBases ?
-

It offers an easy-to-use selection screen.


You can modify the pre-generated selection screen to your needs.
It offers check functions to check whether user input is complete, correct,
and plausible.

Page 92 of 146

ABAP FAQ
It offers reasonable data selections.
It contains central authorization checks for database
accesses.
Enhancements such as improved performance immediately
apply to all report programs that use the logical database.
41. Though the all the ABAP/4 Dictionary Structures that exists in the structure of the
LDB, being defined in Database Program, we are defining the Dictionary
Structures in the Report. What is the reason for such a declaration?
-

By declaring so we are providing work areas for data passing between


Logical Database and Report. In addition, the logical database configures the
selection screen depending on the selection of database tables.

42. Is it mandatory to declare all the tables in Report by the key word tables for all the
tables that exists in the structure of LDB, and are being defined in the Database part
of LDB.
- No, it is not mandatory to declare all tables in report.
43. If one wants to access data using Logical DataBase, the use of events is unavoidable.
( True / False ).
- True .

Page 93 of 146

ABAP FAQ

REPORT GENERATION - FORMATTING


1. The alignment of a type 'c' field in a report is ______________.
Left Aligned.
2. In the statement Write:/ 15 (10) lfa1-lifnr. , what do the numbers 15 and 10 stand for.
15 stands for the offset on the screen and 10 stands for the field length displayed.
3. Specify the default alignment for the following field types:
' D ' --' F ' --' N ' --' I ' --' T ' -- Left, Right, Left, Right, Left, Right respectively.
4. If s_time has the value '123456' how would you get an output of 12:34:56 with a
single ' Write: statement?
Write: s_time using edit mask _ _:_ _:_ _.
5. In order to suppress the leading zeros of a number field the keywords used are
_______.
NO ZERO.
6. The total number of date formats that can be used to display a date during output is
________.
MM/DD/YY, DD/MM/YY, DD/MM/YYYY, MM/DD/YYYY, MMDDYY,
DDMMYY, YYMMDD.
7. The ___________ Command allows for vertical alignment of fields one below the
other.
UNDER.
8. In order to concatenate strings only for output purposes the command _________ can
be used in conjunction with the 'Write' statement.
NO-GAP.

Page 94 of 146

ABAP FAQ
9. The no of decimal places for output can be defined within a write statement. ( TRUE /
FALSE ).
TRUE. Write:/ <F> decimals 2.
10. Date can be moved from one field to another using a 'Write:' Statement and stored in
the desired format. (TRUE / FALSE).
TRUE. Write: Date_1 to Date_2 format DD/MM/YY.
11. In the statement
Write:/ 15 (10) lfa1-lifnr.
the values 15 and 11 can also be defined by variables ( TRUE / FALSE ).
FALSE.
12. Differentiate between the following two statements if any.
ULINE.
Write: sy-uline.
No-difference. Except that uline is used outside the Write Statement.
13. In order to skip a single line the number of lines need not be given as an argument
(TRUE / FALSE).
TRUE.
14. The "SKIP TO LINE line number" is dependent on the ____________statement
included in the report statement of the program.
LINE-COUNT.
15. In order to skip columns the command used is __________.
POSITION <n>.
16. In order to have boldfaced text as output the command used is _____________.
Write: <f> INTENSIFIED.
17. Background and foreground colors can be interchanged using the command
__________.
Format inverse.

Page 95 of 146

ABAP FAQ
18. In order to restore the system defaults for all changes made with the format statement
is
" Format Reset ". ( TRUE / FALSE ).
TRUE.
19. Like ULINE the statement VLINE is used to insert vertical lines. (TRUE / FALSE).
FALSE.
20. Suppressing the number signs (+ / -) is carried out using the addition NO-SIGNS to
the Write statement. ( TRUE / FALSE ).
FALSE.
21. If SY-UZEIT has the value 6:34:45 it can be displayed as 063445 using
_____________.
No Edit Mask.
22. If the variable "Text" has the value 'ABCDEF' the output for the statement Write:/
Text+2(3)will be ___________.
Very simple. Work it out.
23. The fields specified by select-options and parameters statement cannot be grouped
together in the selection screen. (TRUE / FALSE).
FALSE.
24. When calling an external report the parameters or select-options specified in the
external report cannot be called. (TRUE / FALSE).
FALSE.
25. _______________ In the text elements of the program helps in changing the
displayed names of variables in the parameters statement.
Selection Texts.
26. __________ Data type cannot be used to define parameters.
Type F.
27. Rounding off of values can be carried out using the write statement.
(TRUE / FALSE ).
TRUE.

Page 96 of 146

ABAP FAQ
28. How would you define the exponents for a type ' f ' field ?
Exponent <e>.
29. How would you format the output as left, centered or right-justified using the write
statement.
Left-justified,
Centered,
Right-justified.
30. If the same formatting options were used for a WRITE statement that follows the
FORMAT statement, which settings would take precedence?
The settings in the Write Statement.
31. For each new event, the system resets all formatting options to their default values.
(TRUE / FALSE).
TRUE.
32. All formatting options have the default value OFF. (TRUE / FALSE).
TRUE.
33. How would you set the formatting options statically and dynamically within a report?
Statically:
FORMAT <option1> [ON|OFF] <option2> [ON|OFF]....
Dynamically:
FORMAT <option1> = <var1> <option2> = <var2>....
34. The page footer is defined using the statement _________________.
END-OF-PAGE.
35. The processing block following END-OF-PAGE is processed only if you reserve
lines for the footer in the LINE-COUNT option of the REPORT statement.
(TRUE / FALSE ).
TRUE.
36. To execute a page break under the condition that less than a certain number of lines is
left on a page is achieved by ________________________.
RESERVE n lines.

Page 97 of 146

ABAP FAQ
37. The RESERVE statement only takes effect if output is written to the subsequent page.
No blank pages are created and it defines a block of lines that must be output as a
whole. ( TRUE / FALSE)
TRUE.
38. To set the next output line to the first line of a block of lines defined with the
RESERVE statement the statement _______________ is used.
BACK.
39. What is the limit for the length of a page if the page length is not specified in the
report statement?
60,000 Lines.
40. How would you start the printing process from within the program while creating a
list?
NEW-PAGE PRINT ON.
41. You can change the width of pages within list levels triggered by page breaks.
(TRUE / FALSE).
FALSE.
42. Hotspots are special areas of an output list used to trigger events. (TRUE /FALSE).
TRUE.
43. To designate fields as hotspots at runtime, use _________________.
FORMAT HOTSPOT = <h>.
44. Horizontal lines created with ULINE and blank lines created with SKIP can be
formatted as hotspots.
(TRUE / FALSE).
FALSE.
45. How would you suppress the display of a parameter on the selection screen ?
Parameters <p> ............. No-Display.
46. Can you assign a matchcode object to a parameter? If so how?
Yes. PARAMETERS <p> ... MATCHCODE OBJECT <obj> ...

Page 98 of 146

ABAP FAQ
47. For each SELECT-OPTIONS statement, the system creates a selection table.
(TRUE / FALSE ).
TRUE.
48. To position a set of parameters or comments on a single line on the selection screen,
you
must
declare
the
elements
in
a
block
enclosed
by
____________________________________________.
SELECTION-SCREEN BEGIN OF LINE.
...
SELECTION-SCREEN END OF LINE.
49. How can Symbols or R/3 icons be output on the screen?
WRITE <symbol-name> AS SYMBOL.
WRITE <icon-name> AS ICON.
50. In the standard setting, you cannot create empty lines with the WRITE statement
alone.
(TRUE / FALSE)
TRUE.

REPORTING GENERAL.
1. The system field, which indicates success or failure of a SQL operation, is

__________.
SY-SUBRC.
2. What is the syntax for specifying database table name at runtime in SELECT

statement?
NAME = 'SPFLI'.
SELECT * FROM (NAME).
--------------------------ENDSELECT.
3. How do you read selected lines of database table into an internal table in packages of

predefined size?
SELECT * FROM <SPFLI> INTO TABLE <ITAB> PACKAGE SIZE <N>.

Where 'n' is variable.

Page 99 of 146

ABAP FAQ
4. Name the WILDCARD characters which are used for comparisons with character

strings & numeric strings.


'% And '_'.
5. In SELECT statements can you specify a variable in WHERE condition or a part of

the condition, if so what is syntax.


SELECT * FROM <table> WHERE <var1> <condition> <var or const>.
6. Name the ABAP/4 key words, which are used to change the contents of database

table.
UPDATE or MODIFY.
7. How to specify a client for database table processing.
TABLES SPFLI.
SELECT * FROM SPFLI CLIENT SPECIFIED
WHERE MANDT BETWEEN '001' AND '003'.
...
ENDSELECT.
8. How do you write a DATA object from ABAP/4 program to ABAP/4 memory and

restore the same from memory to program.


EXPORT <f1> [FROM <g1>] <f2> [FROM <g2>] ... TO MEMORY ID <key>.
The ID <key>, which can be up to 32 characters long, identifies the data in memory.
9. What are DATA CLUSTERS?
You can group any complex internal data objects of an ABAP/4 program together in data
clusters and store them temporarily in ABAP/4 memory or for longer periods in databases.
You can store data clusters in special databases of the ABAP/4 Dictionary. These databases
are known as ABAP/4 cluster databases and have a predefined structure. Storing a data
cluster is specific to ABAP/4. Although you can also access cluster databases using SQL
statements, only ABAP/4 statements are able to decode the structure of the stored data cluster.
10. Statement used to delete data objects in ABAP/4 memory __________________.
FREE MEMORY [ID <key>].
11. How will you create a file on application server
Open dataset <dsn> for output.
12. ABAP/4 statement for opening a file on application server for reading ___________.

Open dataset <dsn> for input.

Page 100 of 146

ABAP FAQ

13. How will you transfer data into a file in application server ?
Data fname(60) value 'mYFILE'.
Data num type i.
Open dataset fname for output.
Do 10 times.
Num = Num + 1.
Transfer num to fname.
Enddo.

...Etc.
14. Name the function modules to write data from an Internal Table to the Presentation

Server.
DOWNLOAD and WS_DOWNLOAD.
15. Name the function modules to read data from Presentation Server into an

Internal

Table.
UPLOAD and WS_UPLOAD.
16. Name the function module that can be used to give information about files on

Presentation Server and about it's Operating System.


WS_QUERY.
17. Name the ABAP/4 key word, which is used to clear the Header line of an Internal

Table.
CLEAR <itab>.
18. Name the ABAP/4 key words to initialize an Internal Table with and without header

line.
REFRESH <itab>.
19. How to determine the attributes of an internal table?
DESCRIBE TABLE <itab> [LINES <lin>] [OCCURS <occ>].
20. Name the ABAP/4 key word for searching a string in an Internal Table.
SEARCH <itab> FOR <str> <options>.
The different options (<options>) for the search in an internal table are:

Page 101 of 146

ABAP FAQ
ABBREVIATED
Searches table <itab> for a word containing the character string specified in <str>, where the
characters might be separated by other characters. The first letter of the word and the string
<str> must be the same.
STARTING AT <lin1>
Searches table <itab> for <str>, starting at line <lin1>. <lin1> can be a variable.
ENDING AT <n2>
Searches table <itab> for <str> up to line <lin2>. <lin2> can be a variable.
AND MARK
If the search string is found, all the characters in the search string (and all the characters in
between when using ABBREVIATED) are converted to upper case.
21. What are the different attributes that can be assigned to a variant?

The different attributes that can be assigned to a variant are...


Description
Enter a short, meaningful description of the variant. This may be up to 30 characters long.

Background only
Specify whether you want to use the variant in background processing only, or in online environment as well.

Protected variant
Mark this field if you want to protect your variant against being changed by other users.

Do not display variant


Mark this field if you want the variant name to be displayed in the catalog only, but not in the F4 value list.

For the selections you cover in a variant, you can enter the following attributes:
Type
The system displays whether the field is a parameter or a select option.

Protected
Mark this field for each field on the selection screen you want to protect from being overwritten. Values that you mark this way
are displayed to the users, but they cannot change them, that is they are not ready to accept input.

Invisible
If you mark this column, the system will not display the corresponding field on the selection screen the user sees when starting
the report program.

Variable
Mark this column if you want to set the value for this field at runtime.

Page 102 of 146

ABAP FAQ
22. Is it possible to create new dynamic programs during runtime of an ABAP/4

program? If so how?
To create new dynamic programs during the runtime of an ABAP/4 program, you must use an
internal table. For this purpose, you should create this internal table with one character type
column and a line width of 72. You can use any method you like from Filling Internal Tables
to write the code of your new program into the internal table. Especially, you can use internal
fields in which the contents are dependent on the flow of the program that you use to create a
new one, to influence the coding of the new program dynamically. The following example
shows how to proceed in principal:
DATA CODE(72) OCCURS 10.
APPEND 'REPORT ZDYN1.'
TO CODE.
APPEND 'WRITE / ''Hello, I am dynamically created!''.'
TO CODE.
Two lines of a very simple program are written into the internal table CODE.
In the next step you have to put the new module, in the above example it is a report, into the
library. For this purpose you can use the following statement:
Syntax
INSERT REPORT <prog> FROM <itab>.
The program <prog> is inserted in your present development class in the R/3 Repository. If a
program with this name does not already exists, it is newly created with the following
attributes:
Title: none,
Type: 1 (Reporting),
Application: S (Basis).
You can specify the name of the program <prog> explicitly within single quotation marks or
you can write the name of a character field, which contains the program name. The name of
the program must not necessarily be the same as given in the coding, but it is recommended
to do so. <itab> is the internal table containing the source code. For the above example you
could write:
INSERT REPORT 'ZDYN1' FROM CODE.
or
DATA REP(8).
REP = 'ZDYN1'
INSERT REPORT REP FROM CODE.

Page 103 of 146

ABAP FAQ
23. Data types can be elementary or structured (TRUE/ FALSE)
TRUE.
24. The amount of memory associated with a data type is ___________
ZERO.
25. Data objects are the physical units a program uses at runtime. (TRUE / FALSE).
TRUE.
26. The data object does not occupy any space in memory. (TRUE / FALSE).
FALSE.
27. What are the three hierarchical levels of data types and objects?
program-independent data, defined in the ABAP/4 Dictionary
internal data used globally in one program
data used locally in a procedure (subroutine, function module)
28. How would you find the attributes of a data type or data object?
DESCRIBE FIELD <f> [LENGTH <l>] [TYPE <t> [COMPONENTS <n>]]
[OUTPUT-LENGTH <o>] [DECIMALS <d>]
[EDIT MASK <m>].
29. The components of a field string cannot have different data types. (TRUE / FALSE).
FALSE.
30. Field strings are also called as __________________________.
Records or Structures.

31. If a field string is aligned (Left, centered, right justified etc.), the filler fields are also

added to the length of the type C field. (TRUE / FALSE).


TRUE.
32. You cannot assign a local data object defined in a subroutine or function module to a

field group. (TRUE / FALSE).


TRUE.
33. A field group reserves storage space for the fields, and does not contain pointers to

existing fields. (TRUE / FALSE).


FALSE.

Page 104 of 146

ABAP FAQ
34. Defining a field group as HEADER is optional. ( TRUE / FALSE).
FALSE.
35. How would you define a field symbol ?
FIELD-SYMBOLS <FS>.
36. Which function module would you use to check the user's authorization to access files

before opening a file?


AUTHORITY_CHECK_DATASET
37. Name the function module used to convert logical file names to physical file names in

ABAP/4 programs.
FILE_GET_NAME.
38. Parameters, which are defined during the definition of a subroutine with the FORM

statement, are called ____________________.


Formal Parameters.
39. Parameters which are specified during the call of a subroutine with the PERFORM

statement are called ___________________.


Actual Parameters.
40. In subroutines internal tables that are passed by TABLES, are always called by value

and result. (TRUE / FALSE)


FALSE. They are called by reference.

INTERACTIVE REPORTING
1. What is interactive reporting?
A. Interactive reporting 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.

2. What are the uses of interactive reporting?

Page 105 of 146

ABAP FAQ
A. With interactive reporting, 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.

3. What are the event key words in interactive reporting?


A.
Event keyword

Event

AT LINE-SELECTION

Moment at which the user selects a line by


double-clicking on it or by positioning the
cursor on it and pressing F2.

AT USER-COMMAND

Moment at which the user presses a


function key.
TOP-OF-PAGE DURING LINE- Moment during list processing of a
SELECTION
secondary list at which a new page starts.
4. What is secondary list?
A. Secondary lists allow 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.

5. How to select valid lines for secondary list?


A. 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 LINESELECTION, check whether the work area is initial or whether the HIDE statement stored
field contents there. In the latter case, create a secondary list, since you previously stored
field contents for valid lines only. 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.

6. How to create user interfaces for lists?


A. 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

Page 106 of 146

ABAP FAQ
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-OFSELECTION, activate the status of the basic list using the statement: SET PF-STATUS
'STATUS'.

7. What is interactive reporting?


A. 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 a condensed 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.

8. Can we call reports and transactions from interactive reporting lists?


A. YES. Interactive reporting 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 to change the database table whose data is
displayed in the list.

9. What are system fields for secondary lists?


A.
SY-LSIND
Index of the list created during the current event (basic list = 0)
SY-LISTI
Index of the list level from which the event was triggered
SY-LILLI
Absolute number of the line from which the event was triggered
SY-LISEL
Contents of the line from which the event was triggered
SY-CUROW Position of the line in the window from which the event was triggered
(counting starts with 1)
SY-CUCOL Position of the column in the window from which the event was triggered
(counting starts with 2)
SY-CPAGE
Page number of the first displayed page of the list from which the event
was triggered
SY-STARO
Number of the first line of the first page displayed of the list from which
the event was triggered (counting starts with 1). Possibly, a page header
occupies this line.
SY-STACO
Number of the first column displayed in the list from which the event
was triggered (counting starts with 1)
SY-UCOMM Function code that triggered the event
SY-PFKEY
Status of the displayed list

10. How to maintain lists ?

Page 107 of 146

ABAP FAQ
A. 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 you 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.

11. What are the page headers for secondary lists?


A. 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 TOPOF-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).

12. How to use messages in lists?


A. 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 your program, use the MESSAGE
statement to output messages statically or dynamically and to determine the message type.
Syntax:REPORT <rep> MESSAGE-ID <id>.

13. What are the types of messages ?


A. A message can have five different types. These message types have the following effects
during list processing:
A (=Abend):
E (=Error) or W (=Warning):
I (=Information):
S (=Success):

14. What are the user interfaces of interactive lists ?

Page 108 of 146

ABAP FAQ
A. 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.

15. What are the drill-down features provided by abap/4 in interactive lists ?
A. 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.

16. What is meant by stacked list ?


A. 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.

17. Is the basic list deleted when the new list is created?
A. 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.

18. What is meant by hotspots ?


A. 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.

19. What is the length of function code at user-command ?


A. Each menu function,push button,or function key has an associated function code of length
FOUR (for example, FREE) which is available in the system field SYUCOMM after the user
action.

20. Can we create a gui status in a program from the object browser ?
A. Yes. You can create a GUI STATUS in a program using SET PF-STATUS.

21. In which system field does the name of current gui status is there ?
A. The name of the current GUI STATUS is available in the system field SY-PFKEY.

22. Can we display a list in a pop-up screen other than full-size stacked list ?

Page 109 of 146

ABAP FAQ
A. Yes, we can display a list in a po-up screen using the command WINDOW with the additions
starting at X1 Y1 and ending at X2 Y2 to set the upper-left and the lower-right corners where
x1 y1 and x2 y2 are the coordinates.

23. What is meant by hide area ?


A. The hide command temporarily stores the contents of the field at the current line in a systemcontrolled memory called the HIDE AREA.At an interactive event,the contents of the field is
restored from the HIDE AREA.

24. When the get cursor command used in interactive lists ?


A. If the hidden information is not sufficient to uniquely identify the selected line ,the command
GET CURSOR is used.The GET CURSOR command returns the name of the field at the
cursor position in a field specified after the addition field,and the value of the selected field
in a field specified after value.

25. How can you display frames (horizontal and vertical lines) in lists ?
A. You can display tabular lists with horizontal and vertical lines (FRAMES) using the ULINE
command and the system field SY-VLINE.The corners arising at the intersections of
horizontal and vertical lines are automatically drawn by the system.

26. What are the events used for page headers and footers ?
A. The events TOP-OF-PAGE and END-OF-PAGE are used for page headers and footers.

27. How can you access the function code from menu painter ?
A. From within the program, you can use the SY-UCOMM system field to access the function
code. You can define individual interfaces for your report and assign them in the report to any
list level. If you do not specify self-defined interfaces in the report but use at least one of the
three interactive event keywords AT LINE-SELECTION, AT PF<nn>, or AT USERCOMMAND in the program, the system automatically uses appropriate predefined standard
interfaces. These standard interfaces provide the same functions as the standard list described
under the standard list.

28. How the at-user command serves mainly in lists ?


A. The AT USER-COMMAND event serves mainly to handle own function codes. In this case, you
should create an individual interface with the Menu Painter and define such function codes.

29. How to pass data from list to report ?


A. ABAP/4 provides three ways of passing data:
---Passing data automatically using system fields
---Using statements in the program to fetch data

Page 110 of 146

ABAP FAQ
---Passing list attributes

30. How can you manipulate the presentation and attributes of interactive lists ?
A. ---Scrolling through Interactive Lists
---Setting the Cursor from within the Program
---Modifying List Lines

31. How to call other programs ?


A.

Call and return


Call without
return

Report

Transaction

SUBMIT AND RETURN


SUBMIT

CALL TRANSACTION
LEAVE TO TRANSACTION

You can use these statements in any ABAP/4 program.

32. What will exactly the hide statement do ?


A. For displaying the details on secondary lists requires that you have previously stored the
contents of the selected line from within the program. To do this, ABAP/4 provides the HIDE
statement. This statement stores the current field contents for the current list line. When
calling a secondary list from a list line for which the HIDE fields are stored,the system fills
the stored values back into the variables in the program. In the program code, insert the HIDE
statement directly after the WRITE statement for the current line. Interactive lists provide the
user with the so-called 'INTERACTIVE REPORTING' facility. For back ground processing
the only possible method of picking the relavent data is through 'NON INTERACTIVE
REPORT'.After starting a background job,there is no way of influencing the program.But
whereas for dialog sessions there are no such restrictions.

33. How many lists can a program can produce ?


A. Each program can produce up to 21 lists: one basic list and 20 secondary lists. If the
user creates a list on the next level (that is, SY-LSIND increases), the system stores
the previous list and displays the new one. Only one list is active, and that is always
the most recently created list.

TRANSACTIONS
1. What is a transaction ?

Page 111 of 146

ABAP FAQ
-

A transaction is a dialog program that changes database objects in a consistent


way.

2. What are the requirements a dialog program must fulfill ?


- A dialog program must fulfill the following requirements
.
a user friendly user interface
.
format and consistency checks for the data entered by the user
.
easy correction of input errors
.
access to data by storing it in the database.
3. What are the basic components of dialog program ?
- Screens (Dynpros)
Each dialog in an SAP system is controlled by dynpros. A Dynpro consists of a
screen and its flow logic and controls exactly one dialog step.
- ABAP/4 module pool
Each dynpro refers to exactly one ABAP/4 dialog program. Such a dialog
program is also called a module pool, since it consists of interactive modules.
4. What are PBO and PAI events ?
- PBO Process Before Output It determines the flow logic before displaying the
screen
- PAI Process After Input It determines the flowlogic after the display of the
screen
and after receiving inputs from the user.
5. What is a dynpro ? What are its components ?
- A dynpro (DYnamic PROgram) consists of a screen and its flow logic and
controls exactly
one dialog step.
- The different components of the dynpro are:
Flow logic: Calls of the ABAP/4 modules for a screen
Screen layout: Positions of the texts, fields, pushbuttons, and so on for a screen
Screen attributes: Number of the screen, number of the subsequent screen, and
others
Field attributes: Definition of the attributes of the individual fields on a screen
6. What is a ABAP/4 module pool ?

Page 112 of 146

ABAP FAQ
-

Each dynpro refers to exactly one ABAP/4 dialog program. Such a dialog
program is also
called a module pool, since it consists of interactive
modules.

7. Can we use WRITE statement in screen fields ? If not how is data transferred from
field data to screen fields ?
- We cannot write field data to the screen using the WRITE statement. The system
instead transfers data by comparing screen field names with ABAP/4 variable
names. If both names are the same, it transfers screen field values to ABAP/4
program fields and vice-versa. This happens immediately before and
immediately after displaying the screen.

8. Can we use flow logic control key words in ABAP/4 and vice versa ?
- The flow control code of a dynpro consists of a few statements that syntactically
ressemble ABAP/4 statements. However, We cannot use flow control keywords in
ABAP/4 and vice versa.
9. What is a GUI status ? How to create/edit GUI status ?
- A GUI status is a subset of the interface elements used for a certain screen. The
status comprises those elements that are currently needed by the transaction. The
GUI status for a transaction may be composed of the following elements:
-

Title bar
Menu bar
Application tool bar
Push buttons.

To create and edit GUI status and GUI title, we use the Menu Painter.
10. How does the interaction between the Dynpro and the ABAP/4 modules takes place ?
- A transaction is a collection of screens and ABAP/4 routines, controlled and
executed by a Dialog processor. The Dialog processor processes screen after
screen, thereby triggering the appropriate ABAP/4 processing for each screen.
For each screen, the system executes the flow logic that contains the
corresponding ABAP/4 processing. The control passes from screen flow logic to
ABAP/4 code and back.

Page 113 of 146

ABAP FAQ
11. How does the Dialog handle user requests ?
- When an action is performed, the system triggers the PROCESS AFTER INPUT
event. The data passed includes field screen data entered by the user and a
function code. A function code is a technical name that has been allocated in the
Screen Painter or Menu Painter to a menu entry, a pushbutton, 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.
12. What is to be defined for a pushbutton field in the screen attributes ?
- A function code has to be defined in the screen attributes for the pushbuttons in a
screen.
13. How are the function codes handled in flow logic ?
- 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 the 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.
14. What controls the screen flow ?
- The SET SCREEN and LEAVE SCREEN statements control screen flow.
15. The function code currently active is ascertained by what variable ?
- The function code currently active in a program can be ascertained from the SYUCOMM variable.
16. What are field and chain statements ?
- The FIELD and CHAIN flow logic statements let you program your own field
checks. FIELD and CHAIN tell the system which fields you are checking,and
whether the system should perform checks in the flow logic or call an ABAP/4
module.
17. What is an on input field statement ?
- ON INPUT

Page 114 of 146

ABAP FAQ
The ABAP/4 module is called only if the field contains a value other than its initial
value. This initial value is determined by the field's data type: blanks for character
fields, zeroes for numerics. If the user changes a field value back to its initial
value, ON INPUT does not
trigger a call.
18. What is an on request field statement ?
- ON REQUEST
The ABAP/4 module is called only if the user has entered a value in the field
value since the last screen display. The value counts as changed even if the user
simply types in the value that was already there. In general, the ON REQUEST
condition is triggered through any form of "manual input".
19. What is an on *-input field statement ?
- ON *-INPUT
The ABAP/4 module is called if the user has entered a "*" in the first character of
the field, and the field has the attribute *-entry in the Screen Painter. You can use
this option in exceptional cases where you want to check only fields with certain
kinds of input.
20. What are conditional chain statements ?
- ON CHAIN-INPUT similar to ON INPUT.
The ABAP/4 module is called if any one of the fields in the chain contains a value
other than its initial value (blanks or nulls).
ON CHAIN-REQUEST
This condition functions just like ON REQUEST, but the ABAP/4 module is
called if any one of the fields in the chain changes value.
21. What is at exit-command ?
- The flow logic keyword AT EXIT-COMMAND is a special addition to the
MODULE statement in the flow logic. AT EXIT-COMMAND lets you call a
module before the system executes the automatic field checks.
22. Which function type has to be used for using at exit-command ?
- To use AT EXIT-COMMAND, we must assign a function type E to the relevant
function in the Menu Painter or Screen Painter.
23. What are the different message types available in the ABAP/4 ?
- There are altogether 5 types of message types available.

Page 115 of 146

ABAP FAQ
-

E Error
W Warning
I Information
A Abnormal termination
S Success

24. Navigation to a subsequent screen can be specified statically / dynamically.


( True / False ).
- True
25. Of the two next screen attributes the attribute that has more priority is
____________.
- Dynamic.
26. Dynamic screen sequence for a screen can be set using _______ and ______
commands.
- Set screen , Call screen.
27. The commands through which an ABAP/4 module can branch to or call the next
screen are 1.___________ , 2.___________ , 3.____________ , 4.____________.
- Set screen <scr no> , Call screen <scr no> , Leave screen , Leave to screen <scr
no>.
28. What is the difference between SET SCREEN and CALL SCREEN ?
- With SET SCREEN, the current screen simply specifies the next screen in the
chain. control branches to this next screen as soon as the current screen has been
processed. Return from next screen to current screen is not automatic. It does not
interrupt processing of the current screen. If we want to branch to the next screen
without finishing the current one, use LEAVE SCREEN.
With CALL SCREEN, the current (calling) chain is suspended, and a next screen
(or screen chain) is called in. The called screen can then return to the suspended
chain with the statement LEAVE SCREEN TO SCREEN 0. Sometimes we
might want to let an user call a popup screen from the main application screen to
let them enter secondary information. After they have completed their entries, the
users should be able to close the popup and return directly to the place where they
left off in the main screen. Here comes CALL SCREEN into picture. This
statement lets us insert such a sequence into the current one.

Page 116 of 146

ABAP FAQ
29. Can we specify the next-screen number with a variable. ( Yes / No ).
- Yes.
30. The field SY-DYNNR refers to ___Number of the current screen___.
31. What is a dialog module ?
- A dialog module is a callable sequence of screens that does not belong to a
particular transaction. Dialog modules have their own module pools, and can be
called by any transaction.
32. The syntax used to call a screen as a dialog box ( popup ) is _________________.
- CALL SCREEN <screen number>
STARTING AT <start column> <start line>
ENDING AT <end column> <end line> .
33. What is a call mode ?
- In the ABAP/4 world, each stackable sequence of screens is a "call mode". This is
important because of the way you return from a given current sequence. To
terminate a call mode and return to a suspended chain, set the "next screen" to 0
and leave to it:
LEAVE TO SCREEN 0 or ( SET SCREEN 0 and LEAVE SCREEN ). When you
return to the suspended chain, execution resumes with the statement directly
following the original CALL SCREEN statement. The original sequence of
screens in a transaction is itself is a
calling mode. If you LEAVE TO SCREEN 0 in this sequence ( that is, without
having stacked any additional call modes ), you return from the transaction
altogether.
34. The maximum number of calling modes stacked at one time is _Nine_____.
35. What is LUW or Database LUW or Database Transaction ?
- A LUW ( logical unit of work ) is the span of time during which any database
updates must be performed in an all or nothing manner. Either they are all
performed ( committed ) , or they are all thrown away ( rolled back ). In the
ABAP/4 world, LUWs and transactions can have several meanings:
LUW ( or database LUW or database transaction )

Page 117 of 146

ABAP FAQ
This is the set of updates terminated by a database commit. A LUW lasts, at most,
from one screen change to the next ( because the SAP system triggers database
commits automatically at every screen change ).
36. What is SAP LUW or Update Transaction ?
- Update transaction ( or SAP LUW)
This is a set of updates terminated by an ABAP/4 commit. A SAP LUW may last
much longer than a database LUW, since most update processing extends over
multiple transaction screens.The programmer terminates an update transaction by
issuing a COMMIT WORK statement.
37. What happens if only one of the commands SET SCREEN and LEAVE SCREEN is
used without using the other?
- If we use SET SCREEN without LEAVE SCREEN, the program finishes
processing for the current screen before branching to <scr no>. If we use LEAVE
SCREEN without a SET SCREEN before it, the current screen process will be
terminated and branch directly to the screen specified as the default next-screen
in the screen attributes.
38. What is significance of the screen number 0 ?
- In "calling mode", the special screen number 0 (LEAVE TO SCREEN 0) causes
the system to jump back to the previous call level. That is, if you have called a
screen sequence with CALL SCREEN leaving to screen 0 terminates the sequence
and returns to the calling screen. If you have not called a screen sequence,
LEAVE TO SCREEN 0 terminates the transaction.
39. What does the command SUPPRESS DIALOG do ?
- Suppressing of entire screens is possible with this command. This command
allows us to perform screen processing in the background. Suppresing screens
is useful when we are branching to list-mode from a transaction dialog step.
40. What is the significance of the memory table SCREEN ?
- At runtime, attributes for each screen field are stored in the memory table called
SCREEN. We need not declare this table in our program. The system maintains
the table for us internally and updates it with every screen change.
41. What are the fields in the memory table SCREEN ?
- Name
Length
Description

Page 118 of 146

ABAP FAQ
NAME
GROUP1
GROUP2
GROUP3
GROUP4
ACTIVE
REQUIRED
INPUT
OUTPUT
INTENSIFIED
INVISIBLE
LENGTH
DISPLAY_3D
VALUE_HELP

30
3
3
3
3
1
1
1
1
1
1
1
1
1

Name of the screen field


Field belongs to field group 1
Field belongs to field group 2
Field belongs to field group 3
Field belongs to field group 4
Field is visible and ready for input
Field input is mandatory
Field is ready for input
Field is for display only
Field is highlighted
Field is suppressed
Field output length is reduced
Field is displayed with 3D frames
Field is displayed with value help.

42. Why grouping of fields is required ? What is the maximum number of modification
groups for each field ?
- If the same attributes need to be changed for several fields at the same time these
fields can be grouped together. We can specify up to four modification groups for
each field.
43. What are the attributes of a field that can be activated or deactivated during runtime ?
- Input , Output , Mandatory , Active , Highlighted , Invisible .
44. What is a screen group ? How it is useful ?
- Screen group is a field in the Screen Attributes of a screen. Here we can define a
string of up to four characters which is available at the screen runtime in the SYDNGR field. Rather than maintaining field selection separately for each screen of
a program, we can combine logically associated screens together in a screen
group.
45. What is a Subscreen ? How can we use a Subscreen ?
- A subscreen is an independent screen that is displayed in an area of another
("main") screen. To use a subscreen we must call it in the flow logic ( both PBO
and PAI ) of the main screen. The CALL SUBSCREEN statement tells the
system to execute the PBO and PAI events for the subscreen as part of the PBO or
PAI events of the main screen. The flow logic of your main program should look
as follows:

Page 119 of 146

ABAP FAQ
PROCESS BEFORE OUPTPUT.
CALL SUBSCREEN <area> INCLUDING '<program>' '<screen>'.
PROCESS AFTER INPUT.
CALL SUBSCREEN <area>.
Area is the name of the subscreen area you defined in your main screen. This
name can have up to ten characters. Program is the name of the program to
which the subscreen belongs and screen is the subscreen's number.
46. What are the restrictions on Subscreens ?
- Subscreens have several restrictions. They cannot:
Set their own GUI status
Have a named OK code
Call another screen
Contain an AT EXIT-COMMAND module
Support positioning of the cursor
47. How can we use / display table data in a screen ?
- ABAP/4 offers two mechanisms for displaying and using table data in a screen.
These mechanisms are TABLE CONTROLS and STEP LOOPS.
48. What are the differences between TABLE CONTROLS and STEP LOOPS ?
- TABLE CONTROLS are simply enhanced STEP LOOPS that display data with
the look and feel of a table widget in a desktop application. But from a
programming standpoint, TABLE CONTROLS and STEP LOOPS are almost
exactly the same. One major difference between STEP LOOPS and TABLE
CONTROLS is in STEP LOOPS their table rows can span more than one line on
the screen. By contrast the rows in a TABLE CONTROLS are always single
lines, but can be very long. ( Table control rows are scrollable ). The structure of
table controls is different from step loops. A step loop, as a screen object, is
simply a series of field rows that appear as a repeating block. A table control, as a
screen object consists of : i ) table fields ( displayed in the screen ) ii ) a
control structure that governs the table display and what the user can do with it.
49. What are the dynpro keywords ?
- FIELD, MODULE, SELECT, VALUES and CHAIN are the dynpro keywords.
50. Why do we need to code a LOOP statement in both the PBO and PAI events for each
table in the screen ?

Page 120 of 146

ABAP FAQ
-

We need to code a LOOP statement in both PBO and PAI events for each table in
the screen. This is because the LOOP statement causes the screen fields to be
copied back and forth between the ABAP/4 program and the screen field. For this
reason, at least an empty LOOP......ENDLOOP must be there.

51. The field SY-STEPL refers to ___________________ .


- The index of the screen table row that is currently being processed. The system
variable SY-STEPL only has a meaning within the confines of
LOOP...ENDLOOP processing. Outside the loop, it has no valid value.
52. How can we declare a table control in the ABAP/4 program ?
- Using the syntax controls <table control name> type tableview using screen <scr
no>.
53. Differentiate between static and dynamic step loops.
- Step loops fall into two classes: Static and dynamic. Static step loops have a
fixed size that cannot be changed at runtime. Dynamic step loops are variable in
size. If the user re-sizes the window the system automatically increases or
decreases the number of step loops blocks displayed. In any given screen you can
define any number of static step loops but only a single dynamic one.
54. What are the two ways of producing a list within a transaction ?
- By submitting a separate report.
- By using leave to list-processing.
55. What is the use of the statement Leave to list-processing ?
- Leave to list-processing statement is used to produce a list from a module pool.
Leave to list-processing statement allows to switch from dialog-mode to listmode within a dialog program.
56. When will the current screen processing terminates ?
- A current screen processing terminates when control reaches either a Leavescreen or the end of PAI.
57. How is the command Suppress-Dialog useful ?
- Suppressing entire screens is possible using this command. This command allows
us to perform screen processing in the background. The system carries out all
PBO and PAI logic, but does not display the screen to the user. Suppressing

Page 121 of 146

ABAP FAQ
screens is useful when we are branching to list-mode from a transaction dialog
step.

58. What happens if we use Leave to list-processing without using Suppress-Dialog ?


- If we don't use Supress-Dialog the next screen will be displayed but as empty.
when the user presses ENTER, the standard list output is displayed.
59. How the transactions that are programmed by the user can be protected ?
- By implementing an authority check.
60. What are the modes in which any update tasks work ?
- Synchronous and Asynchronous.
61. What is the difference between Synchronous and Asynchronous updates ?
- A program asks the system to perform a certain task, and then either waits or
doesn't wait for the task to finish. In synchronous processing, the program waits:
control returns to the program only when the task has been completed. In
asynchronous processing, the program does not wait: the system returns control
after merely logging the request for execution.
62. SAP system configuration includes _______ tasks and ________ tasks.
- Dialog , Update.
63. Dialog-task updates are ___________ updates.
- Synchronous
64. Update-task updates are ___________ updates.
- Asynchronous
65. What is the difference between Commit-Work and Rollback-Work tasks ?
- Commit-Work statement performs many functions relevant to synchronized
execution of tasks. Rollback-Work statement cancels all requests relevant to
synchronized execution of tasks.
66. What are the different database integrities ?

Page 122 of 146

ABAP FAQ
-

Semantic integrity
Relational integrity
Primary key integrity
Value set integrity
Foreign key integrity and
Operational integrity.

67. All SAP Databases are __________ Databases.


- Relational
68. What is SAP locking ?
- It is a mechanism for defining and applying logical locks to database objects.
69. What does a lock object involve ?
- The tables
- The lock argument.
70. What are the different kinds of lock modes ?
- Shared lock
- Exclusive lock
- Extended exclusive list.
71. How can a lock object be called in the transaction ?
- By calling Enqueue <lock object> and Dequeue <lock object> in the
transaction.
72. What are the events by which we can program help texts and display possible
values lists ?
- PROCESS ON HELP-REQUEST (POH)
- PROCESS ON VALUE-REQUEST (POV).
73. What is a matchcode ?
- A matchcode is an aid to finding records stored in the system whenever an object
key is required in an input field but the user only knows other (non-key)
information about the object.
74. In what ways we can get the context sensitive F1 help on a field ?
- Data element documentation
- Data element additional text in screen painter

Page 123 of 146

ABAP FAQ
-

Using the process on help request event

75. What is roll area ?


- 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.
76. How does the system handle roll areas for external program components ?
- 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 areas of their callers
77. Does the external program run in the same SAP LUW as the caller, or in a separate
one?
- 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.
78. What are function modules ?
- Function modules are general-purpose library routines that are available systemwide.
79. What are the types of paramaters in the function modules ?
- In general, function module can have four types of parameters:
- EXPORTING: for passing data to the called function
- IMPORTING: for receiving data returned from the function module
- TABLES: for passing internal tables only, by reference (that is, by address)
- CHANGING: for passing parameters to and from the function
80. What is the difference between Leave Transaction and Call Transaction ?
- In contrast to LEAVE TO TRANSACTION, the CALL TRANSACTION
statement causes the system to start a new SAP LUW . This second SAP LUW
runs parallel to the SAP LUW for the calling transaction.

Page 124 of 146

ABAP FAQ
81. How can we pass selection and parameter data to a report ?
- There are three options for passing selection and parameter data to the report.
. using SUBMIT...WITH
. using a report variant
. using a RANGE table
82. How to send a report to the printer instead of displaying it on the screen ?
- We can send a report to the printer instead of displaying it on the screen. To do
this, use the keywords TO SAP-SPOOL:
SUBMIT RSFLFIND ... TO SAP-SPOOL DESTINATION 'LT50'.
83. How can we send data to external programs ?
- Using SPA/GPA parameters (SAP memory)
- Using EXPORT/IMPORT data (ABAP/4 memory)
84. What are SPA/GPA parameters and how can we use them ?
- SPA/GPA parameters are field values saved globally in memory. There are two
ways to use SPA/GPA parameters:
by setting field attributes in the Screen Painter
by using the SET PARAMETER or GET PARAMETER statements

BDC
1. What is full form of BDC Session ?
- Batch Data Communications Session.
2. What are the steps in a BDC session ?
- 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.
3. How do you find the information on the current screen ?
- The information on the current screen can be found by System Status
command from any menu.
4. How do you save data in BDC tables ?

Page 125 of 146

ABAP FAQ
-

The data in BDC tables is saved by using the field name BDC_OKCODE and
field value of /11.

5. What is the last entry in all BDC tables ?


- 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.
6. What is a multiple line field ?
- A multiple line field is a special kind of field which allows the user to enter
multiple lines of data into it.
7. How do you populate data into a multiple line field ?
- 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 ).
8. Write the BDC table structure.
- BDC table structure
FIELD
Program
DynPro
DynBegin
Fnam

TYPE
CHAR(8)
CHAR(4)
CHAR(1)
CHAR(35)

Fval

CHAR(80)

DESCRIPTION
Program name of transaction
Screen number of transaction
Indicator for new screen
Name of database field from
Screen
Value to submit to field

9. Does the CALL TRANSACTION method allow multiple transactions to be processed


by SAP ?
- No. The CALL TRANSACTION method allows only a single transaction to be
processed by SAP.
10. Does the BDC_INSERT function allow multiple transactions to be processed by SAP
?
- Yes.
11. What is the syntax for CALL TRANSACTION ?

Page 126 of 146

ABAP FAQ
-

CALL TRANSACTION trans [ using bdctab MODE mode ].


Three possible entries are there for MODE.
A
show all screens
E
show only screens with errors
N
show no screens

12. Which mode of CALL TRANSACTION method allows background processing ?


- N is the only mode that allows background processing.
13. Is it possible to use CALL TRANSACTION without a BDC table ?
- Yes, it is possible to use CALL TRANSACTION without a BDC table. In such
case, the current program is suspended, the transaction specified is brought up,
and a user must enter the data into the screens.
14. What is TCODE ?
- TCODE is the transaction code for the transaction that should be used to process
the data in the BDC table being inserted.
15. What are the function modules that need to be called from BDC program to submit
the transactions for processing ?
- BDC_OPEN_GROUP
- BDC_INSERT
- BDC_CLOSE_GROUP
16. How many sessions will be opened using BDC_OPEN_GROUP ?
- Only one session can be created using the BDC_OPEN_GROUP functon.
17. What is BATCH INPUT or BDC ?
- The SAP system offers two primary methods (BDC SESSION METHOD, CALL
TRANSACTION METHOD) for transferring data into the system from other
systems and Non-SAP systems. These two methods are collectively called as
BATCH INPUT or Batch Data Communication (BDC).
18. What are the advantages in Batch Input ?
- The Batch Input ensures Data integrity.
- No manual interaction is required during Data transfer.
19. What is the functionality of Classical Batch Input ?

Page 127 of 146

ABAP FAQ
-

In Classical Batch Input an ABAP/4 program reads the external data that is to be
entered in the SAP system and stores the data in a Batch Input session. This
session stores the actions that are required to enter your data using normal SAP
transactions.

20. Which Function Modules are used in Classical Batch Input ?


- BDC_OPEN_GROUP , BDC_INSERT, BDC_CLOSE_GROUP.
21. Can we use the ABAP/4 dictionary to generate data structures for SAP tables with the
programming languages ?
- Yes, we can use COBOL, PL/1, AND C.
22. What is the use of Structure Identifiers in SAP ?
- With Structure Identifier we can generate a listing of all of the table fields that
are required by the corresponding Batch Input program. We do not need to find
out which tables are required for the Batch Input program and generate their
structures individually.
23. What is the use of RFC or CPI-C in SAP ?
- With RFC or CPI-C we can transfer data between two R/3 systems.
24. What is Synchronous Database update ?
- During the processing no transaction is stored until the previous transaction has
been written to the Database. This is called Synchronous Database update.
25. What are the differences between CALL TRANSACTION and BATCH INPUT
SESSION ?
- The most important aspects of the batch session interface are:
Asynchronous processing
Transfers data for multiple transactions
Synchronous database update
During processing, no transaction is started until the previous transaction has been
written to the database.
A batch input processing log is generated for each session
Sessions cannot be generated in parallel
The most important aspects of the CALL TRANSACTION USING interface are:
Synchronous processing
Transfers data for a single transaction
Synchronous and asynchronous database updating both possible

Page 128 of 146

ABAP FAQ

The program specifies which kind of updating is desired.


Separate LUW for the transaction
The system performs a database commit immediately before and after the CALL
TRANSACTION USING statement.
No batch input processing log is generated

26. What are the types of Batch Input ?


- Classical Batch Input
- Call Transaction
- Call Dialog
27. What is BDC_OKCODE ?
- The command field is identified by a special name in batch input called
BDC_OKCODE. This name is constant and always identifies the command field.
28. How can we execute a function in a BDC session ?
- We can execute a function in a transaction by entering the function code or
function key number in the command field of an SAP session. A function key
number must be prefixed with the / (slash) character. A function code must be
prefixed with the = character.
- Example:
BDCDATA-FNAM = 'BDC_OKCODE'
BDCDATA-FVAL = '=UPDA'
29. How can we position the cursor on a particular field ?
- BDCDATA-FNAM = BDC_CURSOR
BDCDATA-FVAL = <FIELDNAME>
30. Who are Dialog users and who are Background users ?
- Dialog users are normal interactive users in the SAP system. Background users
are user master records that are specially defined for providing authorizations for
background processing jobs.
31. What is the use of BDC_INSERT ?
- We add a transaction to a Batch Input Session by using this function.
32. What are the update modes in CALL TRANSACTION ?
- S : Synchronous
- A : Asynchrnous

Page 129 of 146

ABAP FAQ
-

L : Local

33. What does the message parameter indicates ?


- The message parameter indicates there all system messages issued during a CALL
TRANSACTION are written into the internal table <itab>. The internal table
must have the structure of BDCMSGCOLL.

34. What is Direct Input ?


- To enhance the batch input procedure, the system offers the direct input technique
especially for transferring large amount of data. This technique doesnt create
sessions but stores the data directly. The direct input programs must be executed
in the back ground only. To maintain and start these programs, use program
RBMVSHOW or the transaction BMVO.
35. What are the features of Recording Function ?
- recording transaction runs
- creating batch input sessions from the recorded transaction runs.
- Generating a batch input program from the recorded data.
36. What is synchrnous database update ?
- During the processing, no transaction is stored until the previous transaction has
been written to the database. This is called Synchronous database update.

SAP SCRIPT
1. The most important areas in the SAP Script text processing screen are
Format column , input lines for entering text.
2. The two characters which we should not use while naming a SAP Script are Asterix ,
Comma.
3. What is Compare Tool in SAP Script ?

Page 130 of 146

ABAP FAQ
SAP Script offers tools for comparing objects across clients. We can compare or copy
the following kinds of objects.
Styles
Layout sets
Documents
With the Compare tool we can do the following :
Check whether an object exists in both clients
Display the differences between the versions of an object
4. Layout Sets are used to control page layout and text formatting in documents .
5. SAP Standard styles and layout sets are always held in Client 000.
6. In what format does SAP Script store text ?
SAPscript texts are stored in Interchange Text Format (ITF). SAPscript offers
conversion programs for the text file formats Rich Text Format (RTF) and ASCII as
an interface to other word processors.
7. The various window types in SAP Script are Main, Variable and Constant.
8. The New-Page command is used to force a Page break in the text at any point.
9. Protect ... Endprotect command pairs can be nested (True / False).
False.
10. Delimiter & must be used immediately before and after the symbol.
11. SAPscript is the SAP System's own text-processing system. SAP
script is tightly integrated into the SAP System. You'll therefore be using it for many
different text-processing tasks all over the SAP System.
12. Layout sets are used for the page layout of SAPscript documents.
If a text is formatted for output to the screen or printer, it must be
assigned a layout set. If a layout set has not been assigned to a text, the layout set
SYSTEM, which contains minimal definitions for text formatting, is used
Automatically.
13. There are two ways of formatting texts using layout sets:

Page 131 of 146

ABAP FAQ
The text is entered and output in standard text maintenance. You can assign any
layout set. Text can also be entered via the layout set a letter header, for example.
The text is formatted via an ABAP/4 program using a layout set. The program can
either dynamically output individual predefined text modules, text elements or
transfer entire texts, which are to be output in the layout set.
14. You can use styles to define the formatting of the text in your documents. A style
determines text formatting by setting the paragraph and character formats used in a
document. You can, for example, use a style to highlight character strings or whole
paragraphs. You can assign a style to any text. Typically, however, youll use styles
primarily in the main windows of layout sets, where users type or enter text directly
in documents.

15. Header data is found in both style and layout set maintenance.
In style maintenance, it is used primarily to present important information - designed
to make it easier for the end user to select a style. The header data in layout set
maintenance, on the other hand, is used for information and control purposes.
16. Windows are defined in layout set maintenance. They represent areas
which are positioned on pages as page windows and in which text is
later output. At least one window must be defined for each layout set. If
not, a text cannot be formatted by SAP script.
17. The following window types can be used:
- MAIN Main window in which continuous text is output. This is the window
used by dialog users of a print program and layout set. For example the body text
of a letter would be entered in MAIN.
- VAR Window with variable contents. The text can vary on each page in which
the window is positioned. Variable windows are formatted for each page.
- CONST Window with constant contents which is only formatted once.

Page 132 of 146

ABAP FAQ
18. A layout set has the following elements:
- Header data - Data related to development (created by, development class, etc.)
and 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 - as in styles in order to format texts. 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.
19. The purpose of SAP script control commands is to allow control of the
output formatting. These commands are not interpreted by the SAPscript
editor, but are passed through to the SAPscript Composer for processing. The
composer is the program that converts text from the form displayed in the editor to
the form used for printing.

SAP ENHANCEMENTS
1. What are the different ways in which you can make
changes to SAP standard software ?
Customizing
Enhancements to the SAP Standard
Modifications to the SAP Standard
Customer Development
2. What is customizing ?
Customizing is the setting of system parameters via SAP's own interface.
3. Why do you need enhancements ?

Page 133 of 146

ABAP FAQ
The standard applications do not offer some of the functionality you need. The R/3
enchancement concept allows you to add your own functionality to SAP's standard
business applications.
4. What are the different types of enhancements ?
Enhancements using customer exits
Customers' potential requirements which are not included in the standard software are
incorporated in the standard as empty modification 'shells'. Customers can then fill these
with their own coding. Enhancements can relate to programs, menus and screens.
Upward compatibility is assured. In other words, SAP guarantees that the jump from the
standard software to the exit and the interface which call the exit will remain valid in
future releases.
Enhancements to ABAP/4 Dictionary elements
These are ABAP/4 Dictionary enhancements (creation of table appends), text
enhancements (customer-specific key words and documentation for data elements) and
field exits (creation of additional coding for data elements).
5. What is customer development ?
Creating customer-specific objects within the customer name range.
6. What is SSCR ?
SSCR (SAP Software Change Registration) is a procedure, for registering all manual
changes to SAP source coding and SAP Dictionary objects.
7.What is the difference between modifications and enhancements ?
Modifications mean making changes to the SAP standard functionality.
Enhancements mean adding some functionality to SAP standard functionality.
8. What are the disadvantages of modification ?
Modifying standard code can lead to errors
Modifications mean more work during software upgrades

Page 134 of 146

ABAP FAQ
9. What are the advantages of enhancements ?
Do not affect standard SAP source code
Do not affect software upgrades
10. when do you opt for modification ?
Customer exits are not available for all programs and screens within the R/3 standard
applications. You can only use exits if they already exist within the SAP R/3 System .
Otherwise you have to opt for modifications .
11. What are the various types of customer exits ?
Menu exits
Screen exits
Function module exits
Keyword exits
12. What is a menu exit ?
Adding items to the pulldown menus in standard R/3 applications .
13.What is a screen exit ?
Adding fields to the screens within R/3 applications. SAP creates screen exits by
placing special subscreen areas within a standard R/3 screen and calling a customer
subscreen from within the standard dynpro's flow logic.
14. What is a function module exit ?
Adding functionality to R/3 applications. Function module exits play a role in both
menu and screen exits.
15. What is a keyword exit ?
Add documentation to the data elements of key words defined in the ABAP/4 Dictionary.
The system displays this documentation whenever a user presses F1 to get online help for
a screen field.
16. How do SAP organizes its exits ?

Page 135 of 146

ABAP FAQ
SAP organizes its exits in packages that are called SAP enhancements. Each SAP
enhancement can contain many individual exits.
17. What is an add-on project ?
To take advantage of the exits available within standard R/3 applications, you need to
create an add-on project. This project lets you organize the enhancement packages and
exits you want to use. The add-on project also allows you to hang add-on functionality
onto the exit hooks contained with SAP enhancements.

RFC
1. What are the types of remote communications ?
communications between two independent SAP System
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.
2. RFC is SAP's platform-independent core technology for all the three types of remote
communications.
3. What is OLE ?
For Windows frontends, SAP provides interfaces based on Microsoft's Object
Linking and Embedding technology (OLE Automation).
4. What is RFC?
A remote function call is a call to a function module running in a system different
from the caller's. The remote function can also be called from within the same
system (as a remote call), but usually caller and callee will be in different systems.
5. How is ABAP/4 used as OLE Automation Controller ?
An ABAP/4 program can call up an OLE Automation Server (such as Excel) on
the desktop. The ABAP/4 OLE Automation Controller consists of a set of
ABAP/4 language elements that an ABAP/4 client program can use to drive an
OLE Automation server on either Windows or Apple Macintosh frontends.

Page 136 of 146

ABAP FAQ
6. What is the statement used for calling RFC in ABAP/4 programs?
Any ABAP/4 program can call a remote function using the CALL
FUNCTION...DESTINATION statement.
7. RFC functions must be registered in SAP systems as _______________.
Remote.
8. Destination parameter are defined in which table?
Logical destinations are defined in the RFCDES table (or the TRFCD table in
R/2 Systems) via transaction SM59
9. How to Call interfaces for non-SAP programs ?
To help implement RFC partner programs in non-SAP Systems, SAP provides :
The RFC Generator to create stub programs
External Interfaces
10. What is RFC generator ?
The function library in R/3 provides a facility for generating and then
downloading RFC programs to a workstation or PC. This facility is the RFC
Interface Generator. With this tool, you can create RFC stub programs (that call
SAP function modules) and example programs (that show how to call stub
programs).
11. What is RFC stub program?
RFC stub programs contain all the parameter-handling and communications
necessary to call SAP function modules from a non-SAP System.
12. What is RFC-API?
The RFC-API on OS/2, Windows, Windows NT and all R/3-based UNIX
platforms makes it possible to use the RFC functionality between an SAP System
(R/3 from Release 2.1 and R/2 from Release 5.0D onwards) and a C program on
the above platforms. It is of no significance to the caller whether the remote
function is provided in an SAP System or in a C program.
13. How does processing of RFC interface take place in ABAP/4?
The RFC interface is effectively invisible to the ABAP/4 programmer. Processing
for calling remote programs is built into the CALL FUNCTION statement.
Processing for being called is generated automatically (in the form of an RFC

Page 137 of 146

ABAP FAQ
stub) for every function module registered as remote. This stub serves as an
interface between the calling program and the function module.
14. Distiningish between RFC client & RFC server.
RFC client is the instance that calls up the Remote Function Call to execute the
function that is provided by an RFC server. In the following, the functions that
can be executed remotely will be called RFC functions and the functions provided
via RFC API will be called RFC calls
15. All RFC functions available in a remote RFC server system, which are called by an
RFC
client, are processed transactionally
16. When is RFC connection closed ?
When the context of the calling ABAP/4 program has ended or
explicitly by RfcAbort or RfcClose in the external program.
17. What is Transactional RFC?
To make the execution of RFC functions reliable, safe and independent from the
availability of the RFC server or RFC server system, the transactional RFC
(tRFC) was introduced for R/3 systems from Release 3.0 onwards,data can be
tranferred between two R/3 systems. This ensures that the called function module
is executed only once in the RFC server system.
18. Where system logs the remote call request in DB tables?
The system logs the remote call request in the database tables ARFCSSTATE and
ARFCSDATA with all of its parameter values. You can display the log file using
transaction SM58. When the calling program reaches a COMMIT WORK, the
remote call is forwarded to the requested system for execution.
19. Transactional RFC requests are transferred, with parameter data in byte-stream form,
using
TCP/IP or X400.
20. What are restrictions for Transactional calls?
There are two restrictions on writing remote functions that are to be called
transactionally:
Transactional calls cannot return parameter values. As a result, the interface
for these functions should not specify any EXPORT parameters.

Page 138 of 146

ABAP FAQ
Functions that run transactionally may not perform call-backs: the caller's
context does not necessarily still exist when the call-back is relayed back to the
original system.
21. What exceptions raise in a remote funcation?
System raises COMMUNICATION_FAILURE and SYSTEM_FAILURE
internally, there is no reason for you to raise them in your program.
22. How call-back mechanism used in RFC calls?
You can trigger this call-back mechanism by using the special destination name
"BACK". If this name is specified in an RFC call on the system acting as the
server, the system uses the same RFC connection that was established when the
server received the first call. Once an RFC connection is established, it is
maintained until it is either explicitly closed or until the calling program
terminates
23. What are technical requirements for RFC programming in ABAP/4?
External Systems
systems must support TCP/IP.
OS/2:
TCP/IP for OS/2 from IBM.
Windows 3.1/3.11: All TCP/IP products that support the socket
interface.
Windows NT/95: Microsoft standard

UNIX platforms:

Manufacturer's standard

The RFCSDK for the respective platforms contains the following libraries and
includes:
saprfc.h This include file contains all data types and structures required and the
prototypes (declarations) of the RFC calls.
sapitab.h
This include file contains all the RFC calls required to manipulate
internaltables
librfc
Depending on the platform, the following libraries are required:
OS/2:
librfc.dll and librfc.lib for Compile/Link
Windows 3.1/3.11: librfc16.dll, librfc2.dll, librfc3.dll, librfc4.dll
and librfc5.dll and librfc16.lib for Compile/Link
Windows NT/95:
librfc32.dll and librfc32.lib for Compile/Link
UNIX-Platforms:
librfc.a

Page 139 of 146

ABAP FAQ
SAP R/3 Systems
For RFC between external systems and R/3, there are no specific
requirements in the R/3 System, except that the R/3 System has to be
Release >= 2.1.
Topics for further discussion

ABAP/4 I BATCH
1. Performance Enhancements in reports
-

Using index tables.

Other methods.

2. SAP scripts
-

Modifying system defined layout sets.

Inserting images

3. BDCs for multiple transactions.


4. User exits overview (all types).
5. Advanced types: Rfcs, BAPIs, ITS, OLE.
6. Finding user exits for particular transactions.
7. Print programs for system defined layout sets.
8. BDC error logs.
9. Background job processing.
10. Pooled & Cluster tables.
- How to get fields from pooled & cluster tables.
11. Debugger.
1.What are text elements and how many placeholders can you have in a Text-Symbol.
Text-elements?
Text displayed on the selection screen or output screen of an ABAP report.Text elements
are used to store texts displayed on the selection screens or output screens of ABAP
reports, but are not hard-coded in programs.

Page 140 of 146

ABAP FAQ
The different types of text elements include
1. Report or program titles
2. List headers
3. Column headers
4. Selection texts
5. Text symbols
Text-symbols?
Text constant specified and maintained outside an ABAP program.
You use text symbols instead of text literals in programs, because they allow you to keep
programs language-independent and make them easier to maintain.
Each text symbol must have a three-character identifier
2.Can you specify field names and table names dynamically in a SELECT?
3.When do you use the statements GET CURSOR---HIDE---READ LINE in the interactive
reporting?
Get-cursor?
Transfers the name of the field at the cursor position to the field f.
Hide?
Retains the contents of f related to the current output line. When the user selects the line from the
list f is automatically filled with the retained value.
Read-line?
Reads line number line of the list, usually after a line selection ( AT LINE-SELECTION, AT PFxx,
AT USER-COMMAND).
The line is placed in the field SY-LISEL, and all 'hidden' information (HIDE) is automatically
placed into its original fields.
4.Explain the use of: GET PARAMETER, SET PARAMETER, EXPORT TO MEMORY, and
IMPORT FROM MEMORY
ABAP memory?
Area of memory assigned to a particular transaction and any modules called from there.
ABAP memory does not depend on the ABAP program that generates it during a transaction. This
means that any ABAP program can read any object stored there during the same transaction.
In contrast to ABAP memory, which exists only for the life of one transaction, there is also global
SAP memory, which extends beyond transaction limits.

Export to memory:
Stores a data cluster in ABAP memory. The specified objects obj1 ... objn (fields, structures,
complex structures, or tables) are stored as one cluster in ABAP memory
Import to memory:

Page 141 of 146

ABAP FAQ
Imports the data objects obj1 ... objn (fields, structures, complex structures, or tables) from a data
cluster in ABAP memory
SAP memory?
Global, user-related memory that extends beyond transaction limits.
Access to the SAP memory is via SPA/GPA parameters.
Get parameter:
Transfers the value stored under the key pid from the global user-related SAP memory to the field
f
Set parameter:
Writes the contents of the field f to the global user-specific SAP memory under the ID pid. SAPMemory
5.What are the facilities in ABAP debugging tool? How many ways you can set a Break point.
The ABAP Debugger is an integrated test tool within the ABAP Workbench. You use it to find
errors in the source code of an ABAP program. In the Debugger, you can step through the source
code of a program. The running program is interrupted after each step, allowing you to check its
processing logic and the results of individual statements.
The Debugger provides an efficient means of identifying errors in ABAP programs.
It contains the following functions:
Ways of starting the Debugger
Choosing Debugger settings
Choosing different execution options in the Debugger
Displaying source code in the Debugger
Setting and deleting breakpoints
Setting and deleting watchpoints
Stopping a program at a particular statement, event, subroutine, or function module
Displaying and changing field contents at runtime
Displaying objects in ABAP Objects
Displaying and positioning strings
Opening the ABAP Editor, ABAP Dictionary, or Object Navigator
The Debugger contains different breakpoint variants:
Static
The BREAK-POINT statement in an ABAP program. Static breakpoints are not normally userspecific. However, you can make them user-specific.

Directly-set dynamic breakpoints


Can be set in the ABAP Editor or the Debugger. Dynamic breakpoints are displayed as stop
signs in the Debugger and ABAP Editor. Unlike static breakpoints, they are user-specific, and are
deleted when you log off from the R/3 System.

Page 142 of 146

ABAP FAQ
Breakpoint at statement
The Debugger stops the program directly before the specified statement is executed. You set this
special kind of dynamic breakpoint in the Debugger.
Breakpoint at event
The Debugger stops the program directly before an event, subroutine, or module pool is called.
You set this special kind of dynamic breakpoint in the Debugger.
Breakpoint at function module
The Debugger stops the program directly before the specified function module is called.
Breakpoints at System Exceptions
The Debugger stops the program directly after a system exception, that is, after a runtime error
has been intercepted by a CATCH statement

6.What is version management? What facilities are available in that?


Allow you to manage different versions of a master inspection characteristic or an inspection
method.
Features
If you create a new version of the master record, the "old" version continues to be used in the
master inspection characteristic, inspection plan, material specification and/or the certificate
profile, in which it was previously referenced, provided that you make the changes with history.
If you change a referenced master record without history, the changes are immediately effective
in the master inspection characteristic, inspection plan, material specification or certificate profile.
If you create a new reference to the master record, the system automatically selects the new
version of the master record. However, you can also enter the "old" version of the master record.
You can replace the "old" version of a referenced master record by its new version. The new
version, however, must have been released for use.
When you change a referenced master record with history, a dialog box appears automatically
when you save, prompting you to replace the old version, provided that the Replace master
inspection characteristic and/or Replace inspection method indicators have been set in
Customizing.
7.What are smart forms (version 4.6c and 4.6d)? What are Jet forms?

8.What are lock objects and what are the functions used for this?
The R/3 System synchronizes simultaneous access of several users to the same data records
with a lock mechanism. When interactive transactions are programmed, locks are set and

Page 143 of 146

ABAP FAQ
released by calling function modules (see Function Modules for Lock Requests). These function
modules are automatically generated from the definition of lock objects in the ABAP Dictionary.
Activating a lock object in the ABAP Dictionary automatically creates function modules for setting
(ENQUEUE_<lock object name>) and releasing (DEQUEUE_<lock object name>) locks.
9.How do you use debugger in lay out?
10.Can we process sessions from within the programs?
Through RSBDCBTC program one can process the sessions within the programs.
RSBDCBTC accepts the qid of the session.
11.What are FULL CONTROL METHOD and EASY METHOD in back ground job scheduling?
By easy method or express method: one ca.n schedule the job in the background but need to
have a variant and start time to execute the job.
Function modules used are: bc_jobvariant_schedule, and bc_jobvariant_overwiew.
Full control method: one has the full control over the jobs to be scheduled in the background.
Function modules used are: job_open, job_submit, job_close.
12.What are the difference between CALL SCREEN, LEAVE SCREEN and SET SCREEN?
Call screen:
Calls the screen scr; scr is the number of a screen of the main program. You use SET SCREEN
0. or LEAVE SCREEN. to define the return from the CALL screen.
Leave screen: Leaves the current screen and processes the next screen.
Set screen: Sets the number of the next screen.
Screen number scr is then processed when the current screen has finished.
13.What is the different between STEP LOOP and TABLE CONTROL?
Step loops:
Sequence of repeated screen elements.
A step loop defines a kind of table, which contains the elements in a number of repeated lines or
blocks. You can define a step loop as fixed or variable.
Step loops are similar to table controls, but have less functional scope. You can convert step
loops to table controls.
Table control:
Area on a screen for efficient entry and display of one-line tabular data, which is processed in a
loop at runtime.
There can be several table controls on one screen and, as with subscreens, each has a unique
name.
The main features of a table control are as follows:
1. Vertical scroll bar
2. Horizontal scroll bar

Page 144 of 146

ABAP FAQ
3. One-line (there is no equivalent of multiple line loop blocks as found in step loops)
4. Table controls are similar to step loops, but have greater functional scope. For this
reason, they can be regarded as enhanced step loops.
14.What is update building/LUW? How you do it?
Update bundling and the R/3 lock system maintain data integrity in processes that cover several
database LUWs, and fulfill the requirements regarding rollback. This means that all of the data
changes can be reversed if a runtime error occurs during the update.
Bundling is an ABAP programming technique, which collects database changes and performs
these together at the end of a transaction.
U achieves it by collecting all the updations in a routine and then performs the updations upon the
explicit calling of the COMMIT WORK by the ABAP program.
15.What is the peculiarity in the naming of function modules?

16.What is the difference between Messages and Message Types? (IN EDI)
Messages: display message to help analyze errors that occurred during the allocation run.
Message types: define the business document and also defines the logic of the selection and
posting programs.
17.What is Filtering?
In Customizing for Distribution (ALE), you can define filter values for each receiving system and
for specific business application programming interface (BAPI) parameters (IDoc segments). You
do this in the activity Maintain Distribution Model. The system then filters the data records for the
corresponding BAPI parameter, distributing only those with the defined filter values
18.What is a service file? What is the hierarchy in service files? (IN ITS)
All Internet applications developed in the SAP@Web Studio are known to the Internet Transaction
Server (ITS) as services.
An ITS service is the set of files required by the ITS to run an Internet application from a Web
browser. Each service can consist of up to five ITS file types:
A service file
HTMLBusiness templates
Flow files
Language resources
Multipurpose Internet Mail Extension (MIME) files
Service File
The service file contains the service description, which is the set of parameters that determines
how a service runs. If this information is incomplete at runtime, the ITS may derive some details

Page 145 of 146

ABAP FAQ
from the global service file (see below), or require the user to enter logon information. In any
case, there must be one service file for each application.
Each service can be divided into one or more themes. Themes are instances of services that
differ only in look and feel (appearance, graphics, layout or language). Each theme has its own
set of HTMLBusiness templates, flow files (if applicable), language resources, and Multipurpose
Internet Mail Extension (MIME) files, but the functionality of the service is identical. In the
SAP@Web Studio, themes are stored in subdirectories of the service directory.
19. How does the ITS Debug tool work.
It is a function of the Internet Transaction Server (ITS) that allows you to debug Web applications
by starting a normal SAP GUI window alongside the application.
This means that you can run the application in a Web browser and the SAP GUI at the same
time, use the ABAP debugger in the R/3 System to identify and eliminate errors.
The capability for debugging Web transactions using the SAPgui is usually only active in ITS
development systems. In standard ITS installations, the ITS debugger is deactivated.
You activate the ITS debugger in the ITS Administration Tool.
Procedure
Log on to the ITS Administration Tool
In the Main frame, choose the relevant ITS instance.
In the frame for the ITS instance, choose Configuration.
In the Configuration frame, choose Debug.
If the value for Debug is set to OFF, choose Debug and select ON.
This activates the debugger.
Choose Save.
20.How can the ITS architecture be scaled.

Page 146 of 146

You might also like