0 ratings0% found this document useful (0 votes) 228 views136 pagesAnubhav Trainings ABAP Interview Qs
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content,
claim it here.
Available Formats
Download as PDF or read online on Scribd
ABAP Q&A
INDEX
1) Data Dictionary 1-15
2) Fundamentals 15-25
3) Modularization. 26 - 30
4) Debugger. 31-33
5) Report Events. 34-51
6)Module Pool. 52-57
7) Sap Script. 58 - 67
8) Smartform. 68 - 75
9) File handling. 75-77
10) Data migration. 78-91
11) Enchancement. 92 - 97
12) Cross Apps. 98 - 127
13) Project. 128 - 136
#Follow for moreDATA DICTIONARYDDIC Objects
1) What are the technical properties of a table and explain about them?
‘Ans:- There are 7 types of tech. properties They are
a) Delivery Class: - 1
f
used to control the Transport of the table data.
used to specify the type of the table.
> We mostly use the delivery class ‘C’
> Incase of delivery class 'A' the table can maintained in any system (development,
quality, production systems) using SM30.
b) Data Browser/table view maintenance:
- This property is used to specify the whether the
table can be maintained or not.
> We mostly use “Display/maintenance allowed “option.
> Incase of the option Display/maintenance allowed with restrictions & Display or
maintenance not allowed, the custom table or Maintenance view can’t be maintained.
Clas
It is used to specify the type of the data to be maintained in the table.
> We mostly use APPLO or APPL1.
> APPLO~ Master data — Access frequently & updated (changed) rarely. Ex: D.O.B
> APPL1 - Transactional data - Access frequently & updated frequently. Ex: Sal
> Organization & Customizing data ~ Updated rarely. Ex: Company Codes
d) Size Category: - It is used to specify the initial space req
> We mostly use ‘0’ category. (0-7) ->[0-7100]
> Ifthe user tries to enter a record over that the selected range, the system
the size category into a next category (0 to 1).
1d for the table in the data base.
increase
e) Buffering: - It is used to control (reduce) the traffic in the data base when the table accessed
by the multiple users.
> We mostly use the mode “Buffering not allowed " - Table Can't be buffered
> Buffering allowed but Switched Off - Buffering allowed but not activated
> Buffering Switched on — The table can be buffered. In case of this option any one of the
buffering types should be selected.
+ Single record buffering: In case of this buffering type, record by record is buffered
from the database tables.+ Generic Area bufte
is used to buffer the table data based on the specified key
fields. In case of this buffering type, the no. of key fields must be specified.
‘+ Fully buffer: The entire table is buffered.
f) Enhancement category: - It is used to enhance the particular fields of the table.
> We mostly use “Can be enhanced (DEEP)".
4g) Table Maintenance generator: - It is used to maintain multiple entries & validate the table data
using the T-code SM30.
Q) Whatis table buffer? Which type of tables used this buffer?
Ans: Buffer is nothing but a memory area. Table is buffered means that table information is
available on application server. When you call data from database table it will come from
application server. Transparent tables and pool tables are buffered, while cluster table
cannot be buffered.
Q: WHAT IS TABLE BUFFERING AND ADVANTAGE?
a:TABLE BUFFERING IS USED TO IMPROVE PERFORMANCE OF OPEN SQL STATEMENTS.
BUFFERING IS OF THREE TYPES.
1) SINGLE RECORD BUFFERING
2) GENERIC BUFFERING
3) FULL BUFFERING
The frequently retrieved data from the database can be stored in application server as as buffer
data, so it will not hit the database to get the data. So the execution of the program will be fast.
These data can be defined as buffered data of table while creating a table.
2) What are the steps to create TMG?
Ans:- a) Execute SE11
b) Select the Radio button DB Table
©) Provide the Table name & click on change
d) Click on utiliti
e) Click on Table Maintenance Generator.
) Select the auth. group as &NC8& (without authorization group)
> Authorization group is used to control the user access.
1 menu item.
9) Provide the function group as your table name
> The function group must be specified. Since, the system generates the screen & the
corresponding source code for the table maintenance under the function group.
h) Select the one-step radio button.
> Incase of one step maintenance, the system generates ‘single’ overview screen to
maintain & display the data.> Incase of two step maintenance, the system generates 2 screens to create a single entry
ata time & display to create a data in another screen. Two step maintenance is the
default option.
i) Enter overview screen number (could be any). [4 digit only]
}) Click on create icon (F6) & Click on save icon (packag
TMP -> Save)
k) Press Enter button & Click on Local Object & Click on Back icon.
3) What are the differences between Include structure and Append structure?
INCLUDE Structure
-APPEND Structure
7. It can be inserted at any position.
1. It can insert only at end of the table.
2. It is not possible with the standard tables
2. Itis possible to insert structure for both
Standard & Custom tables
3. All the steps of Include structure must be
saved in either our own package or $TMP
3. All the steps of Append structure must be
saved in our own package
4, The table must be in change mode
4, It can be inserted in Display mode also
5. It is possible to add the additional fields
manually after Include structure
5. It is not possible to add the additional fields
manually after Append structure
6. It can be used for multiple tables
6 itis specific to particular table/structure
4) What are the events in TMG?
‘Ans: Validation can be done by Table events using SM30. Totally 38 events are there in TMG.
1. Before saving the data in the database.
2. After saving the data in the database.
3. Before deleting the data displayed.
4. After deleting the data displayed.
5. Creating a new entry.
5) What is the purpose of Table Maintenance Generator (TMG)?
‘Ans: - It is used to maintain (Change, create, modify) the custom tables using the standard T-Code
'SM30.
q:lf i have 6 fields in our ztables, But when i would like to display the contents, then only 4 fields
would be come up, HOW IT WILL Handle?
a:ln se11 go to table -> select contents -> select settings-> select -> format list -> choose fields ->
choose which fields you want to display(select check boxes)
By this we can display which fields we want to display remaining fields will hide.6) What are the types of data base tables and differences between them?
Ans: - There are 3 types of data base table:
1) Transparent tables: - One to One relationship - Can be Join With Other Transparent tables
2) Pooled tables: - Many to One relationshi
3) Cluster tables: - Many to One relationship.
> We mostly use transparent tables.
‘Transparent Tables (VBAK) Pooled Tables (TTDTG) Cluster tables (BSEG)
1. They have one-one
Relationship with the data
base tables Many - One Many - One
2. Secondary indexes can be
created. Not Possible Not Possible
3. Both Open & native SQL
can be used. Only Open SQL Only Open SQL
‘4.The Table name fields name
and no .of fields are similar
in DDIC and Data base
Table names and filed names
are different in Data base
Table names and filed names
are different in Data base
5.lt Follows both Binary and
linear Search
It follows Binary Search
It follows Linear Search
6. It is mirror image of DB Table
Itis stored with another set of
tables called table pool
Itis stored with another set of
tables called Cluster Pool
7. Foreign keys can be created
Foreign keys can't be created
since key field names are
different in DDIC & Table pool
Foreign keys can’t be created
since key field names are
different in DDIC & Table pool
8. Can be joined with other
Transparent tables
Can't be used with Joins,
Since they are already set of
tables
Can't be used with Joins
‘Open SQL: It is a set of statements which can interact with any kind of database.
Native SQL: It
7) How data is stored in cluster table?
specific to the particular database & it hits the database directly.
Ans: A cluster table contains data from multiple DDIC tables. It stores data as a name value pair(varkey, vardata)
8) Is it possible to create custom transaction code to maintain the table? If yes, how to create it?
‘Ans: - Yes, We can create by using the custom T-Code using SE93.
9) How to identify the standard tables? (Indications)
Ans:- 1) The tables which doesn't start with Z or Y.
2) The tables which can't be seen in the CHANGE mode.
10) How to see the relationship between the tables?
Ans:- 1) Using SQVIT-Code.
2) While maintain data in the child table (Foreign key relationship).
11) What is Where Used List?
Ans: It is used to list out all the dependent objects & know the usage of the particular object.
> The T-code SQV1 is used to check the relationships between the tables.
12) Can we add/Enhance additional customer specific field vales to standard domains?
Ans: Yes, the standard domains can be enhanced to add, additional customer specific fixed values
& intervals using the Menu path: Go to -> Fixed Value Append at Domain level.
13) How many types of Indexes are there and explain about them?
‘Ans:- Indexes are used to avoid the duplicate data while accessing the table. Indexes can also be
used for better performance while extracting the data the tables. There are 2 types of Indexes.
1) Primary index: It is generated by the system using the key field of the tables.
Key fields hold the unique data (Implicit Indexes).
2) Secondary Index: These are created and maintained by the Technical Consultants/ABAP’er.
We can create 9 secondary indexes per table. We can create the secondary indexes for both
custom & standard tables. It can be defined by both key & non key filed combination.
Q) How to make SELECT statement to make use of any particular secondary index?
Ans:TABLES: spfli.
DATA : t_spfli LIKE spfli OCCURS 0 WITH HEADER LINE.
SELECT * FROM spfli
INTO TABLE t_spf
%_HINTS ORACLE ‘INDEX("SPFLI" "SPFLI~001")'.
LOOP AT t_spfili.
WRITE :/ t_spfli.
ENDLOOP.
14) What are the differences between Check table and Value table?Check table Value table
1. It is maintained at the TABLE level. 1. It is maintained at the DOMAIN level.
2. It can be used to extract the data in the 2. It can't be used to extract data since it is linked
programs. with the domain.
‘The Search Help is displayed from the 3. The Search Help is displayed on each field
Check table on the foreign key field of a which is linked with the same domain of the
foreign key table. Value table.
4. It forces the user to select any one of the __| 4. It does not force the user since it has empty
check table field entries value by default.
15) What are the types of Views and explain about them?
Ans: - Views are the virtual/imaginary tables. It does not contain the data permanently.
View contains the data at Run time only.
1) Database View: - It is used to combine the multiple tabled data by joining them. It can be
used to extract the data in the programs.
2) Maintenance View: - It is used to maintain multiple tables data using the T-code SM30 (TMG).
3) Help View: - It is used in the selection method in an Elementary Search Help to provide the
list of possible entries from the multiple tables.
4) Projection View: - It is used to HIDE the unwanted fields of the table. It can be
defined using one table only.
16) What are the Search Help, types and explain about them?
‘Ans: - It is used to provide all the possible entries to the input variable as search help.
1) Elementary Search help: - It is created using one base table.
2) Collective Search help: - It is the collection of Elementary Search help.
Search Help Exit: It is a Function module to filter possible entries of a search help.
It is used to modify the F4 values at run tim
> They are used to restrict the standard search help returned values according to user's
requirement.
Ex: when User 1 require only material type as finished goods & User 2 require only material type as
Raw material. For this scenario we can use.
> To restrict the values for material by material type search help name is : MAT1T_E
18) Is it possible to create a table/structure without creating any data element and domains?
‘Ans:- Yes , we can create using the predefined types.
It is used to create the table without using Data Elements/Domains.
> Ifthe table or structure is created using predefined types, the ‘+’ symbols are appeared
while maintaining the table instead of field labels (Headings).> Reusability is not possible with the Predefined Types.
> Foreign key relationship is cannot be created since it doesn't contains Domains.
19) What are the Lock objects and explain about the different lock modes?
Ans:- They are used to control the parallel access for the same data by the multiple users. It avoids
the concurrency access of multiple users on the same Database.
> The custom lock object name should start with 'E’ followed by the table name.
Ex: - E.
> It generates two function modules one start with ENQUEGE and other start
DEQUEQE.
> ENQUEQE - Request for Lock
> DEQUEQE -To Release the Lock
‘Types of Locks:
1) Write/Exclusive: The locked data can be accessed by single user only. All other Lock
requests are rejected.
2) Read/Shared: The multiple users can access the same data at the same time. If no user
tries to edit the data, all other users cannot access this data.
3) Exclusive but not Cumulative: It can be requested only once by the given transaction
Codes. All other lock requests are rejected.
‘SM12: This T-code is used to list out the locked objects & to delete the locked objects.
20) What are the difference between Table and Structure?
Table Structure
(Table contains the data 7. Structure does not contain the data. Itis
filled with single record at Run time.
2. It must contains at least 1 field as 2. It does not contain primary fields.
Primary Fields.
3.Database must contains Delivery class & | 3.It does not contains Delivery class &Technical settings. Technical settings.
21) Explain about Data element & Domain.
Ans
:- Data Element :- It is one of the data dictionary object which can be used to maintain the
field labels (descriptions) of the fields in the table or structure.
> Parameter ID's are maintained at Data Element level under Furthe!
Characteristics tab.
~ It is one of the data dictionary object which can be used to maintain the
technical properties of the fields in the table such are Data types (char,
numc....ete), length of the data (10, 20...etc)
> Itcan be used to maintain Value table to provide search help on the field.
> Conversion Routines are maintained at Domain Level.
22) How to adjust the table/View?
Ans
hrow an error as
If there was any changes made at the table level the system wil
‘Structure change at field level '. The table must be adjusted to rectify this error.
+ The T-Code SE14 or the path: Utilities —->data base objects —-> data base utility can be
used to adjust the table.
‘+ Ifthe key field is changed as non-key field then the system throws an error ‘Convert
Table’: structure changed at Table level.
23) | have a Z-Table, | wants to add one more field to the table without disturbing previous data,
what should | do?
Ans: While adjusting database table in SE14, select 'Save Data’ radio button.
24) What are the different ways to provide search helps?
‘Ans: We can provide in 3 ways .
¥ Using value table at Domain level.
¥ Foreign key relationship.
¥ Elementary and collective search help.
25) What is type group and explain?
‘Ans : It is one of the data dictionary objects.
> Itis used to define the Global types, Internal tables and constants which can be referred
anywhere in the system.
> The ABAP statement TYPE-POOLS is used to call/define the type group.
26) What is table type and explain?
Ans: It is one of the data dictionary object used to define the global internal table which can be
referred across the system.
27) What is the Maximum No. of structures that can be included in a table or Structure?‘Ans :- 9 (Nine)
28) Can you use alll the Views in the ABAP Program?
‘Ans :- No . We can use only Projection view or Database view in the Program.
29) In which table are the programs, Tables, Development classes (packages) are stored in?
Ans:- The Programs details are stored in the table TRDIR, Data base tables in DDO2L and DDO2T and
the development class packages in TDEVC.
30) Explain about the tables TADIR and TRDIR?
Ans:
‘ADIR is a table which holds the Data Dictionary objects. i.e; Data elements, Domains, Tables,
T-codes etc & TRDIR stores all the client independent Programs details.
Q) What is the
ifference between package and development class??
a:We called development class in the version 4.6 . And that we called Package called in the 4.7E
VERSION.
There is no difference in between these 2 ones.
31) When you create new entries in the table the field values are always in Uppercase. How do you
get the data with mixed case?
Ans :- The reason for this is that the Domain for the Field in the table might have Lowercase
checkbox unchecked. Check the LOWERCASE CHECKBOX to preserve the case of your data.
» The checkbox Lower case is checked to make character fields as a case sen:
both Upper & Lower case letters. Since the system takes the ‘Character’ data type as Upper
case letters by default.
33) What is Transaction code?
‘Ans: They are the commands/shortcuts to execute corresponding application. In SAP
each screen is associated with T-Code.
a) Standard T code: They are the system provided to work with the pre-defined applications. The
standard T-codes could only be the combination of any alphabets/alpha-numeric
Ex: SQVI, SE11, SE38 (SE-System Engineering, SM — System Machine, SQ-System query)
b) Custom T code: They are created & maintained by ABAP Technical Consultant
‘SE93 is used to work with custom T-code.
> TSTC-~ Itis the standard table which contains all the Transaction Codes in the system.
> TFDIR - Function Modules
34) What is Data Dictionary/DDIC?
Ans: Data Dictionary is central & structured source of data. The data objects can be referred
anywhere in the system & the data definitions are maintained in the DDIC..what is the difference b/w data dictionary and database?
a:data dictionary is a central repository where the defined all the object related to database. A
database is an organized collection of data
Q) What is the basic Difference between internal tables and database tables? How can we
differentiate by looking at the tables? And how Handling of Internal Tables?
Ans :- The basic Difference is database tables are Stored in DB Server and the internal tables are
virtual tables these are created run time only.
q.what is data consistency
a:Data Consistency means each user sees a consistent view of the data including changes made by
the user own transactions & others transactions.
35) Explain about 3-Tier Architecture?
Ans: 1, Presentation Layer (GUI): It is an environment where
the users are sent for the services.
2. Application Layer: It receives requests from the presentation layer to get them processed.
It also sends back the services to the presentation layer. There are 4
types of components in application layer.
a. Dispatcher: It is a link between the presentation layer & the work process. It receives
the request from the presentation layer & sends them to an appropriate work process
to get them processed.
b. Gateway/Layer: It is a communication protocol of the cross application components
such are RFC, BAPI etc. It provides link between two SAP systems.
. Shared Memory: It is a common memory which can be shared by all the work process.
d. Work Process: It is a component to execute the applications.
3, Database Layer: It is central repository of the data. It provides data base services to group of
clients.
36) What is Command field?
Ans: It is used to execute the T-codes in SAP which is located on standard tool bar.
Jo: It is used to execute the T-code in another new session.
In: It is used to execute the T-code on the same session by closing current session.
37) What are Workbench objects/tools?Ans: It is a collection of tools which can be used to develop the applications, change the existing
applications & implement the customer specific business requirements.
38) What is Object Navigator?
Ans: It is the central point of entry to work with any kind of work bench objects such as Programs,
DDIC objects, Function groups etc. The T-code is: SE80.
39) What is Foreign Key?
Ans: A key field is defined as a table field & is primary key of another table is called foreign key.
> The Check table field should be a primary key.
> The Domain name of the Check table & foreign key table should be same but field name is
different.
> Asearch help is displayed to see the possible entries of a check table on the for
when the foreign key table is executed.
in key field
40) What is a Client Dependent & Client Independent table?
Ans: The table which have the field MANDT field (Client no) is called Client Dependent table.
The table which don’t have the MANDT field (Client no) is called Client Independent table.
41) What are Key field & Non-key fields?
Ans: The key fields don’t allow duplicates. It contains unique data. The key field check boxes are
checked to make the fields as primary ke}
The non-key fields may/mayn't allow duplicates. The key field check boxes are unchecked.
42) What is Initial Value Check box?
Ans: The Initial Value Check box is checked to take the default field values of the key fields for the
1* time.
43) Differences between the tables created using Data elements & Pre-defined types?
Data elements Pre-defined types
4. Data elements can be reused 4.Reusabilty is not possible
2. Foreign key relationship can be created since | 2. Foreign key relationship in not be created.
it contains domains.
3. Field labels(Headings) are displayed while _| 3. “+” symbols are appeared while maintaining the
maintain the table. table instead of field labels.
44) What is a Logical Database?
Ans: Logical Databases are ABAP programs that retrieve data and make it available to
application programs. Use of LDB ~ is used to read data from database tables by linking
them to executable ABAP programs.
45) What is Hotkey?> This is used to select the elementary search help from the collective search help.
> Toenter the restrictions in the dialog box for restricting values directly from the entry field.
‘Advantage: If the user often searches for values using the same search help, this procedure can
save time.
46) What are the Important Tables to store the Definitions of DDIC?
Table ‘Short Text
DDOIL Domains
DD01T Domain Texts
DpozL ‘SAP Tables
‘DD02T ‘SAP Table Texts To find table names using Short Description
DDO3L Table Fields
DDo3T Texts for fields
DDO4L Data Elements
DDO4T Data Element Texts
DDO5S Foreign Key Fields
TSTC Transaction Codes
TFDIR Function Modules
47) Explain about Currency or Quantity fields in DDIC?
> In SAP the currency & quantity fields are required currency key & quantity unit. Hence, the
reference table & the reference field must be specified for currency & quantity fields.
The data type for the currency field is ‘CURR’ & the data type for the currency key is ‘CUKY’.
The data type for the quantity field is ‘QUAN’ & the data type for the quantity key is ‘QUAN’.
The reference table could be any table which has the currency key & quantity unit fields.
The same table can also be used as a reference table if it has the currency key or quantity
unit fields
vvvy
48) What are different types of Data Dictionary Objects?
1. Database Tables
2. Domains
3. Data types
a. Data element
b. Structure
c. Table type
4. Search helps
a. Elementary search help
b. Collective search help
5. Views
a. Database view
b. Maintenance viewc. Help view
d. Projection view
6. Lock objects
a. Write/Exclusive Lock
b. Read/Shared Lock
c. Exclusive But not Cumulative
7. Type groups
> The Objects Views, Match Code and Lock objects are called Agaregate Objects because they
are formed from several related table.
49) What is Client & Server?
> Client: It is a software/hardware combination which can send the requests for services from
the central system.
> Server: It is a software/hardware combination which can provide the services to a group of
FundamentalsFundamentals
1) Explain about ABAP Queries?
Ans :- It is the system provided tool to generate the reports. It doesn't require any programming
Knowledge.
2) What are the Transaction Codes associated with ABAP Queries?
Ans:- The T-Codes $Q03 , $Q02, SQ01 are used to work with the ABAP Queries.
3) What are the purposes of SQ01, SQ02 and SQ03?
Ans :-
'$Q03 :- It is used to maintain the user groups. A user group is a collection of Info sets and
Queries. User groups can also be used to control the user authorization to access the
corresponding queries.
'$Q02 :- It is used to maintain the Info sets . These are used to specify the different data
sources form which the data can be extracted,
SQ01 :- Itis used to maintain the Queries . It is used to select the Input (selection fields) &
Output (list fields).
4) Is it possible to write an ABAP code in Queries?
Ans :- Yes . Using Code icon (shift+f8).
5) What is the difference between TYPE and LIKE?
Ans :-
TYPE: - It is used to refer the both Elementary data types (I, F, P) & DDIC objects such as
data elements, tables, structuresm db views, fields etc.
‘+ This Statement doesn't copy the existing properties of the objects.
‘Syntax: DATA : TYPE LIKE .
* This Statement copies the existing properties of the objects.6) What is the default type and length of the variable?
‘Ans :- The default type is Character ( C ) and length is one (1).
7). Differences between Write & Move Statement?
‘Ans: Write: It is used to move the data from the source data variable to destination variable without
missing conversations. i.e; Currency & Quantity fields.
Move: : It is used to move the data from the source data variable to destination variable with
missing conversations(may be missed out).
In case of Write In case of Move
5,895.50 5895.50 5,895.50 5,89550
32) Differences between Types & Field Strings?
Types Field Strings
1. They can be used as reference for Work area’s | 1. They can be used to declare Work area's &
& Internal tables Internal tables directly.
2. The ABAP statement TYPES Is used to declare | 2. The ABAP statement DATA Is used to declare
Types. Field Strings.
3.It don’t hold the data since they are not data _| 3. It holds the data since they are data variables.
‘objects.
8) What are the differences between Work Area and Field Symbol?
Work Area Field Symbol
4. Itis the data variable. 1. Itis a Pointer.
2. The ABAP statement is DATA is used to declare the | 2. The ABAP statement FIELD-SYMBOLS
work areas, Itabs, variables etc in application program. _| is used to declare Field symbols.
3. The ABAP statement INTO is used to process 3. The ABAP statement ASSIGNING is
record by record through work area . used to assign the FIELD-SYMBOLS .
4. The ABAP statement MODIFY must be used to 4.No need to use MODIFY , Since it is a
modify the internal table . pointer .
5. It Must be specify within the Angular
5. No need to specify within the Angular brackets (<>). | brackets (< >).
Q) Field symbol work as a pointer, but it store address of value. my question is , it got address from
‘sap memory or ABAP memory or in database server ? | mean that address indicate to which
memory?
a: It allocate ABAP Memory
9) Differences between Work area and internal tables?
Work Area Internal Tables
4. It Holds single record at a time. 4. Holds Multiple records.
2. It doesn't have BODY. 2. Ithas BODY J.
3.The Record by record is processed _| 3. In case of internal table with header line the record by
through the work area record is processed through header line.Q) What is difference between Internal Table without Header Line and Internal Table with Header
Line?
Ans: Internal Table without Header Line creates an internal table and work area separately. When we
use, the Internal Table with header line, table is created then the work area is created automatically
with the same name that of the internal table.
Q. what is the main difference between header line and work area?
‘Ans:
> Header line is created by default when we create the Internal table using "begin of” or
explicitly “with header line". Using header line we can pass the value into the internal table.
» Work area should have the same structure as that of internal table. It should be created by
us, where as the header line is created automatically. Work area it hold the single data during
the execution of the program.
» Function of work area and header line is same. Both are used to processed the data from
internal table .as i know the default work area of an internal table is a header line.
10). Explain about Types.
Ans :- TYPES :- It is used to club the multiple fi
ids from the multiple tables as a single unit . It is
used as a reference to declare the Data variables, Work areas, Internal tables etc.
DATA: It is used to declare the data variables such as variables, work areas, internal
tables etc in an application program.
Syntax: - TYPES: BEGIN OF ,
TYPE ,
TYPE ,
END OF .
DATA: TYPE . //declare the work area
11) What are the different ways to declare the Internal Table and which is preferable?
Ans :-There are two ways to declare the Internal tables.
1) Syntax:-
DATA: TYPE STANDARD TABLE OF TYPE TABLE OF WITH HEARDER LINE.
12) What are the differences between PARAMETERS and SELECT-OPTIONS?
. WPreferable.
PARAMETERS SELECT-OPTIONS
1. It is used to define Check boxes, List boxes, 1. It is used to define Single & Range input
Radio buttons & single UP fields. Fields.
2.The ABAP statements TYPE/LIKE is used to refer
the Data types 2. The ABAP statement FOR is used.3. The Operator 'EQ' or '=" is used inthe WHERE —_| 3. The operator ‘IN’ is used inthe WHERE
condition. condition.
4. It is system generated internal table with
4. It is use as an single input data variable the fields SIGN, OPTION, HIGH & LOW
5. It behaves as p_input = ‘= space’. 5. It behaves as s_input =".
13) What are the different types of internal tables and explain about them?
Ans
Internal Tables: - They are the intermediate tables to hold the multiple records at run time.
> There are 3 types of internal tables.
1. STANDARD Internal tables: - The standard Internal Tables are filled using the
ABAP statement ‘APPEND'INSERT’. It accepts the duplicate records. Searching
of a record is Linear Search. It is the default index table. Standard internal table
can be sorted explicitly either Ascending/Descending.
Syntax: - DATA: TYPE STANDARD TABLE OF .
2. SORTED Internal table: - The ABAP statement 'INSERT/APPEND' is used to fill
Sorted Internal Table. It does not accept the Duplicate records. Searching of a
record is Binary Search. Sorted internal table cannot be sorted explicitly. An
additional statement with UNIQUE/NON-UNIQ UE key must be used to declare
Sorted Internal Tables.
Syntax :- DATA: TYPE SORTED TABLE OF WITH
UNIQUE/NON-UNIQUE KEY .
3. HASHED Internal tables: - They are Non Index tables. The Hashed Internal Tables holds huge
amount of data than Standard & Sorted internal tables since they follow ‘Hashed Algorithm’.
The ABAP statement ‘WITH UNIQUE KEY' must be used to declare Hashed Internal Tables.
It holds huge amount of data (2 GB) than standard & sorted internal tables.
‘Syntax:- DATA: TYPE HASHED TABLE OF WITH
UNIQUE KEY .
Q) Can we sort internal table without using SORT statement. Explain?
Ans: We can sort internal table without using SORT statement by declaring sorted internal table.
Ex: DATA: IT_MARA TYPE SORTED TABLE OF MARA.
Q) What is the Size of the internal tables?
Ans :- Internal Tables have 2GB (Giga bytes) of memory space and the initialize size is of 8 kb which
can be extend further.
14) How to define SELECT-OPTIONS without specifying the table name?
‘Ans :- By declaring a Global Variable and use it as a reference while defining a select option
instead of TABLES statement .
TABLES: This statement is used to specify the database tables/database structure namesing the SELECT-OPTIONS
Which can be used as a reference while dec!
* This statement in not advisable since it creates unnecessary work areas.
¢ The Tables statement can be avoided by declaring the required data variable.
15) Explain few of the additions to PARAMTERS and SELECT-OPTIONS statements.
Ans :- Obligatory: It is the keyword to make the input field as mandatory
Default: It is the keyword to pass the default values to the input fields.
\@ the checkboxes in the selection screen
As checkbox: It is the keyword to di
Radio button group: It is the keyword to define the radio buttons in the selection screen
As list box: It is used to define the dropdown list in the selection screen
MATCHCODE OBJECT: It is used to specify DDIC search help to the input fields
MODIFID: It is used to assign all the screen elements to the modification group to format the
Selection fields dynamically
is used to make the input fields as case sensitive to accept both upper &
LOWER CAS!
Lower case letters
Memory ID: It is the keyword to access the field value from one session to another session
Additions of SELECT-OPTIONS
a) NO-EXTENSIONS: This addition is used to hide the multiple selection button in the
Selection screen.
(his addition is used to hide the higher limit of select-options in the
b) NO INTERVAL
Selection screen.
jon is used to pass the default values to lower & upper limits
©) DEFAULT...TO: This ade
Q) What is pretty printer?
Ans: This is used to align a program & convert the keywords/source code in upper/lower case.
It is preferable to convert the keywords in uppercase.
16) Explain Some Additions to Report statement?
Ans: 1.No standard page heading: This addition is used to hide the page heading in the output.
Line size: This addition is used to specify the width of a list in the output. The default width
of basic list is 255 characters.
3. Line count: This addition is used to specify the length of the output list in a page.
4, Message ID: This addition is used to specify the message class17). Differences between Ranges & SELECT-OPTIONS?
Ans: It is used to define range internal tables. It is similar to SELECT-OPTIONS.
> SELECT-OPTIONS are displayed in selection screen where as Ranges doesn't displayed in
the selection screen.
> The standard structure ‘SELOPT’ is referred for SELECT-OPTIONS/Ranges im
explicitly.
Q) Some Keywords?
‘Ans: Append: It is the keyword used to append record by record from work area to at last record of
ly or
the internal table. APPEND creates always a new row in the internal table. It Allows.
Duplicates. Here it will not check whether the record is existed with the same field
values or not.
Syntax: APPEND TO .
Insert: This statement is used to insert a new record at any position of an internal table. If the
row (key) e:
Syntax: INSERT INDEX ? SY-TABI
UPDATE: This statement updates an existing record to the table. If the row (key) does not exist,
s, issues an error.
issues an error.
MODIFY: If the key exists, modifies the record. If the key does not exist, adds the record to the
table.
Collect: It also used like an APPEND statement. Collect statement will remove the duplication
while adding the records. This statement is used to compare character/string fields data
& summarizes the numeric field data. It is used to display sub-totals.
Syntax : COLLECT INTO .
Lines: It is the keyword which returns no of records available in the internal table.
Occurs: It is the keyword; it allocates 8KB of memory for the internal table by default. If the data
in the Internal table exceeds 8KB then it will bring one more 8KB of memory & so on up
to 2GB.
Clear: It clears the contents of the work area & internal table with header line ITAB[ ] & variables
Refresh: It clears the contents of the internal table only.
Eree: It clears the contents of internal table along with allocated memory.
19) Explain about the System Fields with which you have worked?
INDEX Index of the loop
DATUM Current system date
UZEIT Current system time
‘SUBRC Written code of the ABAP keywordsTABIX Index of an internal table
DBCNT The no. of extracted records from the database
BATCH Program is running in back ground
REPID Current program name
18) Explain some of the useful additions of WRITE statement?
WRITE: / -~>it is used to display the data in a new
.WRITE: In (m) ——->Displays 'm' characters form position ‘n'.
-UNDER OTHER OBJECT —> To display the data under the previous displayed data.
(OLOR —> It is used to display the data in different colors. color codes[0 - 7]
.LEFT-JUSTIFIED/CENTERED/RIGHT-JUSTIFIED: These are used to adjust the data at
left hand side, center & right hand side.
* AS CHECKBOX —>Display the checkboxes in the output.
+ ...EDIT MASK —> It is used to display the mask on confide!
data.
‘+ ..INPUT: Itis used to make output list as editable.
+ .NO_GAP -~->To remove the gaps in the data.
‘+ ...CURRENCY: It is used to specify the currency keys for the currency data variables.
+ ...UNIT —> It is used to specify the required units while displaying the quantity data.
+ ...HOTSPOT :
is used to display the hand symbols on the output data when the cursor
is placed.
20) Explain about String Comparison Operations and Mathematic Functions?
Ans
The below string comparison operators can be used to compare the string data variables.
Operator
Contains Any (CA)
Contains Not Any (NA)
Contains Only (CO)
Contains Not Only (CN)
Contains Pattern(CP)
Contains No Pattern(NP)
Contains String (CS)
Contains No String(NS)
GA: This condition becomes true when the source string cont
the target string.
1S any one of the character in
NA: This condition becomes true in case of string comparison operator CA is false.
CO: This condition becomes true, when the source string contains only the similar string in the
target string including case.
CN: This condition becomes true in case of string comparison operator CO is false.
CP: This condition becomes true, when the source string contains the specified pattern in the
target string.NP: This condition becomes true in case of Logical expressions with a string operator CP is
false. (Opposite to CP)
CS: This condition becomes true, when the source string contains similar string in the target in
both Upper & Lower case (not a case sensitive).
NS: This condition becomes true in case of string operator CS is false (Opposite to CS).
Mathematical Functions: - The below Mathematical operators can be used on the numbers.
Statem
Operator ent
Equal To EQ
Not Equal To NE
Less Than LT
Greater Than GT
Less Than or Equal To Le
Greater Than or Equal To | GE
21) Explain about Constants, Text Symbols, Selection Texts and Variants?
Constant:
hey are used to avoid the hard coded text in the programs and improve the
reusability in the program. The ABAP statement ‘CONSTANTS ' is used to define constants.
Text Symbols: - The ABAP Statement TEXT followed by the symbol number (XXX) can used to
define or call the text symbol.
Selection texts: - They are used to maintain the Field labels (descriptions) of the input fields of
the selection screen. The T-code SE63 is used to translate the text elements.
Vat
They are used to save the input data for further execution in the selection screen.
They can also be used to avoid the data entry errors & schedule a program in the back ground.
22) Explain about the useful String Operations?
Operator Description
STRLEN Returns the no of chars/length of the string
CONCATENATE | To combine the multiple strings into single target string
REPLACE To replace with one string to another target string
FIND Find the string in the source String
SPLIT Separate the source string into diff strings
CONDENSE It compress the string without any gaps
TRANSLATE It translates the string into upper/lower case.
SHIFT It shifts specified no of places at Left/Right.
2. How to retrieve the deleted program?
> [recently deleted a custom program (which is already transported to production)
accidentally and was wondering if there is any method of retrieving the program back.
After some research, | found a way of getting back the program.
Following are the step:
getting back the program:Ans: 1) Create a program with the same name as earlier (which is deleted)
2) Click on "Utilities" -> "Versions" -> "Version Management"
3) Select the version of your earlier program and click on display.
4) Your earlier program is displayed here.
26) What are the differences between Classi
| Reports and ABAP Queries?
ABAP Queries Classical reports
1. It is the system provided tool to generate the reports. _| 1. Itis a Utility.
2. It requires the programming
2. It doesn’t require any programming language. language.
3. Itis not possible to change the system generated 3. It can be change since itis in
| program without having Access key. Custom name space (Z or Y).
4. Column Alignment is done by the system. 4.1t is COMPLEX to Align the Columns
23) Explain some of the useful additions of Selection-Screen?
Ans
This statement is used to format the selection screen. The default
screen number for the selection screen is 1000.
SELECTION-SCREEN:
‘Some of the useful Additions:-
. BEGIN OF BLOCK....WITH FRAME:
it is used to define the selection screen blocks
with frames
WITH FRAME TITLE: - An addition TITLE with the selection screen FRAMES is used
to define the TITLES for the selection screen Frames.
SKIP: - It is used to keep the blank lines in the selection screen.
‘+ ..ULINE: - To display horizontal lines in the selection screen.
BEGIN OF LINE: - It is used to define the input fields, radio buttons, push buttons,
check boxes etc in the same lini
.PUSH BUTTON: It is used to define the push buttons in the selection screen.
-LINE: It is used to define the Input fields, Radio buttons, Check boxes, Push buttons
etc in the same line.
24) What are the differences between Normal Search (SELECT...ENDSELECT) and Pointer Search
(INTO TABLE)?
Normal Search(SELECT.....ENDSELECT) Pointer Search(INTO Tab!
1. It hits the data base table for each record since it | 1. It hits the data base table once to extract
is a loop statement all the required data since it is a statement
2.The ABAP statement ‘APPEND’ must be used to
append record by record into an internal table 2. No need to use ‘APPEND
3.Some times it may give runtime error while
debugging 3.It doesn’t give any short dumps
4,Not advisable due to lack of performance & data | 4. Itis advisable since it extracts the data
base load faster & has good performance25) What is the difference between SY-INDEX and SY-TABIX?
* SY-TABIX: SY-TABIX is a system variable which stores the index current processing record
of an internal table. So when you are looping over an internal table, you use SY-TABIX.
LOOP AT ITAB INTO WA. “*SY-TABIX stores index number of internal table record ENDLOOP.
+ SY-INDEX: SY-INDEX is a system variable which acts as a loop iteration counter, it stores
loop iteration number. When you use DO ENDDO / WHILE for looping, there is no table
involved. So you use SY-INDEX.
Ex: DO 10 times. **SY-INDEX stores number of iteration of loop ENDDO.
26) What are the differences between Classical Reports and ABAP Queries?
ABAP Queries Classical reports
4. It is the system provided tool to generate the reports. _| 1. It is a Utility.
2. It requires the programming
2. It doesn't require any programming language. language.
3. It is not possible to change the system generated 3. It can be change since it is in
| program without having Access key. Custom name space (Z or Y).
4. Column Alignment is done by the system. 4. is COMPLEX to Align the Columns
Q) What is the difference between SKIP and NEW-LINE?
Ans: SKIP generates a blank line, while the NEW-LINE causes the control to move to next line.
Q) One of my users has access to SE38 transaction, and so he can run the program developed by
you. You have attached this reportitransactional program to a particular Z* transaction. To restrict
the users to execute this program, what you do it from programming side?
Ans: Check for Authorization object S_TCODE with value “Z—" in initialization event.
(Code: Authority-check object ‘S_TCODE’ id ‘TCD’ field ‘ZBC_REQ’.)Modularization TechniquesModularization Techniques
1) What are the Modularization techniques which you follow?
‘Ans :- They are used to organize the ABAP code in the proper way , make the program more
Understandable and make use of the code re-usable to avoid the duplicate data.
To divide the business processing logic into reusable block of statements.
¥ Following are the different types of Modularization techniques
© INCLUDES: These programs are part of another main/include programs. Include
programs can’t be executed independently whereas the same include program can be
included in any no of executable programs. The ABAP statement INCLUDE is used to
call or define the INCLUDE programs.
© Subroutines: These are statements local modularization techniques. The sub-routines
can be debugged at run time. Calling should be 1* & Definition should be next. The
ABAP statement PERFORM is used to call the sub-routines & FORM...ENDFORM is.
used to define the sub-routines.
There are 2 types of sub-routines.
1. Internal Subroutine: These are defined & called in the same program.
Il, External Subroutine: These are defined in one program & called in another
program.
Actual Parameters: The parameters which can be called while calling the
‘subroutines (with PERFORM statement).
Formal Parameters: The parameters which can be passed while defining the
‘subroutine (with FORM statement).
> The no of actual parameters should be similar to the no of formal parameters.
> The sub-routines definitions should not be nested (form with in the form) but the
‘sub-routine can be called within the sub-routine.
> The statements between 2 sub-routines definitions cannot be accessed© Macros: These are used for the complex write statements & for long calculations.
Macros can take up to 9 place holders (&1.... &9). In macros Definition should be 1" &
Calling should be next. The ABAP statement, DEFINE...END-DEFINTION is used to
define a macro. The macro definitions cannot be debugged at run time. The standard
table TRMAC pooled table is used to maintain macros.
© Function Modules: These are global modularization objects. The function modules
can be called any where in the same system & in another system also. The fun
modules are defined in function builder.
‘ion
The T-code SE37 is used to work with the function modules & SE80 is used to work
with the function group. The function modules should be assigned to a function group
& Function group is the collection of function modules.
> The standard table ‘TEDIR’ is used to find FMs since it contains the entire
Function module in the system.
> Normal Function Module: These are defined & called in the same system to
reuse the central source code.
unction Module: These are defined in one system & can be called
another system.
> Update Function Module: This is used for SAP LUW (Logic Unit of Work). These
function modules are triggered in case of implicit or explicit COMMIT work is
mot
encountered. Commit Work is used to make changes in data base permanently.
© Message class: This tool is used to maintain the Messages in the message pool.
They are used to give messages for instructing the users.
The standard T-Code SE91 is used to work with the message pool.
Different types of messages are Error, Success, Warning, Information, Abort, Exit.
‘Syntax: MESSAGE ‘’ type ‘E//W/S’.
o Text symbols & Constants: The ABAP Statement TEXT followed by the symbol
number (XXX) can used to define or call the text symbol. Constants are used to avoid
the hard coded text and improve the reuse them in the program.
The T-code SE63 is used to translate the different types of text elements.
2) What are the differences between Subroutines and Function Modules?
Subroutines Function modules
1. These are local. We can access the 1. These are global. We can access the
Subroutine within the server only. function module with in server as well as
Outside the serve
2. We can’t execute the subroutine 2. we can execute function module
independently independently using the T-code SE373. Subroutines can’t handle the Exceptions.
Function module can handle the errors
through Exceptions.
3) What are the differences between Macro & subroutine?
Macro
‘Subroutine
1. Definition & calling in the same program.
1. Definition & calling may/may not in the same
Program.
2. Definition should be the 1* & calling should be
The next.
2. Calling should be the 1* & Definition should
Be the next.
3. Macros can take up to 9 inputs.
3. Subroutines can take any no of inputs.
4, Macros cannot be debugged.
@, Sub-routines can be debugged at run
4) What are the different parameters in Function Modules and Explain about them?
Ans:
> Attributes:
Following are the different types of Parameters in Function Modules
It contains technical properties of a function module such are type of function
module, function group.
> Import parameters :
They are imported from the calling program to the function module.
> Export parameters:
‘These are used to exported the data from the function module to the calling
programs.
» Changing parameters:
‘These are imported from the calling program, changed them in the function
modules & exported/returned to the calling program. (Import -> Change -> Export)
> Tables:
These can be used to import & export only for internal tables.
> Exceptions:
They are used to raise/handle the messages in the function module based on
return code (SY-SUBRC).
> Source code: It is used to write central ABAP source code.
5) Explain about different methods to pas
the parameters to sub routines?
Method Effect
It is the default method. The pointer used the same memory
BY allocation for both actual & formal parameters. From calling to The Actual parameters
Refere | definition & definition to calling, all parameter values are passing | are changed with the
nce _| along with the memory. Formal parameters.
The system allocates new memory. The allocated memory is freed | The Actual parameters
By once the subroutine ends. From calling to definition & definition to | are not changed with
Value _| calling, the parameter values only passing. the Formal parameters.
By Itis almost similar to By value but only the difference is the Formal | The Actual parametersValue
and
Return
parameter values are returned to Actual parameters.
q:How to convert Normal function module to RFC enabled Function Module?
a:In FM attribute, select the Remote Enabled Radio Button, to convert FM to RFC.
> COMMIT Work: This statement is used to make changes in database permanently
& complete current SAP LUW.
> ROLLBACK WORK: This statement is used to terminate current SAP LUW without
making changes in database.sDebugger
Debugger
1) Explain about Debugger, Break points and Watch points?Debugger :- This tool is used to check the program line by line & block by block for finding
and rectifying errors or bugs.
Break Points:- These are Statement based. They are used to stop the program in the
debugger tool for checking line by line or block by block.
‘+ Break points are of 4 types. We can place up to 30 break points in the program.
1, Session Break P.
: An icon set/delete breakpoint icon or click on statement line at
gray color vertical selection in the source code.
2. Static Break Point: The ABAP statement BREAK-POINT/BREAK is used
to set the Static break point. The ABAP statement BREAK-POINT should not be
used since all the users are stopped.
3. Dynamic Break Point: They are used to check the program in case of not possible to
find a location. The command /H is used to set dynamic break points. The program is
stopped at the first statement line of the performed action.
4, External Break Point: They are used to check the cross application components such
as RFC, BAPI from one system to another. An icon set or delete external break-points
is used to set or delete external break-points.
Watch Points: - These are Condition based. They are used to stop the program once the set
condition is reached. The Watch points can be set inside the debugger tool. We can place up to
9 watch points in the program. We can reduce debugging time using watch
2) Differences between Classical & New debugger?
Ans:
Classical debugger New debugger
Titis the old debugger Titis introduced from the version ECC 5.0
2.It runs on the same session to check & resolve | 2.|t runs on the separate session
the issues in the program
3. It has Lots of limitations such as different 3.It is very efficient too! to check lots of actions
desktops are not there, no separate sections for | such as different desktops, separate actions for
local , global Variables ete local & global Variables & objects at a time
Single Step F5: The function key F5 is used to check Line By Line of the program.
Execute F6: The function key F6 is used to check Block By Block of the program.
Return F7: The function key F7 is used to Return from the source code of the process blocks such
as sub-routines, function modules, methods etc.
Continue F8: The function key F8 is used to jump from one break point into the next break point
then execute once the last break point is reached & then execute.
3) How to debug Background Jobs?
‘Ans: The Background jobs can be debugging using the command ‘JDBG’.a
Execute the T-code SM37
Check the required background job to be debugged.
Enter JDBG in the Command field & Press Enter
Keep on pressing F7 until the required program is stopped.
Use the Function keys F5/F6/F7 to check the program Line by
once it is reached.
Y
vvy
4) What are the steps to debug Pop-up window?
Ans:
> Create a text file with the required statements & save it on Local PC/Desktop.
[FUNCTION]
COMMAND = = ‘IH’
Title = ‘Debugger’
Type = ‘System Command’
> Minimize the SAP Pop-up window screen to appear both Text file & Pop-up window screen.
> Drag & drop the saved text file into Pop-up window screen.
Note: The system gives the success message as Debugging Switched ON.
> Perform the required action to stop the corresponding program (Yes button).
5) What are the types of execution modes?
Ans: There are 2 types of execution mode to execute a program or the transaction codes.
1. Forearound: It is used to execute the programs or the transaction codes.
execute icon or F8 function key. It requires user interaction.
rectly by pressing
2. Background: This execution mode is used to execute the programs or the transaction codes
periodically such as Hourly, Daily, Weekly, Monthly etc in background. It doesn’t
require any user interaction. The variants must be created before the programs are
scheduled in back ground.
> The T-code SM36 is used to define the background jobs &
> The T-code SM37 is used to check the status of the background jobs.
The standard function modules JOB_OPEN -> To open back ground job
JOB_SUBMIT -> To submit job in back ground
JOB_CLOSE -> To close scheduled job.
Q).we go in debugging but Am in Sth line of debugging and i want to go again in 4th line of it then
how to do that?
a:Once u enter in the debugging screen put the courser on particular line from menu debugging
select go to statement.Reports Events
EVENTS
1) What are the Selection-Screen events, explain?a
AT SELECTION-SCREEN -> This event
selection screen.
g Input to the
> AT SELECTION-SCREEN OUTPUT ->This event is triggered while performing any
action in the selection screen. It is used to modify (format) the selection screen.
> AT SELECTION-SCREEN ON -> This event is triggered after input values provided
in the selection screen based. It is used to validate/check the input data of the
selection screen.
» AT SELECTION-SCREEN ON VALUE REQUEST FOR -> This event is triggered
when the user clicks on F4 button. The standard function module
F4IF_INT_TABLE VALUE REQUEST can be used to display the possible entries
as search help.
v The function module DYNP_VALUES _READ is used to capture the
‘selection field values in the same selection screen for Dynamic search help
> At selection-screen ON HELP-REQUEST FOR -> This event is triggered when the
user clicks on F1 button .The standard function module ‘HELP_OBJECT_SHOW’
can be used to provide the Help document to the input variable. The T-code
‘SE61/SO72 is used to maintain the Help documentation as per the specific
3) How many Times the Event INITIALIZATION Triggers while displaying the list of 20 pages and
also TOP-OF-PAGE?
nm.
Ans
INITIALIZATION Triggers Only One time and TOP-OF-PAGE triggers 20
4) What is the pre-requisite to use “FOR ALL ENTRIES”?
Ans :- The Base internal table which can be used in the ‘FOR ALL ENTRIES' statement must be
checked whether it has data or not.
Question: what are the Pre requisites for binary search?
The list of array (elements or items) that are to be searched for a required element should be in
ascending order or sorted order for the search to be performed.
Eg: 21,3, 4,2,5
search for 2 -> not found
2,3, 7, 56, 133
search for 2-> found
5) What are Joins & types of Joins?
Ans: Joins are used to fetch the data from more than one table.1. Inner join: This statement is used to extract the data from the multiples tables by
joining them. Up to 2 tables can only be joined. For more than 3 tables is
not advisable as it puts heavy load on database
2. For all entries: This statement is used to extract the data from the data base table
based on the entries of the Base internal table. The load on data base
will be very less.
6) Explain about Loop termination statements?
Ans
The following statements are used to come out of the loops and continue with the next
loop statements.
+ EXIT: - This statement is used to come out of the loop statement and continue with the
next statement line outside of the loop statements in the program.
+ STOP: - This statement is used to stop the Loop process along with the next part of the
loop statement.
+ CONTINU!
This statement is used to stop the current loop process and continue with
the next loop process.
+ CHECK: - This statement is used to check the specified conditions and continue with the
next loop process.
> CHECK = CONDITION + CONTINUE.
1.Which of the following is not an EXIT command?
options: BACK, CANCEL, STOP, EXIT?
a:STOP
7) Explain about the events associated with Classical Reports?
> LOAD-OF-PROGRAM : This event triggers at the time of loading the program
into a memory. We didn’t wrote in program level.
> INITIALIZATION: This event is triggered before the selection screen is
displayed. It is used to clear & refresh the data variables and used to pass the
default values to the selection fields.
> AT SELECTION-SCREEN: This event is triggered after providing the input in the
selection screen.
> START-OF-SELECTION: It is the default event & mandatory to execute any
executable program. It is used to fetch the data from the DB. If no event is used
in the executable program, the entire program will be triggered under
Start-Of-Selection. When ever you are going to use any one of the event before
‘select statement we must use start_of_selection event.<=
END-OF-SELECTIO!
processed. It is used to specify the data process statements.
> TOP-OF-PAGE: This event is triggered with the first ULINE/WRITE/SKIP/NEW
PAGE statement in START_OF-SELECTION event in the program. It is used to
event is triggered after Start-Of-Selection event is
display the column headings.
END-OF-PAGE: This event is triggered at the end of each page. It is used to
display the footer details of a page such as totals etc..The report addition
LINE-COUNT must be specified to trigger this event.
8) Which is the default event?
%
Ans :-The default event is START-OF-SELECTION If no event is used in the executable program, the
entire program will be triggered Start-Of-Selection. The main program begins with this event.
9). Is it possible to display previous drill down list from current one?
Ex: If suppose am in 10" drill down list. Is it possible to display 5" drill down list from current list?
> Ihave 1 basic list and 15 secondary lists in interactive report. If i am in 9th list, how can i
come directly to the basic list?
Ans: Yes. By re-setting list index = 5. i.e; SY-LSIND = 5.
> System variable SY-LSIND stores the list number, by using this we can go to basic list.
10) In interactive report if user 19 times double clicked, again he want to main screen. How can do
this?
Ans: If Sy-ucomm ="BACK’.
Leave to screen 0.
End if.
Question:If i double click on any sales order no it should take me to the transaction how?
a: Use AT USER-COMMAND.
CASE SY-UCOMM.
WHEN 'SONo'.
GET CURSOR FIELD FNAM VALUE FVAL.
SET PARAMETER ID ‘VBE' FIELD VBELN.
CALL TR VA01 AND SKIP FIRST SCREEN.
11) What are the events associated with Interactive Reports?
Ans :- Following are the EVENTS associated with the Interactive Reports .
> ATLINE-SELECTION: This event is triggered at the time of user clicks on any
record of any list. It is used to provide the detailed list based on the current list.The system field SY-LSIND holds the Index of the next drill down list.
> ATUSER-COMMAND: This event is triggered at the time of user clicks on any
‘menu item. This event is used to provide the additional functionality based on
the selected push button.
> ‘TOP-OF-PAGE DURING LINE-SELECTION: This event is triggered with the first
WRITE/ULINE/SKIP of the drill down list. It is used to provide the column
headings for the drill down list.
> ATPF: This event is triggered when the function key is pressed. This event is
used to provide the additional functionality based on the selected menu item.
> SET PF-STATUS: This event is triggered at the time of attaching our own GUI
to the list. It is used to call the menu status.
> Up to 35 Push buttons can be created on the Application tool bar.
12) What are differences between Classical & Interactive reports?
Ans:
> The Classical reports are used to display the entire information in a single/ basic list
> The Interactive Reports are used to display the summarized information in the ba:
t
& detailed information in the next drill down list. Up to 20 secondary lists are provided &
the total no of lists are 21.
13) Which techniques used to identify the record which was clicked by the user in the previous list?
‘Ans: HIDE & GET-CURSOR
HIDE: This statement is used to hide the selected field value which can be passed to the
corresponding drill down list to filter the unwanted records. It is used to capture the
selected field values to the next drill down list. Hide statement provides Single drill down list.
GET-CURSOR: This statement is used to capture the selected field values & field names based
on the cursor position. This statement provides drill multiple down lists.
14) What are the System Fields associated with Interactive Reports?
Field name Description
LSIND Index of the next drill down - contents of the current list Index no
LISEL Selected list line value - contents of the selected record
LILLE Selected list line number ~ contains the exact line no of the selected record
ucomm _| Fun. Code of the selected push button/Menu item
PFKey Function Key
15) What are the Control Break Statements, explain about them?
Ans :-
Control Break statements: - They are used to control the data flow of an internal table.> The Control break statements start with AT and ends with ENDAT.
> These statements should be used within the LOOP statements only
> Following are the different types of Control break statements.
+ ATEIRST: - This event is triggered at the first record of an internal table. This is used to
display the Header information.
* AT.NEW: - This event is triggered at the first record of each block. This is used to display the
individual headings.
+ ATEND OF: - This event is triggered at the last record of each block. This is used to display
the total/sub totals in the internal table.
+ ATLAST: - This event is triggered at the last record of an internal tabl
+ ON CHANGE OF: - It is a special control break statement which can be used outside of the
loop statement also.
> Itis almost similar to AT NEW statement but it doesn't consider the preceding fields.
> Itcan be used on the multiple fields using SET operators (AND, OR, BETWEEN).
16) What is the difference between ATNEW and ONCHANGE OF?
AT NEW ON CHANGE OF
1. They must be used within the loop 1. It can be used within the loop statement &
statements. outside of the loop statements also
2. It considers preceding fields also 2. It doesn't consider
3. It can’t be used on more than one field __| 3. It can be used on the multiple fields using
using the SET operator ‘OR’ the SET operator ‘OR’
4. The work area is impacted by replacing
with Asterisk (*****)marks 4. It doesn't impact the Work Area
q:What is the difference between At New and On change Of inside a loop?71 want inside a loop
difference not basic difference??
1. At new is always followed by single field.
eg: AT NEW MATNR.
if any changes in matnr occurs at new event triggers. at this case right side fields of matnr appears
like this. Right side character fields appears like **** & numeric field become null in work area.
2.0n change of follows by single or more fields.
eg: ON CHANGE OF MATNR OR LABST OR WERKS.
Here any change in any field on change of event triggers. Here we can see all fields in work area.
17) What are the differences between SELECT SINGLE and UPTO 1 ROWS?
SELECT SINGLE UPTO 1 ROWS
1. It extracts single record from the data base | 1. It extracts all the records into a buffer and
table moves the first record in to an application program
2. It doesn't require END SELECT statement _| 2. It requires END SELECT3. Use this one, in case of all key fields can
be considered. To read exact record from
database table we need to provide all key
fields.
3. Use this one, in case of not possible to use all
the key fields. We can read appropriate record
from database table; we may not need to provide
all key fields.
is a construct to read
database records with primary key. In the
absence of the primary key, it might end up
doing a sequential search
4. Itis slower because it
4. itis faster because you are not using all the
primary key fields.
18) What are the differences between Normal Reports and ALV Reports?
Classical reports
ALV Reports
iple reports using the WRITE statements
within the loops.
1. The system generated Functions start with
REUSE are used to display the data .
2. Performance is not as good as ALV Reports
since the LOOP statement must be used to
2. Performance is good since the data is
displayed using the function modules outside
display the data. of the loops.
3. It can be possible to edit the Fields in the
3. Not possible to edit the Fields in the Output. _| Output.
4. Itis difficult to display the LOGOS in the 4. It is so EASY to display the LOGOS in the
output. output.
5. It is COMPLEX to Align the Columns.
5. Column Alignment is done by the system.
19). what are Conversion Routines?
> The conversion routines are the function modules used to convert the data from internal
format to an external format & external format to internal format.
ed at the Domain level of a field.
> The conversion routines are mainte
20) How to make the field editable in ALV Grid?
‘Ans :- By passing the field name EDIT = ‘X’ to the SLIS_T_FIELDCAT_ALV (with Header Line).
> WA _FIELDCAT- EDIT = ‘x’.
24) What are the events associated with ALV Reports?
Ans :- There are 17 events in ALV Reports .
¥ Following are some of the most useful events.
> TOP OF PAGE: Itis an event which is triggered at the top of each page. This
used to
play the list headings & Logos.> PE STATUS SE’
his event is triggered at the time of attaching our own GUI to
the program. This event is used to call the menu status for adding menu items &
push buttons.
> USER COMMAND: It is an event which is triggered at the time of user clicks on
any record of any list as well as clicks on any menu item. This event is used to
provide an interactive functionality based on the selected record/push button/
menu item in ALV reports.
> END OF LIST: It is used to display the Footer details in ALV reports.
22) What are the Function Modules associated with ALV Reports?
© The standard ALV display Function module ‘REUSE_ALV_LIST_DISPLAY' is used to
display the populated final internal table data in ALV LIST format.
> The Field values cannot be edited in case of ALV List format.
> Logos/Images cannot be displayed in ALV List format.
© The standard ALV display Function module '"REUSE_ALV_GRID_DISPLAY' is used to
display the populated final internal table data in ALV GRID format.
> The Field values can be edited in case of ALV GRID format.
> Logos/ Images can be displayed in ALV GRID format.
© The Blocked ALV’s are used to display the data from the multiple internal tables as
separate block in the output.
> The standard ALV display Function modules 'REUSE_ALV_BLOCK LIST_INIT*
is used to initialize the different blocks in the output.
> 'REUSE_ALV_BLOCK_LIST_APPEND' is used to append the internal tables as
separate blocks.
> ‘'REUSE_ALV_BLOCK_LIST_DISPLAY’ is used to display the appended blocks
in the output.
© The standard ALV display Function module ‘REUSE_ALV_HIERSEQ_LIST_DISPLAY"
is used to display the Header & corresponding item details in HIERARICHAL manner.
23) What are the ways to populate Field Catalog and which one do you prefer?
Ans :- There are two ways to populate the FILED CATALOG .
1. Using ALV Function Module 'REUSE_ALV_FIELDCATALOG_MERGE' // Not Advisable
2. Manual Population // Advisable
4. Steps to Populate Field Catalog using the Function Module:v
Define Data dictionary structure/Internal table with the required fields.
» Call ALV function module ‘REUSE_ALV_FIELDCATALOG_MERGE’ to populate field
catalog from the DDIC structure/internal table.
Modify the specified field catalog internal table ‘GT_FCAT’ as per the specification if
required.
Pass the filled field catalog internal table to an Export parameter ‘IT_FIELDCAT? of the
ALV Display function modules.
¥
v
Steps to Insert Border Line for 72 Characters:
® Once the program is in change mode.
> Click on Utilities -> Settings -> Check the check box “Downwards compatible line
length (72) & Click on Yes butto
» One red color vertical border Ii
\Serted at 72 characters position.
2, Steps to Populate Field Catalog Manually:
> Populate Field Catalog Internal table with the required field values.
> Pass the populated Field Catalog Internal table to an export parameter of ALV
display function module.
24) Is it possible to develop the ALV reports without populating or using any FIELD CATALOG?
‘Ans :- Yes, We can develop.
> Create DDIC structure with the required fields.
> Extract the required data from the data base tables based on the given input.
> Populate the Final internal tables.
> Use the function module either ‘REUSE_ALV_GRID_DISPLAY’ or ‘REUSE_ALV_LIST_DISPLAY’
to display final data by exporting DDIC structure name & the Final internal table.
25). what are the different ways to populate events in ALV report?
1. Manual Population:
> Populate an internal table of the type ‘slis_t_event’ with the required events & corresponding
dynamic sub-routine.
> Define the dynamic sub-routine of an event with the required functionality.
Pass the populated events internal table to Export, Import parameters of an ALV display
function module ‘it_event’.
2. By using ALV function module - REUSE_ALV EVENT GET:
> Itis not advisable since it extracts all the events & loop is required.
> The dynamic sub-routine for each event can be populated with in the loop of event internal
table.
> Pass the populate event internal table to an export parameter.
3. The call back export parameter can also be used to specify the dynamic sub-routine name of ALV
events in ALV display function module.
26) Explain the steps to provide headings and logo in ALV reports? (Or)
‘Steps to work with an ALV event TOP_OF_PAGE?> Use an ALV event ‘TOP_OF_PAGE’ with the corresponding dynamic subroutine name
into an internal table
> Populate the required header data into an internal table of the type (slis_t list_header)
in between the definition of dynamic subroutine.
> Use the ALV Function module ‘REUSE_ALV_COMMENTARY_WRITE’ to display the
Populated header and Logos.
27) How to provide custom Function (Push) Button along with System generated Functions in ALV?
(Or) How to add push buttons to ALV?
(Or) Steps to work with PF STATUS SET in ALV?
> Copy the system provided generic functions/push buttons from the standard program
‘SAPLSALV’ & the status: STANDARD into custom program & menu status using SE41.
> Add additional customer specific ‘push buttons’ to the copied menu status.
> Use an ALV event ‘PF_STATUS_SET’ & call the copied menu status with in the dynamic sub
routine of PF_STATUS_SET.
> Call the copied menu status using the ABAP statement ‘SET_PF_STATUS’.
28) How to handle Interactive Functionality? (Double Click)
Y An interactive functionality can be provided with in the dynamic sub-routine of an ALV
Event USER_COMMAND.
¥ Provide the interactive functionality such as to display another ALV drill down report/call
another program when the push buttons are selected.
¥ The function code for the double click in ALV reports is ‘&IC1’ and in Interactive classical
report in ‘PICK’.
29). How to capture selected rows in ALV output (or)
What are the steps to get selected rows in the next drill down list in ALV (or)
Interactive functionality based on the selected rows?
‘Ans:
> Add Single Character field to the Layout.
> Pass BOX single character filed name to the layout.
> Pass populated Layout to ALV display function modules.
> Copy final internal table into temporary internal table.
> Delete non selected entries from temporary internal table.
30). what are steps to display each row in different colors in ALV report?
Ans:
> Add 4 Character field to the final internal table form which the data should be displayed.
> Populate color code dynamically.> Pass color code field name to the field ‘info_fieldname’ of the layout.
31). How to display Traffic lights in ALV Report?
Ans:
> Add 4 character field to the final internal table.
> Populate traffic lights based on the status.
> Populate Field Catalog with traffic lights field name.
about some of the useful types with which you have worked in SLIS Type Group.
Field Name ion
Tab name_| Final Internal Name
Tab index _| Index no. of the selected record in the final internal table.
Value Selected field value
Field name | Field name of a selected row
33). Explain some useful types in the type group ‘SLIS'?
Ans:
| SLIS T FIELDCAT ALV: It is used to format the columns in ALV reports such as Populate
column headings, Edit the columns, Display hand symbols.
I. SLIS LAYOUT ALV: It is used to format the entire layout in ALV reports such as display data
in different colors. Instead of format statement we use layout.
Il, SLIS_T_EVENT: It is used to populate an ALV event.
IV. SLIS T_LIST HEADER: It is used to display the List Headings & Logos in ALV.
V. SLIS_T_EXTAB: It is used to populate the function codes of the push buttons to be hidden
in ALV report/output.
VI. SLIS_T_SELFIELD: It is used to capture the selected row/line value in ALV.
VI. SLIS_KEYINFO_ALV: It is used to populate the key field’s information to display header & the
corresponding item data in Hierarchical ALV.
Vill, SLIS_T_SORT INFO: It is used to provide sub totals & grand totals in ALV report.
34) What are the types of Memories, explain about them?
‘Ans :- The Memory concept is used to access the data across the internal or External Sessions.
Y There are 2 types of memories.© SAP Memory: - It is used to access the data from one session to another session
through Parameter ID or Memory ID.
> The ABAP statements SET PARAMETER ID and GET PARAMETER ID are used
to work with the SAP memory.
> SET PARAMETER ID is used to pass the field value from an application
program into the specified SAP Memory ID or Parameter ID.
> GET PARAMETER ID is used to get the data from the specified memory ID or
Parameter ID into filed of an application program.
> The Parameter ID's are maintained at Data Element level under Further
Characteristics.
© ABAP memory: - It is used to access the data across internal sessions. The ABAP
statements IMPORT & EXPORT are used to work with the ABAP Memory.
» The IMPORT statement is used to import the data from the specified memory ID
into data variable.
> The EXPORT statement is used to export the data into the specified memory ID
form the program.
35) Can we place More than one selection screen Element in one line, If Yes, How?
Ans :- Yes.
SELECTION-SCREEN BEGIN OF LINE.
* List of PARAMETERS
SELECTION-SCREEN END OF LINE.
236 How to place the PUSH buttons (Function keys) on Selection Screens?
Ans:- Requirement:
Three buttons display, change, create to be created along with their respective icons on the selection screen
Steps to be followed:
‘Step1: Create program in SE38 wi
some meaningful descABAP Editor: initial Screen
221
23 SELECT-OPTIONS : s_plant FOR vbap-werks, —" Plant
re cies Smuaeerne + cuss
15)
Selection Screen buttons
Selection Screen buttons
Write the below code in the program after the above selection screen statement.17
18 * In our cases ve are activating three buttons
19| SELECTION-SCREEN: FUNCTION KEY 1,
20) FONCTION KEY 2,
24 FUNCTION KEY 3.
22)
Write the below code in the program in the Initialization event.
23) INTTTALTZATION.
24
25 BATA: funcext TYPE amp_dynexe.
26
|
28) CLEAR funcexe.
25, fanctxt-texr = ‘Disney.
20 jcrfields-functat_02 = functxe.
3
a2) + put
for change
53 CLEAR funcexe.
34 funetut-texe = ‘Changet
35] aserfields-funcext_o2 = functxt.
36
37) + Button for Crea’
38) CLEAR functxt.
38 functwt-rext -
40, sscrfielde-funcexe_03 = funcext.
Execute the report and you will see three push buttons on the selection screen as below.
Now to handle the buttons in the program, first we need to create a custom GUI status copied from the
standard GUI as belowNow we need to add the function codes for the above three buttons created on the selection screen.
FCO1, FC02 and FCO3 refer to the three buttons which we have activated above.
Here we will add the function codes for the three buttons. These function codes will be captured in the system
variable SY-UCOMM field and this can be used in the program logic.
Function code ‘DISP’ is used here for the first push button (FCO), similarly ‘CHAN’ and ‘CREA’ for second
and third push buttons respectively.[= Function Attributes ay
Function Code (DIsP ]
Functional Type [| Application Function
‘Switch [ | Reaction 3]
iv [on
‘After entering the function codes for all the push buttons active the pf-status.
1927
Now come back to the program and write the below code in the
AT SELECTION SCREEN OUTPUT event.
a4)
45/ AT SELECTION-SCREEN OUTPUT.
46
|
47| SET PE-STATUS *2PFSTATUS*.
45)
Now execute the program and you can find the below selection screen.
Ba ®@
‘Summary: In this way we create buttons along with the icons on the selection screen.
Q) How to transport a variant of an ABAP report to production in SAP?
Ans: using program RSTRANSP
In real-time business applications, we need to transport variants of a programs to production, in
general variants will not be transported automatically along with program, we need to add them to a
TR to transport, to add transport to a TR we use program RSTRANSP.Method! to transport variant in SAP
Go to SE38, provide program name as RSTRANSP and execute.
Provide program name and variant name, execute, it will ask for a TR.
Select Report and Variants for Transport
OB
Preselaction for variant transport
Program Name ‘ZSAPN_INTERACTIVE.|to |
Varant name FVAR_SAPE to
You can not transport variants of a local($tmp) program( program saved in local object).
Method? to transport variant in SAP
Go to SE38, provide your program name, select variant and display.
Go to utilities -> transport request, provide variant name and execute, it will ask for TR.Module Pool Programming/Screen Painter
Module Pool Programming/Screen Painter
> This concept is used to maintain different types of screens & corresponding flow logic.
> This concept contains mainly 2 parts.
Module pool program
Screen painter1) What is the Screen Painter (Layout) and explain different components in screen painter?
Ans: Screen painter; - It is a tool used to maintain different types of screens.
> The T-code SE51 is used to work with screen painter.
a) Normal screen:
> The normal/main screens which can be called through transaction codes/using
ABAP statement ‘CALL SCREEN’.
b) Sub screen:
> The sub screens are part of main screens (normal)
> The sub screen can't be executed independently
> The flow logic ABAP statement ‘CALL SUBSCREEN’ is used to call the sub screen
areas in the normal screens
> The push buttons/menu status is not possible on the sub screen
» Itis not possible to call sub screen with in the sub screen
©) Modal dialog screen:
> Itis used to populate/display the data on pop dialog box with some generic
functions ( To display icons at bottom)
) Selection scree!
> The selection screen is reserved for Reports/Executable programs.
> The screen number 1000 is reserved for selection screen.
’ Different Components/Elements :-
1. Attributes: It contains the technical details of the screen such are type of the
screen, next screen number, package etc.
2. Element List: It contains the screen elements, attributes & properties of the screen
elements in the normal screen & sub screen & attributes such are general
attributes, texts or input output templates, special attributes, display attributes,
modification groups.
> Make an input list as drop down list by selecting, option under the tab
input/output.
> This component is used to make the screen elements visible, invisible, change the
dimensions etc.
> The modification groups which can be used to format the screen dynamically are
d by using modification groups.
> This component is used to provide the link between the module pool
program & screens.
> Itcan also be used to control the data flow between the screens
> The screen related ABAP statements such are modules, MODULE, CALL
SUBSCREEN, CHAIN etc. statements can be used in flow logic.
3. Layout: It is used to design the screens with different screen elements
a. Text field:
b, Input/output field: It is used to define input/output fields on the screen.
¢. Checkbox: To define the check box on the screen.
‘0 define the text fields for screen field labels on the screen.d. Push button: It is used to define the push button on the screen.
e. Tab strip control: I
subareas on the screen.
f. Tab strip (with wizard): it is used to define the tab strip control using the wizard.
g. Sub screen is used to define the sub screen areas on the main scrren/on
the tab strip control.
h, Table control: It is used to define the table controls to maintain multiple line items
or records on the screen.
i. Table control with wizard: It is used to define the table controls using wizards.
j. Custom control: It is used to define the custom controls in the screens.
k. Status icon: It is used to define the status icons on the screen.
|. Box: it is used to define the boxes around screen elements in the screens.
is used to define the tab strip control to work with the different
2) What are the Screen painter attributes?
Ans: They are used to maintain different attributes/settings of a screen elements such are function
code, function type, drop down list etc.
a) Drop down: There are 2 types of drop down options
1. List Box: To list out only the values.
I. List box key: To out the values
icon is pressed
> There must be foreign key relationship between value & text fields of a text table.
b) Groups: They are used to specify the radio button group name or modification group name.
c) FCT code: Function code of a push buttons or menu items.
4d) Dictionary Attributes:
> tis used to maintain the attributes of the data dictionary objects such are table or structure
fields.
> Some of the data dictionary objects are: date format, search help, conversion exit etc.
e) Program Attributes:
> It is used to maintain the different attributes of input or output fields.
|. Required: To make the screen input field as mandatory
Il. Possible: It is default icon to accept the input values at run time.
corresponding keys when the drop down
lll. Not possible: In case of this option, input is not possible but the field can be used as
output field.
IV. Recommended: To make the input field as optional. The symbol question mark is
appeared in the input or output field.
> Check the check box output only to restrict the input data.
V. Display Attributes: To maintain different attributes such are invisible, output styles,
2D display etc.
3) What is the difference between Flow Logic and Module Pool program?
> Flow Logic is used to define the Flow Logic of the screen elements. The modules are used to
communicate with the Module Pool Program.> Module Pool Program is used to define the modules of the Flow Logic in screens. The T-code
‘SE38/SE80 is used to develop & create the M.P.P.
> Itcan have 4 Include programs such are “TOP, *F01, “101, “O01.
4) What are the systems generated Include programs in Module Poo! program?
An:
There are 4 Include programs in module pool programs.
a) TOP Include: It is used to declare global data declarations which can be accessed
across the screens.
b) F01 Include: It is used to define the FORMS (Subroutines) which can be used in
module definitions.
¢) 001 Include: It is used to define the PBO (Process Before Output) modules.
d) 101 Include: It is used to define the PAI (Process After Input) modules.
> The module pool name & screen program name must be similar.
'5) What are the events associated with Screen Painter?
1. PROCESS BEFORE OUTPUT (PBO):
> This event is triggered before the screen is displayed.
> Itean also be
gered while performing any action on the screen.
> This is used to provide the default values to the screen fields.
> It can also be used to format the screen elements dynamically.
2. PROCESS AFTER INPUT (PAI):
> This event is triggered after the Input values are provided to the screen.
> This event is used to validate the input data on the screens.
> It can also be used to process the screen data based on the performed action
(pressed push button menu item etc)
3. PROCESS ON HELP-REQUEST (POH):
This event is triggered when the function key F1 or help icon (?) is pressed.
This event is used to provide the help documentation on the screen fields.
The T-code: SE61/SO72 is used to maintain help documentation.
The standard function module ‘HELP_OBJECT_SHOW’ is used to display the maintain
help documentation.
PROCESS ON VALUE-REQUEST (POV):
> This event is triggered in case of in case of function key F4 or search help icon is
pressed.
> This event is used to populate & display the custom search help on screen input
fields.
» The standard function module “F4IF_INT_TABLE_VALUE_REQUEST” is used to
display the populated internal table data as search help.
vvvy
6) What are the steps to provide Search Help?
1. Use an Event PROCESS ON VALUE-REQUEST.
Il. Specify or define the Module on the required Screen FielIl Use the Standard Fn. Module F4IF_INT_TABLE_VALUE REQUEST to display the
Populated data in the search help Window.
7) What are the steps to provide Help Documentation?
a) Use the Flow logic event ‘PROCESS ON HELP-REQUEST’.
b) Specify the module name on the particular screen field.
c) Use the standard function module HELP_OBJECT_SHOW (with technical description) or
DSYS_SHOW_FOR_FIHELP (without technical description) to display the maintained Help
Documentation.
8) What are the different ways to execute the Screens?
Ans :- There are 2 ways to execute the screens.
1. Using the T code: The screens can be executed through the T codes to wi
h the
Module pool program & the screen no is assigned,
2. Using an Executable program: The screens can be called & defined using the
‘Statement ‘CALL SCREEN’. CALL SCREEN is used to call the specified screen
number.
9) How to validate/check the fields (screen) in Module Pool program?
‘Ans: - a) Use an event Process After Input to validate the Input//screen field values.
b) Once the Flow logic is in Change mode, define the module with the field statement between
CHAIN...ENDCHAIN screen statement.
C) Fetch the data from the database & give the proper message if data doesn’t exist.
> The statement CHAIN....ENDCHAIN is sued to make alll the screen input fields enables to
enter input data.
> The screen validations without CHAIN....ENDCHAIN statements make the screen input fields
grayed out (display mode).
10) How to make screen field as mandatory in Screen painter?
Ans :- In screen painter double click the screen field
Go to ATTRIBUTES->PROGRAM
There select input as REQUIRED
Required: To make the screen input fields as mandatory.
11) How to make the Screen fields invisible based on certain conditions dynamically and which
Event should be used?
Ans :- The event AT SELECTION SCREEN OUTPUT is used to format the selection screen
dynamically by setting a loop to screen table (field Active can be used to Hide/Appear the screens).
12) Module screen flow statements?
Ans: This statement is used in flow logic to call the define process module pool programs.‘Syntax: [FIELD]MODULE.
Additions:
‘T EXIT-COMMAND: This command is used to trigger the dialogue module in case of push
button or menu item with the function type ‘E’ exit is pressed.
T CURSOR-SELECTION: This addition is used to trigger the corresponding module when
the cursor is placed on the input field of a screen. It can also be used to trigger
corresponding module in case of a push button or menu item with f-type ‘S’ (system) or CS
(cursor selection) is pressed.
Il. CHAIN...ENDCHAIN: This statement is used in flow logic to define the process chains. It can
be used to make all the screen input fields enables to enter input data.
Useful additions to CHAIN...ENDCHAIN statement:
|. MODULE ON CHAIN-REQUEST: The module with ON CHAIN-REQUEST is used to trigger the
corresponding module on the specified screen fields (in the sequence).
Il. MODULE ON CHAIN INPUT: The module ON CHAIN INPUT is used to check the i
conditions of the screen fields in the sequence.
ividual
Q) what is the use of at exit command in mpp?
‘Ans: At exit Command is mainly used to quit the program.
This command is used to trigger the dialogue module in case of push button or menu item with the
function type ‘E? exit is pressed.
Scenario:
J have five input fields in my screen, all the five fields are mandatory
i have to go back to the program (LEAVE PROGRAM).
Normally if there is any one mandatory fields i
screen if am triggering any event,
that time the system automatically throws an error like “Please fill in the mandatory fields”.
In that case the AT EXIT COMMAND will be used.
Tab Strip Control?
13) What are the steps to work wil
> Itis asset of pages & used to place different sub screens of application on single screen.
> Each tab page contains title & its page area.
> Create tab strip control with title on Main screen.
» Assign sub screen area to the corresponding tab.
> Make the necessary code changes in flow logic.
> Write processing logic in Module Pool Program.
14) What are the steps to work with Table Control?
Ans
> It is used to maintain multiple entries in tabular format. Multiple rows are processed using
Loop with control.
> Define or declare tab strip control in Module Pool program.
> Define or create Table control on screen by filling all necessary fields.
> Make necessary code changes in flow logic & write process logic in MPP.SAP SCRIPTSSAP SCRIPTS
1) What are the Components of SAP Script (Form Painter/Layout set)?
‘Ans: SAP Script form contains 2 parts.
1. Form painter (Layout Set) 2. Print Program
1, Header: It is used to maintain the Administrative & basic settings data.
a. Administrative data:
> Itcontains the technical details such are Package name, Changed by, Created by etc..
b. Basic data:
> Itis used to maintain the default settings which can be applied across the forms.
> The Basic settings are page format, orientation, font size etc.
> The first page & the default paragraph names must be specified once they are created.
2 Pages:
> They are the rectangular format of the documents.
> This element is used to maintain the next page, print mode, page counter mode etc.
3. Window:
> They are the small components on the pages.
> We can place the same window in any no of pages.
> The windows are not positioned on the pages unless they are assigned to the pages.
4, Page window:
> They are used to position the window on the pages.
> Different position attributes Left margin, upper margin, Window width, Height are
maintained. It is used to place the window on the page with co-ordinates.
5. Paragraph format:
> They are used to printformat the entire paragraph with a required format & styl
a. Standard Attributes: It is used to maintain the standard attributes such are alignment,
1e Spacing, left margin, right margin etc.
: They are used to maintain the font setting such are font family, font
> They are used to print/format the particular text/string with the required font & style.
> They can also be used to select the Bar codes.
a. Standard Attributes: It is used to select barcode, super script, sub scripts etc..
b. Font Attributes: They are used to maintain the font type, font size, bold, italic etc.
2. Print Program or Driver Program:> The Driver program is used to extract the data from the database tables or views,
process the extracted data & pass the processed data to SAP Script form to
display/print on the document.
2) What are the difference types of Windows?
‘Ans: Windows: - They are used to define the different types of windows.
> Following are the different types of windows.
‘+ Main Window: It is the default widow. It is used to display the continuous text on
the pages. Without main window we can’t design SAP scripts. The system
generates the pages dynamically for main window. Up to 99 main windows can be
a form. The window type is ‘MAIN’.
+ Constant Window: This window contains the static content which can be
formatted only once to print/display the same contents on all the pages.
created
+ Variable Window: It is used to print the data based on the window size. It can be
formatted for each page to print/display the different contents. Without a variable
window also we can design the SAP script.
‘+ Graphic Window:
3) What are the different types of Symbols in Scripts?
It is used to print/display the graphics/logos on the page.
Ans: - The Symbols are the constants which can be inserted n the page windows to display/print the
corresponding contents/data. Symbols are of 3 Types.
1.,System Symbols: They are used to display the system data such as date, time etc ...
Ex: &DATE&, &DAY&, &MONTHE
‘Symbol Description
&DATE& _| System Date
&DAY& _| Day of the System
&MONTHA | Month of the System
&YEAR& _| Year of the system
&TIME& _| System Time
&HOURSE | System Hours (HH)
&ULINE& | Horizontal Line
>» The system provided standard structure SAPSCRIPT contains some of the SAP Script
system fields.
Note: Number of pages like “1 of 10” can be displayed using the system symbols PAGE &
FORM PAGE as below.
Ex: &PAGE& of &SAPSCRIPT-FORMPAGES&
Current Page number, Total no of pages2. Standard Symbol:
hey are the predefined symbols. The pooled table TTDTG is used to
maintain the standard symbols.
3. Application Symbols: These are used to display/print the processed data from the print
program or database. Ex: &WA_T001-BUKRS&
4) What are the different TAG columns in SAP Script form?
Ans: Tag Meaning
* Default paragraph format
Extended Line
bk Command Line
f Comment Line
Text Element -> Display mul
Pp Paragraph format
Ie Line feed & Extended line
5) What are the Function Modules associated with Scripts?
1. OPEN FORM: (*)
> This function module is used to provide the link between the print
program & SAP script form.
> The global data variables of the print program can be accessed in SAP Script form
after this function module is called to open a form/used.
2. START FORM:
> This function module is used to specify the starting page from where the
document to be printed or displayed.
3. WRITE_FORI *
> This function module is used to pass the multiple entries of an internal
table into the SAP Script form to printidisplay the multiple entries or
line items through the Text Elements.
END FORM:
> Itis an optional function module which is used to End the started Form.
5. CLOSE_FORM: (*)
> This function module is used to close the Opened Form & send the
Spool Request/Print to the device.
> It can also be used to get the SAP Script form data into OTF (Other Text) format.Note
he standard function module ‘CONVERT_OTF’ or ‘CONVERT_OTF_2_PDF’ can
be used to convert the SAP Script OTF Data into PDF format.
> The standard function module SO_NEW_DOCUMENT_ATT_SEND_API1 is used to
send an Email with the required attachments in different formats.
6.CONTROL FORM:
> This function modul
used to control the form by creating the pages or
windows dynamically.
Note: An icon Transport (Lorry icon) or in the menu path, Graphic -> Transport is used to
generate transport request to release LOGO's form one system to another system.
6) What are the different ways to debug the Script?
‘Ans: - There are two ways to debug the Script Form.
> The path SE71 —~>Utilities —>Activate debugger.
> By executing Standard Program/ Report 'RSTXDBUG".
7) Differentiate between Page! & Page2 format in sap script?
‘Ans: Page! format: In this all pages have the same format.
Page? format: In this there is variation in page format i.e. first page has different format than
second page.
8) Some of the useful Control commands/Statements in SAP scripts?
1. J: Address...End address: It is used to display the address details of the given address
number in the standard format.
Syntax: /: ADDRESS
J: ADDRESS number &GS_KNA1-ADRNR&.
J: ENDADDRESS
2. £: Set Date mask: This command is used to print/format the system Date in the required format.
Syntax: SET DATE MASK = ‘’.
* Date: &DATE&
Set Time Mask: This command is used to print/format the system Time in the required format.
Syntax: /: SET TIME MASK = ‘ SS:MM:HH ’.
Note: Pass blank spaces to the formatted date & time to format them into default format.
> There is no loop statements in SAP Script forms but the text elements can be used to
communication with the function module WRITE_FORM used within the loop of the print
program to
Text Element:
play the multiple entries.
> Text Element is the name give to the block of statements in the page window. If we pass the
text element name to the WRITE_FORM function module then the WRITE_FORM function
module transfers the data form driver program to all the statements which are available
under Text Element.> Whenever we are working with main window, then we must provide Text Element name,
otherwise the 1* information printed twice.
4. Protect...End protect: It is used to print the continuous text without any page breaks in SAP
Script forms.1* the system checks each & every page which page is having the enough place
to print the continuous text. If no page is having enough space it simply break the text &
printing in different pages.
Syntax: /: PROTECT
IE ELE
J: ENDPROTECT
5. Define: This command is used to define/declare the symbols in SAP Script.
‘Syntax: /: Define &GV_SYMBOL&
6. Box: This command is used to draw the Boxes/Frames on the page windows.
‘Syntax: /: BOX XPOS <**> cm/mm YPOS emimm
J: WIDTH cm/mm HEIGHT cm/mm
J: FRAME TW INTENSITY TW
Note: An addition INTENSITY is used to gray out the boxes.
> The command position & size can also be used to define the box position & sizes.
8. Top...End Top: This command is used to display/print the contents at the Top portion/Header
of the specified window.
: TOP
I" Display/Print at Top of page window.
J: ENDTOP
|. Bottom...End bottom:
Syntax:
command is used to display/print the contents at the
Bottom/Footer portion of specified window.
‘Syntax: /: BOTTOM
/* Display/Print at Bottom of page window.
NDBOTTOM
This command is used to generate the next pages.
|EW-PAGE.
10. New-Page
Syntax:
11. New-Window: This command is used to generate the new windows.
Synta
9) How to add, additional functionality to script without modifying the print (driver) program?
JEW-WINDOW.
Ans
The Form Routines (PERFORM ......END PERFORM) are used to add the additional
functionality to the SAP Script form without making any changes in the print program.
10) What are client dependant objects in abap/sap?
Ans: SAP Script layout, text element, and some DDIC objects.
11) Can we call another Form from same print program in sap script?
‘Ans: Yes, we can call other forms in the same print program/driver program.12) How to copy the Standard Script and make the changes?
Ans :- The path SE71—>U!
changes.
13) How to convert the language from DE to our required language?
Ans: In SE71, Utilities ->Convert Original Language, Provide the To Language & press Enter
ies—> Copy From Client can be used and make the necessary
14) How to transport text elements in SAP ABAP?
Ans: If it is first time, they will automatically transport along with the program, if you change them
next time, it will ask for TR, you can move that TR
15) What are the Standard Texts?
‘Ans :- The Standard texts are used to maintain the Long text using the T-Code 'SO10".
> The command INCLUDE....OBJECT is used to insert the standard text on page window.
Syntax: /: INCLUDE OBJECT
ID LANGAUGE
> The standard function module ‘READ_TEXT’ can also be used in the programs to read
standard text & application text.
> By Default the System doesn't generate any transport request for standard texts.
> The standard Report 'RSTXTRAN' is used to generate the Transport Request number for
Standard texts.
16) Tell some of the Standard Scripts and Print programs?
Form name Print program Formroutine | Application
MEDRUCK SAP M & SP/SAPFMO6P | Entry_new Purchase order only
RVOROADDRS RVADOROT ENTRY Sales order
RVDELNOTE RVADDNO1 ENTRY Shipping
RVADINO1 RVINVOICEO1 ENTRY
17) How to execute the program in back ground?
Ans: Execute SE38, provide the program name & Execute, provide the Input
In the Menu bar, click on program -> Execute in Back ground
Provide the output device LP01 & click on enter
Click on Immediate & save.
18) How to copy the SAP script from 800 client to 810 client?
‘Ans: In the Target client 810, Execute SE38 & Provide the program name: RSTXFCPY & Execute
Provide the Form name, In source client 800, Provide the Target Form name & Execute.
> Allthe standard script forms are available in the client 000.
19) Explain about some of the Symbol Formatting Options in Scripts?
SYMBOL FORMAT DESCRIPTION
&SYMBOLE& Displays/Print the contents of symbols without any format
‘ESYMBOL(C)E To compress the content without spaces&SYMBOL(Z)& To remove the unwanted preceding zeros
&SYMBOL(R)& Displays the contents by justifying the Right hand side
&SYMBOL(K)& To avoid Conversion Routine
&SYMBOL(<)& To display the symbols sign at Left hand side
&SYMBOL(S)& Display/Print the sign of the numbers.
&SYMBOL(N)& Display/Print ‘N’ no of characters
&SYMBOL+N(M)& Display/Print ‘M no of characters form the Nth position
&SYMBOL(.D)& Display/Print ‘D’ no of Decimals
20) How to format the date, time and country in Scripts?
Ans :- The commands SET DATE MASK, SET TIME MASK , SET COUNTRY can be used to
format the date ,time and country.
24) What are the fields in ITCSY Structure?
Ans =
Field Description
NAME _| Name of the program Symbol (without &)
VALUE | Text Symbol Value
The standard structure is use as a reference Import & Export the symbol with the form routines in
‘SAP Script form.
22) How do we create/maintain different styles in Scripts?
‘Ans :- The T-Code SE72 is used to maintain the SAP Script Form Styles such are Paragraph
Formats, Character formats. Barcodes are maintained in the Character Format.
23) What are the ways to upload the Logos and display?
‘Ans: - The T-Code SE78 (or) the standard report ‘RSTXLDMC’ is used to upload the LOGOS/IMAGES
> Whenever we are working with .BMP image then we must convert .BMP to graphics by
using SE78 T-code.
> Whenever we are working with .TIFF image then we must convert TIFF to text image by
using RSTXLDMC standard program.
24) How can you pass the data to the Script from the Print program without using WRITE_FORM?
Ans: - After Accessing the Fun. Module ‘OPEN _FORM' we can declare the Global data.
25) How to develop the SAP Scripts in Diff. languages?
Ans: - In SE63, Click Translation —>Long Texts —>Sap scripts—> Forms.
26) How to convert sap script spools request to PDF?
Ans: - RSTXPDFT4.
27) How to convert/migrate sap scripts to Smart Forms?
Ans: - Execute SMARTFORMS & Enter the New Smart Form name
The path SMARTFORMS —
Enter the Existing SAP script Form name & click on Yes button.
28) How to set the output device LPO1 by default in our own pe?
Utilities —->Migration —> Import SAP script Form‘Ans: Execute SU01 & provide the user name as: SAPUSER, click on change mode
Click on Default tab & provide the output device LPO1
Select the required decimal notation (1,234,576.89) & date format & click on save.
29) How to identify the driver program based on the form name?
‘Ans: Execute SE11, open the Table TTXFP & Click on Display & Click on Contents
Provide the Form name & Execute, Identify the Driver program.
30) How do we display the Application Texts?
‘Ans :- Using the Function Module 'READ_TEXT’ .
31) How to split the line into the next line in Scripts?
Ans :- The Function Module ' RKD_WORD_WRAP" is used to split the text into multiple lines...
32) What are the Transaction Codes associated with Scripts?
T-Code Description
NACE _| To maintain Output types
SE71_| Form painter
SE72_| Form Style
SE73__| To Maintain different types of forms & Barcodes
SE78__| Graphics or LOGO
Translations to translate the text symbols & text elements
SE63_| in different languages
$010 _| Standard texts
> Bar codes can be selected under ‘Standard Attributes tab.
> The T-code SLXT is used to generate Transport Request for Translations
33) Standard reports associated with SAP scripts?
Ans: RSTXDBUG -> — Activate/Deactivate form debugger
RSTXLDMC To upload Graphics/Logo
RSTXSCRP -> —_Download/Upload the Forms, Styles & Standard Text
RSTXPDFT4 -> To convert the spool job of the SAP script into PDF format
RSTXFCPY -> Copy the SAP script from one client to other
RSTXTRAN -> To create Transport Request for standard text
RSTRANSP -> to transport a variant of an ABAP report to production in SAP
Q) What are the tables associated with Scripts?
Ans :- TNAPR
Q) How to generate Transport Request for Translations?
Ans:
> Execute the T-code SLXT
> Select the required target language (DE)
> Enter the required text element/text symbol name (%TEXT1) in description
> Select a radio button workbench request
> Click on execute