Vous êtes sur la page 1sur 90

Table Control using Wizard in Module Pool Programming

By Venkatraman N, IBM
Pre-requisites:
The readers must be able to create a module pool program and they should be familiar with screen
programming.
Purpose of this tutorial:
This is to demonstrate the step by step tutorial of how to make use of table control with wizard, where the
developers effort to write code with table control without wizard is avoided.
Introduction:
Table control with wizard is the control provided by SAP, in which the users are not needed to code
separately for table control operations. It generates automatically system generated code for the following
table control operations.
1. Insertion
2. Deletion
3. Scrolling
4. First
5. Last
6. Next
7. Previous
8. Select
9. Select all
10. Deselect
11. Deselect all
Step 1: Create an internal table and work area, which we are going to deploy in table control.

Step 2: Create a screen called 9000.

Input the screen number as 9000.

Fill up the screen attribute values.

Step 3: Go to the layout of the screen, where you can find the table control with wizard. Drag and drop the
table control with wizard to the layout of the screen.

Once you drag and drop the control a popup will appear.

Press Continue. In the next screen enter the table control name as TBC_9000 or your own name.

In the next screen you input the internal table and work area which has been created earlier.
Note: Before it is done, you must activate the page, in which you have declared the internal table and
work area. Then only this table control screen will take its properties.

Click here to continue...

Table Control using Wizard in Module Pool Programming
...Previous
The next screen will automatically retrieve the fields available in the internal table and show. We have to
select those fields, which and all should be displayed in table control.
If you have declared any character field for table control line selection, that should not be selected in this
screen.

Select the input/output attributes as Input control and give the field for selection of table control rows.
Select the multiple line selection.

Click on Continue. The table control with auto generated code will automatically be created.

This will automatically create PBO & PAI modules for table control operations.

Step 4: For testing this tutorial, write a simple query to populate the internal table of table control and test
the input controls associated with it.

The expected output will be like

Summary :
As a result of this tutorial, the user will be able to
1. Use table control with wizard in module pool programming and
2. Create table control operations with system generated code.
Second example
Create Table Control Using ABAP Programming
In last two weeks, I have learned self-taught how to create table control in SAPScreen using ABAP 4.
After trial and error, finally I have finished my small project. While learning about table control, I use SAP
Help as main reference, some websites and presentation slides from Michael Adams, Queensland University
of Technology.
A Table Control is a screen container or object that allows display of multiple rows of a table
(database or internal table) on a screen. It is good for displaying a one-to-many relationship on the one
screen. The table control object has many features built in to enhance screen display and usability.
Table Control features allow
horizontal & vertical scrolling
column width resizing
scrolling within a field (where contents are wider than the screen field width)
reordering the sequence of columns
saving the current display settings for future use
selection of table rows & columns
Formatting features include
automatic table resizing on window resize
separator lines between rows & columns
column header fields for all columns
Here steps to create table control
1. Declare the table control
As well as drawing the table control on the screen it is necessary to declare the tablecontrol as a data item
(in the TOP include program for the transaction).
CONTROLS ctrl TYPE TABLEVIEW USING SCREEN scr.
<ctrl> is the name of the table control on a screen in the ABAP program
<TABLEVIEW> corresponds to a complex type (CXTAB_CONTROL defined in the ABAP
dictionary)
<scr> is the screen from which the table control will get its initial values
2. Adding table control to a screen
In the graphical screen editor choose the table control element button. Use the left mouse button to
position and size the control on the screen.

Then input the name of table control.

3. Adding Field to a table control
To add field to table control, we can retrieve from table or internal table. Click on icon dictionary/program
field window or function key F6.

There two option while retrieve field, i.e. based on database table or internal table. If want to retrieve from
database table, input the name of table then click push button Get from Dictionary. If want to retrieve
from internal table, input the internal table name then click push button Get from program.


Mark the field to be added to table control, and then click on push button OK.

Drag selected fields into table then release the mouse button.
Here the fields we selected will be displayed in reversed order. I do not exactly why it happens. I have tried
some ways and tricks to display in correct order, but the fields still displayed in reversed order. Finally, to
get the correct order I selected the fields one by one.

4. Adding label for each column
Label column is text field. To add it, just click on the text field icon, drag it onto header of the column and
then type the label.

Table Control Principle
There are a set of programming principles that should be adhered to when using table controls and step
loops. Data from the database should be initially loaded into an internal table. This means that the database
is accessed for read purposes only once in the transaction. Next the rows of the internal table are loaded
into the table control. Any changes that are made to the data are then saved back to the internal table. At
the end of the transaction, the contents of the internal table can be written back to the database, again to
minimize database I/O.

PAI logic for screen 1 (see screen below) loads the internal table with data from the database according to
the entries supplied by the user.
PBO logic for screen 2 (see screen below) populates the table control from the internal table (buffer).
User action in screen 2 triggers the PAI logic. PAI logic updates the internal table with new values entered
(into the table control screen fields) by the user.
PAI logic is triggered by actions such as scrolling down a single row as well as actions such as BACK, EXIT,
etc.
Unless the user action causes the transaction to leave the current screen, after the PAI modules have been
executed, the PBO modules for the screen are executed again. Thusthe table control fields are updated or
refreshed after every user action.

PBO (Process Before Output)
In PBO processing fields are transported from the module pool to the screen in a predefined order.
The table control step loop is processed row by row. Fields with corresponding names are
transported from the module pool to the screen.
After the step loop has been processed all remaining module pool fields are transported to the
screen.

PAI (Process After Input)
All screen fields that do not belong to a table control and are not specified in a FIELD statement are
transported to module pool fields
Table control fields are transported row by row to module pool fields
Fields specified in FIELD statements are transported immediately before the FIELD statement is
executed

Updating data in table control
The ABAP language provides two mechanisms for loading the table control with data from the internal table
and then storing the altered rows of the table control back to the internal table.
1. Method 1: Read the internal table into the Table Control in the screens flow logic. Used when the
names of the Table Control fields are based on fields of the internal table.
2. Method 2: Read the internal table into the Table Control in the module pool code. Used when the
names of the Table Control fields are based on fields of the database table.
Method 1 (table control fields = itab fields)
In the flow logic we can read an internal table using the LOOP statement. Define the reference to the
relevant able control by specifying WITH CONTROL <ctrl>
Determine which table entry is to be read by specifying CURSOR <ctrl>-CURRENT_LINE.
After the read operation the field contents are placed in the header line of the internal table. If the fields
in the table control have the same name as the internal they will be filled automatically. Otherwise we need
to write a module to transfer the internal table fields to the screen fields.
We must reflect any changes the user makes to the fields of the table control in the internal table otherwise
they will not appear when the screen is redisplayed after PBO processing, (eg, after the user presses Enter
or scrolls) However, this processing should be performed only if changes have actually been made to the
screen fields of the tablecontrol (hence the use of the ON REQUEST)
PROCESS BEFORE OUTPUT.
LOOP AT ITAB_REG WITH CONTROL TCREG
CURSOR TCREG-CURRENT_LINE.
ENDLOOP.
PROCESS AFTER INPUT.
LOOP AT ITAB_REG.
MODULE MODIFY_ITAB_REG.
ENDLOOP.
MODULE MODIFY_ITAB_REG INPUT.
MODIFY ITAB_REG INDEX TCREG-CURRENT_LINE.
ENDMODULE.
Method 2 (table control fields = dict. fields)
If using a LOOP statement without an internal table in the flow logic, we must read the data in a PBO
module which is called each time the loop is processed.
Since, in this case, the system cannot determine the number of internal table entries itself, we must use the
EXIT FROM STEP-LOOP statement to ensure that no blank lines are displayed in the table control if there are
no more corresponding entries in the internal table.
PROCESS BEFORE OUTPUT.
LOOP WITH CONTROL TCREG.
MODULE READ_ITAB_REG.
ENDLOOP.
PROCESS AFTER INPUT.
LOOP WITH CONTROL TCREG.
CHAIN.
FIELD: ITAB_REG-REG,
ITAB_REG-DESC.
MODULE MODIFY_ITAB_REG
ON CHAIN-REQUEST.
ENDCHAIN.
ENDLOOP.
MODULE READ_ITAB_REG OUTPUT.
READ TABLE ITAB_REG INDEX TCREG-CURRENT_LINE.
I IF SY-SUBRC EQ 0.
MOVE-CORRESPONDING ITAB_REREG TO TCREG.
ELSE.
EXIT FROM STEP-LOOP.
ENDIF.
ENDMODULE.
MODULE MODIFY_ITAB_REG INPUT.
MOVE-CORRESPONDING TCREG TO ITAB_REG.
MODIFY ITAB_REG INDEX
TCREG-CURRENT_LINE.
ENDMODULE.
Updating the internal table
Method 1
PROCESS AFTER INPUT.
LOOP AT ITAB_REG.
CHAIN.
FIELD: ITAB_REG-REG,
ITAB_REG-DESC.
MODULE MODIFY_ITAB_REG ON CHAIN-REQUEST.
ENDCHAIN.
ENDLOOP.
MODULE MODIFY_ITAB_REG INPUT.
ITAB_REG-MARK = 'X'.
MODIFY ITAB_REG INDEX TCREG-CURRENT_LINE.
ENDMODULE.
Method 2
PROCESS AFTER INPUT.
LOOP WITH CONTROL TCREG.
CHAIN.
FIELD: TCREG-REG,
TCREG-DESC.
MODULE MODIFY_ITAB_REG ON CHAIN-REQUEST.
ENDCHAIN.
ENDLOOP.
MODULE MODIFY_ITAB_REG INPUT.
MOVE-CORRESPONDING TCREG TO ITAB_REG.
I TAB_REG-MARK = 'X'.
MODIFY ITAB_REG INDEX TCREG-CURRENT_LINE.
ENDMODULE.
Updating the database
MODULE USER_COMMAND_100.
CASE OK_CODE.
WHEN SAVE.
LOOP AT ITAB-REG.
CHECK ITAB_REG-MARK = X.
MOVE-CORRESPONDING ITAB_REG TO TCREG.
UPDATE TCREG.
ENDLOOP.
WHEN ...
...
ENDCASE.
ENDMODULE.
Those are the simple steps how to create table control. What I have learned this week only the beginning.
Actually there are more areas in SAP Table Control with abap programming that can be explored deeper, but
may be next time.




----------------------------------------------------------------------------------------------------------------------------\
Third Example----------------
Working with Check box (Module pool programming)
By Vikram Chellappa, Mouri Tech Solutions
Scenario: We would design a screen with an input field for customer number and three check
boxes for Name, City and Address. Upon entering the customer number and selecting any of the
check boxes, the corresponding data should be displayed
1) Go to Tcode SE38 .

Click on create and save the program. We would write the code later.
2) Go to Tcode SE51



In the Layout:
Drag and drop the fields as shown below. (The properties of each field can be seen on the right hand side
of the screenshot)

Customer Number:

Input field:

Check box: Name

Check box: CITY

Check box: Address





Working with Check box (Module pool programming)
...Previous
Push button: Display

Push button: Cancel

3) Go to SE38.

Enter the following code:
*&---------------------------------------------------------------------*
*& Report ZSCREEN_NEXTSCREEN *
*& *
*&---------------------------------------------------------------------*
*& *
*& *
*&---------------------------------------------------------------------*
REPORT ZSCREEN_NEXTSCREEN .
DATA : KUNNR TYPE KUNNR,
NAME TYPE C,
CITY TYPE C,
ADDRESS TYPE C,
OK_CODE LIKE SY-UCOMM.
DATA : NAME1 TYPE NAME1,
ORT01 TYPE ORT01,
ADRNR TYPE ADRNR.
DATA : W_NAME1 TYPE NAME1,
W_ORT01 TYPE ORT01,
W_ADRNR TYPE ADRNR.
CALL SCREEN 100.
*&---------------------------------------------------------------------*
*& Module CHECK_VALUES INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE CHECK_VALUES INPUT.
IF OK_CODE EQ 'DISPLAY'.
LEAVE TO LIST-PROCESSING.
SELECT SINGLE NAME1 ORT01 ADRNR FROM KNA1 INTO (W_NAME1, W_ORT01, W_ADRNR)
WHERE KUNNR = KUNNR.
IF NAME EQ 'X'.
WRITE : W_NAME1.
NAME1 = W_NAME1.
ENDIF.
IF CITY EQ 'X'.
WRITE : W_ORT01.
ORT01 = W_ORT01.
ENDIF.
IF ADDRESS EQ 'X'.
ADRNR = W_ADRNR.
WRITE : W_ADRNR.
ENDIF.
ELSEIF OK_CODE EQ 'CANCEL' OR OK_CODE EQ 'BACK'.
LEAVE PROGRAM.
ENDIF.
ENDMODULE. " CHECK_VALUES INPUT
" PBO OUTPUT
Execute the program





----------------------------------------------------------------------------------------
Example on Table controls
-----------------------------------------
SAP Table Control Example
This example shows how to build a table control using ABAP. The program builds a
simple phone list. The code and accompanying screen shots describe the entire
procedure.
SCREEN 100
PROCESS BEFORE OUTPUT.

MODULE STATUS_0100.

LOOP WITH CONTROL TCTRL_USERDATA.

MODULE DISPLAY_USERDATA.

ENDLOOP.

MODULE AFTER_LOOPING.

*

PROCESS AFTER INPUT.

MODULE USER_COMMAND_0100.

LOOP WITH CONTROL TCTRL_USERDATA.

MODULE EXTRACT_USERDATA.

ENDLOOP.

MODULE USER_COMMAND_0100_AFTER_LOOP.


ZTBLDTOP
*&---------------------------------------------------------------------*

*& Include ZTBLDEMO Report ZTBLDEMO *

*& *

*&---------------------------------------------------------------------*



REPORT ZTBLDEMO MESSAGE-ID AT .



DATA: BEGIN OF RECORD,

NAME(30),

PHONE(20),

EMAIL(50),

END OF RECORD.



DATA: ITAB_PHONELIST LIKE RECORD OCCURS 0 WITH HEADER LINE.



CONTROLS: TCTRL_PHONELIST TYPE TABLEVIEW USING SCREEN 100.



DATA: SAVE_CODE(4),

OK_CODE(4),

FILENAME LIKE RLGRAP-FILENAME,

CONFIRMATION,

SELECTION.


ZTBLDEMO
*&---------------------------------------------------------------------*

*& Report ZUSRDATA *

*& *

*&---------------------------------------------------------------------*

*& *

*& *

*&---------------------------------------------------------------------*



INCLUDE ZTBLDTOP. " global Data



* INCLUDE ZUSRDO01. " PBO-Modules *

* INCLUDE ZUSRDI01. " PAI-Modules *

* INCLUDE ZUSRDF01. " FORM-Routines *



*&---------------------------------------------------------------------*

*& Module STATUS_0100 OUTPUT

*&---------------------------------------------------------------------*

* text

*----------------------------------------------------------------------*

MODULE STATUS_0100 OUTPUT.

SET PF-STATUS 'FOR100'.

SET TITLEBAR '100'.

ENDMODULE. " STATUS_0100 OUTPUT



*&---------------------------------------------------------------------*

*& Module DISPLAY_USERDATA OUTPUT

*&---------------------------------------------------------------------*

* text

*----------------------------------------------------------------------*

MODULE DISPLAY_USERDATA OUTPUT.

READ TABLE ITAB_PHONELIST INDEX TCTRL_PHONELIST-CURRENT_LINE.

IF SY-SUBRC EQ 0.

RECORD-NAME = ITAB_PHONELIST-NAME.

RECORD-PHONE = ITAB_PHONELIST-PHONE.

RECORD-EMAIL = ITAB_PHONELIST-EMAIL.

ELSE.

EXIT FROM STEP-LOOP.

ENDIF.

ENDMODULE. " DISPLAY_USERDATA OUTPUT


*&---------------------------------------------------------------------*

*& Module USER_COMMAND_0100 INPUT

*&---------------------------------------------------------------------*

* text

*----------------------------------------------------------------------*

MODULE USER_COMMAND_0100 INPUT.

SAVE_CODE = OK_CODE.

CLEAR OK_CODE.

CASE SAVE_CODE.

WHEN 'BACK'.

CALL FUNCTION 'COPO_POPUP_TO_GOON'

EXPORTING

TEXTLINE1 = 'Any modifications will be lost!'

TEXTLINE2 = 'Are you sure?'

TITEL = 'Exit The Program'

IMPORTING

answer = confirmation.

if confirmation = 'G'.

LEAVE PROGRAM.

ENDIF.

WHEN 'DELE'.

CALL FUNCTION 'COPO_POPUP_TO_GOON'

EXPORTING

TEXTLINE1 = 'Selected rows will be deleted!'

TEXTLINE2 = 'Are you sure?'

TITEL = 'Delete rows'

IMPORTING

answer = confirmation.

IF CONFIRMATION = 'G'.

REFRESH ITAB_PHONELIST.

CLEAR ITAB_PHONELIST.

ENDIF.

WHEN 'SAVE'.

REFRESH ITAB_PHONELIST.

CLEAR ITAB_PHONELIST.

WHEN 'APND'.

REFRESH ITAB_PHONELIST.

CLEAR ITAB_PHONELIST.

WHEN 'READ'.

IF NOT FILENAME IS INITIAL.

CALL FUNCTION 'COPO_POPUP_TO_GOON'

EXPORTING

TEXTLINE1 = 'Any modifications will be lost!'

TEXTLINE2 = 'Are you sure?'

TITEL = 'Read Another File'

IMPORTING

answer = confirmation.

ENDIF.

if confirmation = 'G' or

FILENAME IS INITIAL.

CALL FUNCTION 'UPLOAD'

EXPORTING

FILENAME =

'c:\temp\fonelist.txt'

IMPORTING

ACT_FILENAME = FILENAME

TABLES

DATA_TAB = ITAB_PHONELIST.

ENDIF.

ENDCASE.

ENDMODULE. " USER_COMMAND_0100 INPUT



*&---------------------------------------------------------------------*

*& Module EXTRACT_USERDATA INPUT

*&---------------------------------------------------------------------*

* text

*----------------------------------------------------------------------*

MODULE EXTRACT_USERDATA INPUT.

CASE SAVE_CODE.

WHEN 'DELE'.

IF SELECTION IS INITIAL AND

confirmation = 'G'.

PERFORM TRANSFER.

ENDIF.

WHEN 'SAVE'.

PERFORM TRANSFER.

WHEN 'APND'.

PERFORM TRANSFER.

ENDCASE.

ENDMODULE. " EXTRACT_USERDATA INPUT

*&---------------------------------------------------------------------*

*& Form TRANSFER

*&---------------------------------------------------------------------*

* text

*----------------------------------------------------------------------*

* --> p1 text

* <-- p2 text

*----------------------------------------------------------------------*

FORM TRANSFER.

CLEAR ITAB_PHONELIST.

ITAB_PHONELIST-NAME = RECORD-NAME.

ITAB_PHONELIST-PHONE = RECORD-PHONE.

ITAB_PHONELIST-EMAIL = RECORD-EMAIL.

APPEND ITAB_PHONELIST.

ENDFORM. " TRANSFER

*&---------------------------------------------------------------------*

*& Module USER_COMMAND_0100_AFTER_LOOP INPUT

*&---------------------------------------------------------------------*

* text

*----------------------------------------------------------------------*

MODULE USER_COMMAND_0100_AFTER_LOOP INPUT.

CASE SAVE_CODE.

WHEN 'SAVE'.

CALL FUNCTION 'DOWNLOAD'

EXPORTING

FILENAME = FILENAME

TABLES

DATA_TAB = ITAB_PHONELIST.

WHEN 'APND'.

CLEAR ITAB_PHONELIST. " a blank row being created.

APPEND ITAB_PHONELIST. " a blank row being added.

ENDCASE.

ENDMODULE. " USER_COMMAND_0100_AFTER_LOOP INPUT


Field List


GUI Status


Objects


Table Attributes


Table Columns






Examples on Table Controls
-------------------------------------------------------------------------------------------------------------
Demo on using Table Control
By Raghav Vakada, MouriTech Solutions
*&---------------------------------------------------------------------*
*& Report Z_DB_TABLECONTROL *
*& *
*&---------------------------------------------------------------------*
*& *
*& *
*&---------------------------------------------------------------------*
REPORT Z_DB_TABLECONTROL.
TABLES: MARA.
CONTROLS MATERIAL TYPE TABLEVIEW USING SCREEN 130.
TYPES: BEGIN OF ST_MARA,
MATNR TYPE MARA-MATNR,
ERSDA TYPE MARA-ERSDA,
ERNAM TYPE MARA-ERNAM,
LAEDA TYPE MARA-LAEDA,
END OF ST_MARA.
DATA: IT_ST TYPE TABLE OF ST_MARA,
WA_ST TYPE ST_MARA,
IT_MARA TYPE MARA,
WA_MARA TYPE MARA,
OK_CODE LIKE SY-UCOMM.
CALL SCREEN 130.
*&---------------------------------------------------------------------*
*& Module V1 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE V1 INPUT.
CASE OK_CODE.
WHEN 'SAVE'.
WA_ST-MATNR = MARA-MATNR.
WA_ST-ERSDA = MARA-ERSDA.
WA_ST-ERNAM = MARA-ERNAM.
WA_ST-LAEDA = MARA-LAEDA.
MOVE-CORRESPONDING WA_ST TO WA_MARA.
INSERT INTO MARA VALUES WA_MARA.
WHEN 'DELETE'.
WA_ST-MATNR = MARA-MATNR.
WA_ST-ERSDA = MARA-ERSDA.
WA_ST-ERNAM = MARA-ERNAM.
WA_ST-LAEDA = MARA-LAEDA.
MOVE-CORRESPONDING WA_ST TO WA_MARA.
DELETE MARA FROM WA_MARA.
WHEN 'MODIFY'.
WA_ST-MATNR = MARA-MATNR.
WA_ST-ERSDA = MARA-ERSDA.
WA_ST-ERNAM = MARA-ERNAM.
WA_ST-LAEDA = MARA-LAEDA.
MOVE-CORRESPONDING WA_ST TO WA_MARA.
MODIFY MARA FROM WA_MARA.
ENDCASE.
ENDMODULE. " V1 INPUT
*&---------------------------------------------------------------------*
*& Module EXIT INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE EXIT INPUT.
IF OK_CODE = 'EXIT'.
LEAVE PROGRAM.
ENDIF.
ENDMODULE. " EXIT INPUT
Create a screen by number 130 and provide the following attributes:

LAYOUT:

ELEMENT LIST:

FLOW LOGIC.

EXECUTE:




Interview questions
Language Constructs

1. When using Open SQL statements in an ABAP/4 program, you must ensure the following.
a) The database system being addressed must be supported by SAP.
b) The database tables being addressed must be defined in the ABAP/4 dictionary.
c) Both
d) None

2. What is the difference between the TYPE and LIKE statements in data declaration?
a) LIKE is used to define variables that are similar to the ones previously defined whereas TYPE is
used to define variables that exist in data dictionary.
b) LIKE is used to define variables that are similar to the ones previously defined whereas TYPE is
used to define variables to refer ABAP internal data elements.
c) LIKE is used to define variables that exist in data dictionary whereas TYPE is used to define
variables to refer ABAP internal data elements.
d) Both of them can be used interchangeably, there is no difference.


3. HIDE statement support deep structures?
a) True
b) False
c) Not applicable
d) Not applicable


4. Which of the following are true?
a) ABAP queries are created by associating them to a logical database or through a direct
read/data retrieval program.
b) ABAP queries are created from functional areas that are created from a logical database or
through a direct read/retrieval program.
c) ABAP queries are created from user groups attached to the functional areas that are created
from a logical database or through a direct read/retrieval program.
d) ABAP queries are created through the regular report program.


5. A logical unit of work (LUW or transaction) begins
a) Each time you start a transaction.
b) Each time you end a transaction.
c) When the database changes of the previous LUW have been confirmed (database commit).
d) Before the database changes of the previous LUW have been cancelled (database rollback).


6. A database commit is triggered by
a) ABAP/4 command COMMIT WORK.
b) CALL SCREEN, CALL DIALOG.
c) A Remote Function Call
d) CALL TRANSACTION

7. Open SQL vs. Native SQL
a) A database interface translates SAPs Open SQL statements into SQL commands specific to the
database in use. Native SQL statements access the database directly.
b) When you use Native SQL, the addressed database tables do not have to be known to the
ABAP/4 dictionary. In Open SQL, the addressed database tables must be defined in the ABAP/4
dictionary.
c) There is automatic client handling in Native SQL whereas clients must always be specified in
Open SQL.
d) None of above


8. The following are true about EXEC SQL.
a) You can end the Native SQL with a semicolon.
b) You can end the Native SQL with a period.
c) You cannot perform reliable authorization checks using EXEC SQL.
d) Host variables in the Native SQL are identified with a preceding hash (#).


9. What are field symbols?
a) Field symbols are like pointers in C that can point to any data object in ABAP/4 and to structures
defined in ABAP/4 dictionary.
b) Field symbols have to be created with type specifications only.
c) You cannot assign one field symbol to another.
d) All operations you have programmed with the field symbol are carried out with the assigned field.


10. EXTRACT statement
a) The first EXTRACT statement extracts the first extract record.
b) The first EXTRACT statement creates the extract dataset and adds the first extract record.
c) Each extract record contains, if specified, the fields of the field group.
d) Each extract record contains, if specified, the fields of the field symbol.


11. You cannot assign a local data object defined in a subroutine or function module to a field group.
a) True
b) False
c) Not applicable
d) Not applicable



12. Which of the following system fields keep track of each pass in LOOP statement?
a) SY-STEPL
b) SY-INDEX
c) SY-TABIX
d) B and C both


13.
data: begin of group1,
f1 type I value 1,
f2 type I value 1,
f3 type c value '1',
f4 type I value 1,
end of group1.

Data: begin of group2,
g1 type I value 1,
f1 type I value 1,
f2 type I value 1,
g4 type c value '1',
end of group2.

Do 2 times.
Add-corresponding group1 to group2.
Enddo.

Write: group2-g1, group2-f1, group2-f2, group2-g4.

What is the output of the above code after execution?
a) 1221
b) 2222
c) 3333
d) 1331


14. Which one of the following SQL statements does NOT lock the affected database entries ?
a) insert
b) modify
c) select single for update
d) select *


15. Which one of the following is an example of an asynchronous update?
a) insert wa into ztable.
b) call function 'update_table' in update task.
c) update ztable from ztable.
d) modify ztable from wa.



16. REPORT ZTEST.

TABLES: MARC.

DATA: ZWERKS LIKE MARC-WERKS.

Which one of the following contains the length definition of ZWERKS?

a) The DATA statement
b) The Data Element used in MARC-WERKS
c) Table MARC
d) The Domain used in Data Element of MARC-WERKS


17.
1. Data: Begin of imara occurs 0.
2. Include structure mara.
3. Data: End of imara.
4 Data: number like mara-matnr value 123.
5. Select * into table imara
6. From mara where matnr = number.
7. If sy-subrc = 0.
8. Write:/ imara.
9. Endif.
10. Endselect.

Which line in the above code contains a syntax error?

a) Line 5
b) Line 6
c) Line 8
d) Line 10


18.
data: f1 type I value 1,
f2 type I value 1.

Write: / f1, f2.

Do 2 times.
Perform scope.
Enddo.

Write: / f1, f2.

Form scope.
Data: f1 type I value 2,
f2 type I value 2.

Add: 1 to f1, 1 to f2.
Write: / f1, f2.
Endform.

What is the output of this program after execution?
a) 1 1
3 3
4 4
4 4

b) 1 1
2 2
3 3
3 3

c) 1 1
3 3
3 3
1 1

d) 1 1
3 3
3 3
3 3


19.
data: begin of period,
f1 type I value 5,
f2 type I value 5,
f3 type I value 5,
f4 type I value 5,
f5 type I value 2,
end of period.

Data: amt type I,
total type I.

do 5 times varying amt from period-f1 next period-f2.
if sy-index <= 4.
add amt to total.
endif.
enddo.

Write: / 'Amt:',amt, 'Total', total.

What is the output of the above code after execution?
a) Amt: 2 Total: 22
b) Amt: 2 Total: 20
c) Amt: 5 Total: 20
d) Amt: 5 Total: 10


20. data: field1(4) type c value 'ABCD'.

if field1 co 'ABCD'.

endif.

If the above statement is evaluated as true, what is the value of sy-fdpos?
a) 0
b) D
c) ABCD
d) A

21.
1 case number.
2 when 1. Write '1'.
3 when 2. Write '2'.
4 when 3. Write: / '3'.
5 when number > 5. Write '>5'.
6 endcase.

Which line in the above code contains a syntax error?

a) Line 2
b) Line 4
c) Line 5
d) Line 6


22. Which of the following are elementary types in ABAP?
a) C,D,F,I,N,P,Q,T
b) C,D,F,I,N,P,T,X
c) A,D,F,H,N,P,T,X
d) A,D,F,I,N,P,T,X


Tables

23. Which of the following are true?
a) TABLE is used as a synonym for STANDARD TABLE
b) You can only access a hashed table using the generic key operations. Explicit or implicit index
operations (such as LOOP ... FROM oe INSERT itab within a LOOP) are not allowed.
c) All hashed tables are index tables.
d) We have to define the hash procedure explicitly for HASHED TABLE.


24. Can a transparent table exist in data dictionary but not in the database physically?
a) True
b) False
c) Not Applicable
d) Not Applicable


25. Which statement is used to get the number of lines in an internal table?

a) DESCRIBE table
b) LINES
c) LINE
d) All of the above

26. If CHECK statement is outside the loop structure and if the condition fails?
a) Subsequent statements in the current processing blocks are executed
b) Subsequent statements in the current processing blocks are not executed
c) Program gets terminated
d) There is an error message


27. SORT statement can sort
a) External as well as internal table
b) Database tables
c) Internal Tables
d) B and C


28. Join statements can be used with Cluster tables?
a) True
b) False
c) Not Applicable
d) Not Applicable



29. It is always faster to use the Into Table version of a Select statement than to use Append statements?
a) True
b) False
c) Not Applicable
d) Not Applicable

30. From the performance point of view, if you want to process the data only once, which of the following
will you use?
a) Selecting the data into an internal table and then LOOP through internal table.
b) Do the processing in SELECT..END SELECT
c) Select the records in the loop and then process each individually
d) Each of the above will be equally efficient


31. Two internal tables are equal if
a) Internal tables cannot be compared for equality
b) It has same number of lines
c) Each pair of corresponding lines is equal
d) A and B both


32. Which of the following will happen if you write DELETE itab statement in your program?
a) All entries of Internal table will be deleted
b) Only the header line will be deleted
c) The row corresponding to header line will be deleted from the internal table
d) The program will give syntax error.


33. Which of the following statements is/are syntactically correct?

a) PERFORM sub1 TABLES itab
CHANGING var1.
b) PERFORM sub1 CHANGING var1
TABLES itab .
c) Both of the above
d) None of the above


34. Which of the following will happen if you write DELETE itab statement?
a) All entries of Internal table will be deleted
b) Only the header line will be deleted
c) The row corresponding to header line will be deleted from the internal table
d) The program will give syntax error.


35. Transparent table ztable consists of field1 and field2.
Internal Table Itab has structure like ztable.
Which one of the following is the fastest way to fill an internal table given the information above?
a) select * into corresponding-fields of itab
from ztable where field1 = '10'.
b) select field1 field2 into (itab-field1, itab-field2)
from ztable where field1 = '10'.
Append itab.
Endselect.
c) select * into table itab from ztable
where field1 = '10'.
d) select * from ztable
where field1 = '10'.
Move ztable to wa.
Append itab from wa.
Endselect.

36.
data: begin of itab occurs 0,
num1 type I,
num2 type I,
num3 type I,
mark,
end of itab.

Itab entries:
1 2 3 D
2 3 4
3 4 5 D
4 5 6 D
7 8 9 d
7 8 9 D

Delete from itab where mark eq 'D'.

Given the ITAB entries, what are the contents of ITAB after executing the above code?
a) 2 3 4
3 4 5 D
4 5 6 D
7 8 9 d
7 8 9 D

b) 1 2 3 D
2 3 4
3 4 5 D
4 5 6 D
7 8 9 d

c) 2 3 4
7 8 9 d

d) 2 3 4




37. Which of the following statements define internal tables with a header line?

a) Data: Begin of itab occurs 0,
field1,
End of itab.
b) Data: Itab1 like itab occurs 0.
c) Data: Itab1 type itab occurs 0.
d) Data: Begin of itab1 occurs 0.
Include structure itab.
Data: End of itab1.


38.
DATA: BEGIN OF ICODE OCCURS 0,
FIELD1(5),
FIELD2(5),
END OF ICODE.

The internal table icode contains the following entries:
Field1 Field2
------- ------
John 12345
Alice 23478
Sam 54321
john 50000

READ TABLE ICODE WITH KEY FIELD1 = 'John' BINARY SEARCH.

Why does executing the above code return a sy-subrc of 4?
a) The internal table has an incorrect structure.
b) Icode-field2 must be a numeric field.
c) Both internal table fields must be used in the search.
d) The internal table must be sorted first.


39. Which of the following are true?
a) COLLECT can only be used with STANDARD TABLE.
b) To use COLLECT, the internal table should be derived from a database table with an explicit key.
c) If the system finds a numeric component, that is not part of the key, the numeric fields that are
not part of the table key (see ABAP number types) are added to the sum total of the existing
entries. If it does not find an entry, control passes on to the next record in the internal table.
d) If the system finds a numeric component, that is not part of the key, the numeric fields that are
not part of the table key (see ABAP number types) are added to the sum total of the existing
entries. If it does not find an entry, the system creates a new entry instead.


40.
data: begin of itab occurs 0,
field1,
end of itab.

Do 3 times.
Append initial line to itab.
Append 'X' to itab.
Enddo.

Describe table itab.
Write: sy-tfill.

What is the value of sy-tfill after executing the above code?
a) 1
b) 2
c) 3
d) 6

41. Loop at itab.
Write itab.
Endloop.

From where is the written line derived in the above loop statement?

a) The table header
b) The table work area
c) sy-index
d) sy-lisel

42.
DATA TEXT(72).

DATA CODE LIKE TABLE OF TEXT.

TEXT = 'This is the first line.'.

APPEND TEXT TO CODE.

TEXT = 'This is the second line. '.

APPEND TEXT TO CODE.

TEXT = 'This is the third line.'.

APPEND TEXT TO CODE.

WRITE 'not' TO CODE+8 INDEX 3.
WRITE 'modified line.' to code+12 INDEX 2.

LOOP AT CODE INTO TEXT.

WRITE / TEXT.

ENDLOOP.

What is the result of the above code after execution?
a) This is the first line.
This is the modified line.
This is not the third line.

b) This is the first line.
This is the modified line.
This is not third line.

c) This is the first line.
This is the modified second line.
This is not third line.

d) This is the first line.
This is the second line.
This is the third line.




ABAP/4 Data Dictionary

43. Can you create a table with fields not referring to data elements?
a) Yes
b) No
c) Not Applicable
d) Not Applicable

44. Which transaction code is used for deleting entire table contents?
a) SE17
b) SE30
c) SE14
d) SE09



45. Which of the following are true?
a) Pooled tables can be used to store control data like screen sequences, program parameters
etc.
b) Several cluster tables are stored in one corresponding table on the database.
c) Both
d) None


46. Which database object is used for storing the system variables?

a) SYST table
b) SYST structure
c) SYSTEM table
d) SYSTEM structure



47. What makes a text table?
a) The type of foreign key field defined must be No Key/Candidates
b) The key of the text table consists of the key of the check table plus an additional language key
c) Cardinality must be defined as 1:1
d) The table has to be client independent


48. From the list below which is not a data class in the Dictionary?
a) Master Data
b) Organizational Data
c) Project Data
d) System Data



49. Identify the case where table buffering is set to off.
a) When the most current data is required
b) When the most current data is not required
c) Small static tables i.e. tables do not change much
d) b and c

50. When using SAP Buffering on database tables, which statement does NOT result in database
access?
a) select distinct..
b) select single..
c) using (Is null) in the where clause
d) using aggregate functions in the select clause

51. A structured type in the ABAP dictionary that has no physical table definition in the underlying
database is referred to as :
a) Table
b) Table Type
c) Structured Type
d) Structure

52. When are Dictionary changes made available to a program?
a) Immdiately provided object is activated
b) Next time user logs on
c) Next time program is regenerated
d) After Database is re-organized

53. Which of the following do not exist in the underlying database?
a) Transparent Table
b) Structure
c) View
d) Internal tables

54. Full buffering would be appropriate for what type of tables:
a) Small static tables
b) Transaction Tables
c) Tables with generic keys
d) b and c

55. You have added an append structure to a standard SAP table. What happens to the standard table
when a new version of table is imported during an SAP version upgrade:
a) The standard table is returned to standard. Therefore, the append structure must be manually re-
applied
b) The append fields are automatically appended to the table upon activation but you must still convert
the table
c) All append structures are deleted. A new append structure must be created and added to the
standard table
d) When the standard tables are activated, the append structure is automatically added to the standard
table

56. Which of the following are TRUE for SQL trace utility (tcode ST05) in SAP -
a) SQL trace utility traces database access for a specific program
b) SQL trace utility traces database access for all transactions by a specific user
c) SQL trace result shows details of queries on database tables
d) SQL trace result can show details of queries on internal tables


57. A table ztest has the following secondary index: tnum, tcode.

Select * from ztest where tnum ne '123' and tcode = '456'.

Why does a SQL trace confirm that the secondary index is NOT used in the code above?
a) Client is not in the where clause
b) NE invalidates the use of an index
c) Variables must be used, NOT literals
d) Indexes are not allowed on Z tables


Batch Data Communication

58. How do you create a batch input session for a transaction?
a) We create a bdc and use call transaction in background mode.
b) We create a bdc and use call transaction in error mode.
c) We create a bdc and use bdc_insert for the transaction.
d) None of the above.


59. What is the alternative to batch input session?
a) Load module
b) Call transaction
c) BAPI
d) Idoc segment


60. Which SAP table stores the BDC session queue information?
a) APQD
b) APQL
c) APQQ
d) APQI

61. Which program can be used to release BDC sessions within a job?
a) RSBDCSUB
b) RSBDCJOB
c) RSSUBBDC
d) BDCRECXX




62. Which one of the following is output to the job log when included in an ABAP program running in the
background?
a) Write statements
b) message statements
c) report parameters
d) Submit statements



63. Your program specs call for you to read the first 10 records from a text file (fname1), and write them
out to another text file (fname2).

Which block of code will accomplish the result desired in the above scenario?
a) Open dataset fname2 for input in text mode.
Do 10 times.
Read dataset fname1 into hold_var.
Transfer hold_var to fname2.
Enddo.

b) open file fname1 for output.
Open file fname2 for input.
Read dataset fname1 into hold_var 10 times.
Transfer hold_var to fname2.

c) open file fname1 for input.
Open file fname2 for output.
Do 10 times.
Read file fname1 into hold_var.
Transfer hold_var into fname2.
Enddo.

d) open dataset fname1 for input in text mode.
Open dataset fname2 for output in text mode.
Do 10 times.
Read fname1 into hold_var.
Write hold_var to fname2.
Enddo.

64. sy-dynpro is
a) screen no
b) program
c) table
d) field name


65. Which of the following are NOT correct usage of BDC_cursor?
a) To position the cursor on a particular field.
<bdc_tab>-FNAM = 'BDC_CURSOR'.
<bdc_tab>-FVAL = fieldx .

b) To position the cursor on a particular field.
<bdc_tab>-FNAM = fieldx
<bdc_tab>-FVAL = 'BDC_CURSOR'. .

c) For fifth row of Table control
<bdc_tab>-FVAL = 'fieldx(5)'.

d) For fifth row of Table control
<bdc_tab>-FNAM = 'BDC_CURSOR(5) '.


66. In case of background processing of a BI session, which authorization is checked?
a) Developer of the program that schedules BI Session
b) User who executes the BI session
c) User who executes the program that schedules BI Session
d) User ID that is passed to the BDC_OPN_GROUP function module inside the calling program

67. Which of the following are TRUE about Transaction Recorder?
a) Transaction Code is SHDB
b) Transaction Code is SM35
c) It can generate ABAP code for the BDC program automatically
d) It can generate ABAP code for the Call Transaction program automatically
SAP Script

68. The following are true about SAPscript control commands.
a) If a control command is unknown or it contains syntax errors, the line containing it will be printed
out as it is.
b) If a control command is unknown or it contains syntax errors, the line containing it will be treated
as a comment line.
c) A maximum of one control command may appear in each line.
d) A maximum of six control commands may appear in each line.


69. To output SAPscript layout sets, in the print program
a) You must always start the output with OPEN_FORM and end it with CLOSE_FORM.
b) Within one transaction, you can use only one OPEN_FORM and CLOSE_FORM to open and
close a layout set.
c) WRITE_FORM should be used within an OPEN_FORM and CLOSE_FORM.
d) WRITE_FORM can be used without an OPEN_FORM and CLOSE_FORM.


70. Which transaction do we use for debugging SAP Script?
a) SE61
b) SE72
c) SE71
d) None of the above.


SAP Enhancements

71. The transaction cmod and smod are
a) Used to create enhancements to standard SAP programs.
b) Used to create enhancements to ABAP queries.
c) Used to create the user exits, menu exits and screen exits.
d) Used to modify the standard function groups.


Interfaces and Queries

72. What happens if we write COMMIT WORK is written within SELECT..END SELECT.
a) All the transactions will be committed.
b) The first transaction is committed and the program exits the loop.
c) Program will create a short dump
d) A runtime error will occur.


73. How many function modules can be present in a function group?

a) 30
b) 49
c) 99
d) There is no such limit


74. Can you call a subroutine of one program from another program, which is not an include program?
a) True
b) False
c) Not Applicable
d) Not Applicable


75. Which of the following statements is TRUE?
a) The ABAP statement IMPORT ... TO MEMORY overwrites the old data in ABAP memory.
b) The ABAP statement EXPORT ... TO MEMORY appends to the already existing data in ABAP
memory.
c) The ABAP statement EXPORT ... TO MEMORY overwrites the old data in ABAP memory.
d) The ABAP statement IMPORT ... TO MEMORY appends to the already existing data in ABAP
memory.


76. SAP Memory and ABAP/4 memory refer to the same memory space?
a) True
b) False
c) Not Applicable
d) Not Applicable

77. Which statement is INCORRECT when referring to SAP memory or ABAP memory?

a) SAP memory is also referred to as Global Memory.
b) SAP memory is available across transactions.
c) IMPORT/EXPORT (TO MEMORY) statements are used for SAP memory.
d) You can use ABAP memory to pass data between internal sessions.


78. Which one of the following are true about a function module?
a) Function modules CANNOT be created by a programmer.
b) Function modules are locally accessible objects.
c) Function modules use a memory area separate from calling program.
d) Function modules have inbound and outbound parameters.


IDOC

79. An IDOC structure is composed of
a) One substructure, substructure consists of several fields
b) Several segments, each segments has several data elements
c) Several substructures, each one made up of several data fields
d) Several segments, each segment consists of several data fields


80. Read the 2 statements below and pick the right answer choice
A. Archived files can be analyzed without reloading the file
B. An archived IDOC can be reloaded and then archived

a) A & B are true
b) Only B
c) Only A
d) Both are false

_______________________________________________________________________

81. The transaction for archiving IDOCs is
a) WARC
b) WEAR
c) SARA
d) SARC

_______________________________________________________________________

82. An IDOC contains data for 3 purchase orders (type ORDERS01, with 1 mandatory segment, 11 other
segments which are permitted to be multiple). Read the following statements which could describe
the content of the idoc, and pick the right combination:
A. It will have 3 control records
B. It will have 1 control record
C. It will have a minimum of 3 data records
D. It will have a minimum of 1 data record
E. It will have a minimum of 48 data records
F. It will have at least 1 status record
G. It will have at least 3 status records
a) A, C, F
b) B, C, F
c) B, C, G
d) A, E, G


83. Which of the following statements is true?
A. An IDoc type can have many messages types associated with it.
B. An IDoc can have many messages associated with it.
C. A message type can be associated with many IDoc types.
a) A and C
b) A and B
c) Only A
d) All the statements


84. Pick the right answer
A. An idoc type is dependent on the direction of data flow (inbound/outbound).
B. The control record has a field DOCTYP which indicates whether the IDOC is of the type inbound
or outbound
a) Only A is true
b) Only B is true
c) A and B are true
d) Neither A nor B are true




85. The control record field which determines the direction of the IDoc can have values
e) X and (space)
f) 1 and 2,
The meaning of the values is
C. X inbound, space outbound
D. X outbound, space inbound
E. 1 inbound, 2 outbound
F. 1 outbound, 2 inbound
Pick the right combinations of statements, which are true
a) A, C
b) A, D
c) B, E
d) B, F


86. The area menu from which EDI tools can be accessed is
a) WALE
b) WEDI
c) SALE
d) SEDI


87. The transactions for documentation on IDOC structures are
a) WE60 to WE64
b) SA60 to SA64
c) WE80 to WE84
d) SA20 to SA24


Report Programming

88. How do you check whether a report is submitted in background?
a) The system variable, sy-batch is set to X.
b) The system variable, sy-binpt is set to X.
c) The system variable, sy-calld is set to X.
d) Not applicable


89. Which transaction code is used executing a report (type 1 program)?

a) SE38
b) SA38
c) SM38
d) All of the above


90. When is the TOP-OF-PAGE event triggered?
a) After executing first write statement in start-of-selection event.
b) At every new page in the report output
c) After the REPORT statement
d) A and B


91. Which of the following additions for SELECT-OPTIONS would disable the ranges on selection
screen?
a) NO-RANGES
b) NO INTERVALS
c) NO RANGES
d) NO-INTERVALS


92. What is the structure for the following select-options? Select-options: zname like ztable-name.
a) zname-sign
zname-value
zname-low
zname-high

b) zname -sign
zname-option
zname-low
zname-high

c) zname -include
zname-pattern
zname-range

d) zname-sign
zname-option
zname-low




93. Following properties are given:
Must use mara-matnr's conversion exit
Is a required field
Appears as 100 on the selection screen
Check for a valid mara-matnr

Which one of the following is the correct way to define a selection-screen parameter (n) with the above
properties?
a) parameters: n type I default '100'.
b) parameters: n like mara-matnr default 100 obligatory.
At selection-screen on n.
Select single * from mara where matnr = n.
If sy-subrc ne 0.
Message e000(00) with 'Incorrect number'.
Endif.
c) parameters: n like mara-matnr default 100 obligatory.
d) parameters: n type I default 100 required.
At selection-screen on n.
Select single * from mara where matnr = n.
If sy-subrc ne 0.
Message e000 with 'Incorrect number'.
Endif.

94. Report specs call for a selection screen with 1 parameter inside a frame. Which code block will
accomplish this?

a) Selection-screen begin of frame b1 with frame title t-001.
Parameters: p1 like ztable-field1.
Selection-screen end of frame b1.

b) Selection-screen begin-of-frame b1 with frame title t-001.
Parameters: p1 like ztable-field1.
Selection-screen end-of-frame b1.

c) Selection-screen begin-of-block b1 with frame title t-001.
Parameters: p1 like ztable-field1.
Selection-screen end-of-block b1.

d) Selection-screen begin of block b1 with frame title t-001.
Parameters: p1 like ztable-field1.
Selection-screen end of block b1.

95. Which return code is associated with a failed authority check due to lack of user authorization for the
chosen action?
a) 0
b) 4
c) 8
d) 12

96. You are required to create a selection screen with 1 input parameter: A date range which defaults to
the last 1 week (today-7,today)

Which is the correct block of code for the above request?
a) select-options: s_date type date.

Initialization.
Move: sy-datum to s_date-high,
sy-datum - 7 to s_date-low.
Append s_date.

b) select-options: s_date for sy-datum.

Initialization.
Move: sy-datum - 7 to s_date-low,
sy-datum to s_date-high.
Append s_date.

c) select-options: s_date type d default sy-datum - 7, sy-datum.

d) select-options: s_date for sy-datum default sy-week,


97. Which one of the following statements is a valid use of the write command?
a) write text(3)(4).
b) write text(3)4.
c) write text+(3)(4).
d) write text+3(4).

98. When using an edit mask, which one of the following fields will be output with a leading sign?
a) field1 using edit mask '**_LLV'
b) field1 using edit mask 'RR__,_'
c) field1 using edit mask 'LL__,_'
d) field1 using edit mask 'V__'


99. For the events in Classical Reports :
1. Initialisation
2. At Selection Screen
3. Start Of Selection ( Get & Get Late in case of Logical Database )
4. End of Selection
5. Top of Page
6. End of Page
sequence of calling is :
a) 1,2,3,4, 5, 6
b) 2,1, 3,4, 5, 6
c) 1,2, 5, 6, 3,4
d) 2,1, 5, 6, 3,4


100. The sequence of events in Interactive Reports is
1. At Line Selection
2. At User Command
3. At PFKEY
4. Get Cursor
5. Read

a) 1,2,3,4, 5
b) 1,2,3,5, 4,
c) 1, 2, 4, 5, 3
d) 1, 3, 5, 4, 2



101. What is max no of lists u can attach to basic list?(interactive report)
a) 22
b) 20
c) 18
d) 1



General

102. If a break-point statement is written in an ABAP program and the program is run in the
background mode, which of the following is true.
a) Break-point statement will be ignored and program will complete the execution.
b) System generates a Sys log message
c) Program will create a short dump
d) None of the above


103. When a program is created and transported the selections texts are always transported along
with the program.
a) True
b) False
c) Not Applicable
d) Not Applicable



104. Programs and reports are client dependent.
a) True
b) False
c) Not Applicable
d) Not Applicable



105. Which transaction code is used for creating a background job?

a) SM37
b) SM35
c) SM36
d) SM38


106. Can variants be transported across systems?

a) Yes
b) No
c) Not Applicable
d) Not Applicable

107. Are variants client dependent?
a) Yes
b) No
c) Not Applicable
d) Not Applicable



108. What are the functions in the editor command line?
a) F1
b) F4
c) F3
d) F8

109. What does the transaction code /i1 do?
a) Shifts to the first session of the user
b) This terminates the first session of the user
c) Terminates the current session of the user
d) No transaction with this code exists.


110. Which transaction code is used for deleting the user lock on tables?
a) SE12
b) SE11
c) SM12
d) SM11

111. What transaction is used to create background jobs?
a) SM30
b) SM35
c) SM36
d) SM37

112. Which one of the following transaction types is INVALID?
a) Area
b) Modal
c) Variant
d) Report

113. Which one of the following statements are TRUE?
a) After a TRANSPORT REQUEST is released, no further changes to its' objects are allowed.
b) Development classes can be viewed by using transaction SE80.
c) Local objects CANNOT be transported to another instance. .
d) A TRANSPORT REQUEST contains objects that can be transported to Quality or Production
SAP instances.

114. Which one of the following statements are FALSE about Inactive objects in SAP?
a) Development Objects are always saved as inactive versions.
b) An inactive version of a Development Object is written to developers pc
c) In DISPLAY mode, other users can NOT access the code of inactive version of a developer
d) Generating a runtime object is same as activating a development object.



Dialog Programming
115. Program specs call for screen 100 to appear in a modal dialog box.

Process After Input.
module do_something.

module do_something.
If field1 = 'X'.
Call screen '0100'.
Endif.
Endmodule.

Why does the above code fail to produce a modal box?
a) The code must occur in the PBO.
b) The screen is of the wrong type.
c) The screen should be numbered 900.
d) Screens are not called within modules.



116. Which one of the following statements would occur in the PBO of a dialog program using table
control?
a) module user_command.
b) set screen '0100'.
c) loop at itab.
d) loop at itab with control itab_tc.












Answers (Please Verify the answers)

1. c
2. b,c
3. b
4. c
5. a,d
6. a,b,c,d
7. a,b
8. a,c
9. a,d
10. b,c
11. a
12. c
13. c
14. d
15. b
16. d
17. d
18. c
19. b
20. a
21. d
22. b
23. a,b
24. b
25. a
26. b
27. c
28. b
29. a
30. b
31. d
32. c
33. b
34. c
35. c
36. c
37. a,d
38. d
39. d
40. d
41. a
42. b
43. a
44. c
45. a,b
46. b
47. b
48. c
49. a
50. b
51. d
52. a
53. b,d
54. a
55. d
56. b,c
57. b
58. c
59. b
60. d
61. a
62. b
63. d
64. a
65. b,d
66. d
67. a,b,c
68. b,c
69. a,c
70. c
71. a,c
72. d
73. c
74. a
75. c
76. b
77. d
78. c,d
79. d
80. c
81. c
82. b
83. a
84. d
85. d
86. b
87. a
88. a
89. a,b
90. d
91. d
92. b
93. b
94. d
95. b
96. b
97. d
98. d
99. a
100. a
101. b
102. a,b
103. a
104. b
105. c
106. a
107. b
108. a,b
109. b
110. c
111. c
112. b
113. b,c,d
114. b,d
115. d
116. d