Module Pool
Transactions:
A
transaction is a program that conducts a dialog with the user. In a typical dialog, the system displays a
screen on which the user can enter or request information. Based on the the
user input or request, the program executes the appropriate actions like, it branches to the next screen, displays an
output, or changes the database.
Explain what is a transaction in SAP
terminology.
- In
SAP terminology, a transaction is
series of logically connected dialog steps.
Explain how SAP GUI handles output
screen for the user.
-
User terminal input is accepted
by SAP GUI and sent to the SAP
dispatcher. The dispatcher co-ordinates the information exchange
between the SAP GUIs and the work processes. The dispatcher first places the
processing request in request queues, which it then processes. The dispatcher dispatches the requests to the
available work process. The actual processing takes place in the work
process. When processing is complete, the result
of a work process is returned via the dispatcher to the SAP GUI. The
SAP GUI interprets the received data and generates the output screen for the
user.
What is LUW or Database LUW or Database Transaction
?
-
A “LUW” ( logical unit of work ) is the span
of time during which any database updates must be performed . Either they are all performed ( committed ) , or they are all thrown away (
rolled back ).
LUW ( or “database LUW” or “database transaction” )
This is the set of updates
terminated by a database commit. A LUW
lasts, at most, from one screen change to the next ( because the SAP system
triggers database commits automatically at every screen change ).
LUWs help to guarantee
database integrity. When an LUW has been successfully concluded, the database
is once again in a correct state. If, however, an error occurs within an LUW,
all database changes made since the beginning of the LUW are canceled and the
database is then in the same state as before the LUW started.
An LUW begins
- Each time you start a
transaction
- When the database changes
of the previous LUW have been confirmed (database commit) or
- when the database changes
of the previous LUW have been cancelled (database rollback)
An LUW ends
- When the database changes
have been confirmed (database commit) or
- When the database changes
have been canceled (database rollback)
What is SAP LUW or Update Transaction ?
- Update transaction ( or “SAP LUW”)
This is a set of updates terminated by an ABAP/4
commit. A SAP LUW may last much longer than a database LUW, since most update
processing extends over multiple transaction screens.The programmer terminates
an update transaction by issuing a COMMIT WORK statement.
Does
the external program run in the same SAP LUW as the caller, or in a separate
one?
- Transactions
run with a separate SAP LUW
- Reports
run with a separate SAP LUW
- Dialog
modules run in the same SAP LUW as the caller
- Function modules run in the same SAP
LUW as the caller
The only exceptions to the above rules
are function modules called with IN UPDATE TASK (V2 function only) or IN
BACKGROUND TASK (ALE applications). These always run in their own (separate)
update transactions.
What are the requirements a dialog program must fulfill ?
- A dialog program must fulfill the
following requirements
. a
user friendly user interface
. format
and consistency checks for the data entered by the user
. easy
correction of input errors
. access
to data by storing it in the database.
What are the basic components of dialog program ?
- Screens (Dynpros)
Each dialog in an SAP system is
controlled by dynpros. A Dynpro consists of a screen and its flow logic and
controls exactly one dialog step.
- ABAP/4 module pool
Each dynpro refers to exactly one
ABAP/4 dialog program. Such a dialog program is also called a module pool,
since it consists of interactive modules.
What is a dynpro ? What are its components ?
- A dynpro (DYnamic PROgram) consists of
a screen and its flow logic and controls exactly
one dialog step.
- The different components of
the dynpro are:
Flow logic: Calls of the
ABAP/4 modules for a screen
Screen layout: Positions of the texts,
fields, pushbuttons, and so on for a screen
Screen attributes: Number of
the screen, number of the subsequent screen, and others
Field attributes: Definition
of the attributes of the individual fields on a screen
What is screen flow logic? What are the selections in it?
Explain PAI and PBO?
Ans - Screen flow logic contains the
procedural part of a screen. The screen flow logic is like an ABAP program in
that it serves as a container for processing blocks. There are four event
blocks, each of which is introduced with the screen keyword PROCESS:
PROCESS BEFORE OUTPUT.
...
PROCESS AFTER INPUT.
...
PROCESS ON HELP-REQUEST.
...
PROCESS ON VALUE-REQUEST.
Selections are performed in PAI.
PROCESS BEFORE OUTPUT (PBO) is automatically triggered after
the PAI processing of the previous screen and before the current screen is
displayed. You can program the PBO processing of the screen in this block. At
the end of the PBO processing, the screen is displayed.
PROCESS AFTER INPUT (PAI) is triggered when the user
chooses a function on the screen. You can program the PAI processing of the
screen in this block. At the end of the PAI.
processing, the system either calls the
next screen or carries on processing at the point from which the screen was
called.
PROCESS ON HELP-REQUEST (POH) and PROCESS ON VALUE-REQUEST (POV) are triggered when the user requests
field help (F1) or possible values help (F4) respectively. You can program the
appropriate coding in the corresponding event blocks. At the end of processing,
the system carries on processing the current screen.
Can we use WRITE statement in screen fields ? If not how is
data transferred from field data to screen fields
- We cannot write field data to the
screen using the WRITE statement. The
system instead transfers data by comparing screen field names with ABAP/4
variable names. If both names are the same, it transfers screen field values to
ABAP/4 program fields and vice-versa.
This happens immediately before and immediately after displaying the
screen.
How does the interaction between the Dynpro and the ABAP/4
modules takes place ?
- A transaction is a collection of
screens and ABAP/4 routines, controlled and executed by a Dialog
processor. The Dialog processor
processes screen after screen, thereby triggering the appropriate ABAP/4
processing for each screen. For each
screen, the system executes the flow logic that contains the corresponding
ABAP/4 processing. The control passes
from screen flow logic to ABAP/4 code and back.
How does the Dialog handle user requests ?
- When an action is performed, the system
triggers the PROCESS AFTER INPUT event. The data passed includes field screen
data entered by the user and a function code. A function code is a technical
name that has been allocated in the Screen Painter or Menu Painter to a menu
entry, a pushbutton, the ENTER key or a function key of a screen. An internal
work field (ok-code) in the PAI module evaluates the function code, and the
appropriate
action is taken.
How are the function codes handled in flow logic ?
- When the user selects a function in a
transaction, the system copies the function code into a specially designated
work field called OK_CODE. This field is global in the ABAP/4 module pool. The OK_CODE can then be evaluated in the
corresponding PAI module.
The function code is always passed in
exactly the same way, regardless of whether it comes from a screen's
pushbutton, a menu option, function key or other GUI element.
What controls the screen flow ?
- The SET SCREEN and LEAVE SCREEN
statements control screen flow.
What are “field” and “chain” statements ?
- The FIELD and CHAIN flow logic
statements let you program your own field checks. FIELD and CHAIN tell the
system which fields you are checking,and whether the system should perform
checks in the flow logic or call an ABAP/4 module.
What is an on “*-input field” statement ?
- ON *-INPUT
The ABAP/4 module is called if the user
has entered a "*" in the first character of the field, and the field
has the attribute *-entry in the Screen Painter. You can use this option in
exceptional cases where you want to check only fields with certain kinds of
input.
What are conditional chain statements ?
- ON CHAIN-INPUT similar to ON INPUT.
The ABAP/4 module is called if any one
of the fields in the chain contains a value other than its initial value
(blanks or nulls).
ON CHAIN-REQUEST
This condition functions just like ON
REQUEST, but the ABAP/4 module is called if any one of the fields in the chain
changes value.
What is “at exit-command” ?
- The flow logic keyword AT EXIT-COMMAND
is a special addition to the MODULE statement in the flow logic. AT
EXIT-COMMAND lets you call a module before the system executes the automatic
field checks.
Which function type has to be used for using “at
exit-command” ?
- To use AT EXIT-COMMAND, we must assign
a function type ‘E’ to the relevant function in the Menu Painter or Screen
Painter.
What is the difference between SET SCREEN and
CALL SCREEN ?
With SET SCREEN, the
current screen simply specifies the next screen in the chain. control branches
to this next screen as soon as the current screen has been processed. Return
from next screen to current screen is not automatic. It does not
interrupt processing of the
current screen. If we want to branch to
the next screen without finishing the current one, use LEAVE SCREEN.
With CALL SCREEN, the
current (calling) chain is suspended, and a next screen (or screen chain) is
called in. The called screen can then return to the suspended chain with the
statement LEAVE SCREEN TO SCREEN 0.
Sometimes we might want to let an user call a popup screen from the main
application screen to let them enter secondary information. After they have
completed their entries, the users should be able to close the popup and return
directly to the place where they left off in the main screen. Here comes CALL
SCREEN into picture. This statement lets us insert such a sequence into the
current one.
Can we specify the next-screen number with a
variable. ( Yes / No ).
Yes.
The field SY-DYNNR refers to ________________.
Number of the current
screen.
What is a dialog module ?
A dialog module is a
callable sequence of screens that does not belong to a particular transaction.
Dialog modules have their own module pools, and can be called by any
transaction.
The syntax used to call a screen as a dialog
box ( popup ) is _________________.
CALL SCREEN <screen
number>
STARTING AT <start
column> <start line>
ENDING AT <end column> <end line> .
What is a “call mode” ?
In the ABAP/4 world, each
stackable sequence of screens is a "call mode". This is important
because of the way you return from a given current sequence. To terminate a
call mode and return to a suspended chain, set the "next screen" to 0
and leave to it:
LEAVE TO SCREEN 0 or ( SET
SCREEN 0 and LEAVE SCREEN ). When you
return to the suspended chain, execution resumes with the statement directly
following the original CALL SCREEN statement.
The original sequence of screens in a transaction is itself is a
calling mode. If you LEAVE TO SCREEN 0 in this sequence (
that is, without having stacked any additional call modes ), you return from
the transaction altogether.
The maximum number of calling modes stacked at
one time is ______.
Nine.
What is LUW or Database LUW or Database
Transaction ?
A “LUW” ( logical unit of
work ) is the span of time during which any database updates must be performed
in an “all or nothing” manner. Either
they are all performed ( committed ) ,
or they are all thrown away ( rolled
back ). In the ABAP/4 world, LUWs
and transactions can have several meanings:
LUW ( or “database LUW”
or “database transaction” )
This is the set of updates
terminated by a database commit. A LUW
lasts, at most, from one screen change to the next ( because the SAP system
triggers database commits automatically at every screen change ).
What is SAP LUW or Update Transaction ?
Update transaction ( or
“SAP LUW”)
This is a set of updates terminated
by an ABAP/4 commit. A SAP LUW may last much longer than a database LUW, since
most update processing extends over multiple transaction screens.The programmer
terminates an update transaction by issuing a COMMIT WORK statement.
What happens if only one of the commands SET
SCREEN and LEAVE SCREEN is used without using the other?
If we use SET SCREEN without LEAVE SCREEN, the
program finishes processing for the current screen before branching to <scr
no>. If we use LEAVE SCREEN without a
SET SCREEN before it, the current screen process will be terminated and branch directly to the screen specified
as the default next-screen in the screen attributes.
What is significance of the screen number ‘0’ ?
In "calling
mode", the special screen number 0 (LEAVE TO SCREEN 0) causes the system
to jump back to the previous call level.
That is, if you have called a screen sequence with CALL SCREEN leaving
to screen 0 terminates the sequence and returns to the calling screen. If you have not called a screen sequence, LEAVE TO SCREEN 0
terminates the transaction.
What does the command ‘SUPPRESS DIALOG’ do ?
Suppressing of entire
screens is possible with this command.
This command allows us to perform screen processing “in the background”.
Suppresing screens is useful when we are branching to list-mode from a
transaction dialog step.
What is the significance of the memory table
‘SCREEN’ ?
At runtime, attributes for
each screen field are stored in the memory table called ‘SCREEN’. We need not declare this table in our
program. The system maintains the table
for us internally and updates it with every screen change.
What are the fields in the memory table ‘SCREEN’
?
- Name Length Description
Why grouping of fields is required ? What is the
maximum number of modification groups for each field ?
- If the same attributes need to be changed for several fields at
the same time these fields can be grouped together. We can specify up to four modification groups
for each field.
What is a screen group ? How it is useful ?
Screen group is a field in
the Screen Attributes of a screen. Here
we can define a string of up to four characters which is available at the
screen runtime in the SY-DNGR field.
Rather than maintaining field selection separately for each screen of a
program, we can combine logically associated screens together in a screen
group.
What is a Subscreen ? How can we use a Subscreen
?
A subscreen is an
independent screen that is displayed in an area of another ("main")
screen. To use a subscreen we must call it in the flow logic ( both PBO and PAI
) of the main screen. The CALL
SUBSCREEN statement tells the system to execute the PBO and PAI events for the
subscreen as part of the PBO or PAI events of the main screen. The flow logic
of your main program should look as follows:
PROCESS BEFORE OUPTPUT.
CALL SUBSCREEN <area>
INCLUDING '<program>' '<screen>'.
PROCESS AFTER INPUT.
CALL SUBSCREEN
<area>.
Area is the name of the
subscreen area you defined in your main screen. This name can have up to
ten characters. Program is the name of
the program to which the subscreen belongs and screen is the subscreen's number.
What are the restrictions on Subscreens ?
Subscreens have several
restrictions. They cannot:
Set their own GUI status
Have a named OK code
Call another screen
Contain an AT EXIT-COMMAND
module
Support positioning of the
cursor
How can we use / display table data in a screen
?
ABAP/4 offers two
mechanisms for displaying and using table data in a screen. These mechanisms
are TABLE CONTROLS and STEP LOOPS.
What are the differences between TABLE CONTROLS
and STEP LOOPS ?
- TABLE CONTROLS are simply enhanced STEP LOOPS that display data
with the look and feel of a table widget in a desktop application. But from a programming standpoint, TABLE CONTROLS
and STEP LOOPS are almost exactly the same.
One major difference between STEP LOOPS and TABLE CONTROLS is in STEP
LOOPS their table rows can span more than one line on the screen. By contrast the rows in a TABLE CONTROLS are
always single lines, but can be very long.
( Table control rows are scrollable ).
The structure of table controls is different from step loops. A step loop, as a screen object, is simply a
series of field rows that appear as a repeating block. A table control, as a screen object consists
of : i ) table fields ( displayed in the screen ) ii )
a control structure that governs the table display and what the user can
do with it.
Why do we need to code a LOOP statement in both
the PBO and PAI events for each table in the screen ?
We need to code a LOOP
statement in both PBO and PAI events for each table in the screen. This is because the LOOP statement causes the
screen fields to be copied back and forth between the ABAP/4 program and the screen
field. For this reason, at least an
empty LOOP......ENDLOOP must be there.
The field SY-STEPL refers to ___________________
.
The index of the screen
table row that is currently being processed. The system variable SY-STEPL only
has a meaning within the confines of LOOP...ENDLOOP processing. Outside the
loop, it has no valid value.
How can we declare a table control in the ABAP/4
program ?
Using the syntax controls <table control name> type
tableview using screen <scr no>.
Differentiate between static and dynamic step
loops.
Step loops fall into two
classes: Static and dynamic. Static step loops have a fixed size that
cannot be changed at runtime. Dynamic
step loops are variable in size. If the
user re-sizes the window the system automatically increases or decreases the
number of step loops blocks displayed.
In any given screen you can define any number of static step loops but
only a single dynamic one.
What are the two ways of producing a list within a
transaction ?
By submitting a separate report.
By using leave to list-processing.
What is the use of the statement Leave to list-processing ?
Leave to list-processing statement is used to produce a list
from a module pool. Leave to list-processing statement allows to switch from
dialog-mode to list-mode within a dialog program.
When will the current screen processing terminates ?
A current screen processing terminates
when control reaches either a Leave-screen
or the end of PAI.
How is the command Suppress-Dialog useful ?
Suppressing entire screens is possible
using this command. This command allows
us to perform screen processing “in the
background”. The system carries out all
PBO and PAI logic, but does not display the screen to the user. Suppressing screens is useful when we are
branching to list-mode from a transaction dialog step.
What happens if we use Leave to list-processing without
using Suppress-Dialog ?
If we don't use Supress-Dialog the next screen will be displayed but as empty.
when the user presses ENTER, the
standard list output is displayed.
How the transactions that are programmed by the user can be
protected ?
By implementing an authority check.
What are the modes in which any update tasks work ?
Synchronous and Asynchronous.
What is the difference between Synchronous and Asynchronous
updates ?
A program asks the system to perform a
certain task, and then either waits or doesn't wait for the task to finish. In
synchronous processing, the program waits: control returns to the program only
when the task has been completed. In asynchronous processing, the program does
not wait: the system returns control after merely logging the request for
execution.
What is the difference between Leave Transaction and Call
Transaction ?
- In
contrast to LEAVE TO TRANSACTION, the CALL TRANSACTION statement causes the
system to start a new SAP LUW . This second SAP LUW runs parallel to the SAP
LUW for the calling transaction.
Overall how do you write transaction program in SAP?
Create the transaction using object
browser (SE80)
Define the objects e.g. screen, Transactions.
– Modules – PBO, PAI.
And you can create a transaction from
SE93 also.
Does SAP has a GUI screen painter? If yes What operating
systems is it available on? What is the other type of screen painter called?
Yes
On what OS is it available – Window
based.
Other type of screen painter – alpha
numeric screen painter.
What are step loops? How do you program page down page up in
step loop?
Step loops: Method of displaying a set
of records.
Page down & Page up: decrement / increment base
counter
Index = base + sy-step1 – 1
Normally how many and what files get created when a
transaction program is written? What is top XXXXXXTOP program?
Main program with A Includes
I
) TOP INCLUDE – GLOBAL DATA
II ) Include for PBO
III) Include for PAI
IV) include for Forms
Where is processing logic located in an on-line program?
Ans :- ABAP/4 program (module pool)
Describe the online processor. What is its function?
Ans :- Controls the flow of online
program.
How are screen names defined? Do you create a screen first
or define your program first?
Ans :- Define the program first and
then create a screen.
What does PBO stands for? When is the PBO logic performed?
Ans :- PROCESS BEFORE OUTPUT –Processed
before the screen is displayed.
What does PAI stands for? When is the PAI logic performed?
Ans :- PROCESS AFTER INPUT –Processed
after the user has pressed ENTER.
How is data passed from the screen fields to the ABAP/4
program?
Ans
:- Through the flow logic.
What does the TOP Include do for you as a programmer?
Ans: For global declarations.
What are the steps in creating screen?
Where are the module statement declared? Where is the logic
within each module?
Ans :-
1.
Go to SE41 ( Screen Painter )
Enter the program name and screen
number . Press Enter.
2.
Design the screen and save, check and activate it.
Module statements are in the flow logic within each module is in the
ABAP/4 module pool
Program.
What
is the significance of the word ‘OUTPUT’
in the declaration
MODULE TEST_KNOWLEDGE OUTPUT
ENDMODULE.
Ans :- Then we know that it is part of
the PBO, therefore is processed before the screen is presented.
Describe
the fields on the screen ?
Ans :-
Attributes screen , Screen types ,follow up screens , cursor position
etc. After you have entered the screen number, the screen branches to the
screen attribute maintenance. Enter a short description , select the type
NORMAL and specify the number of the follow-up screen.
What
are the three components of ON-LINE program?
Ans :- Screen , ABAP/4 program and
transaction code.
What
is gained by using the Dictionary Fields menu option when creating your screen?
Ans :- The fields you have created
inherits the same attributes as those in the Data Dictionary.
How to
Create a checkbox , frame, pushbuttons
and radio buttons on a screen?
Ans :- Just type a name and go to
graphic element push button.
How do
you assign an OK_CODE for a push button? How it is used in your ABAP?
Ans :- In the field list ,name the
element and give it the value that it will represent when pushed You must make sure that you clear the
field that represents the pushbutton after every check.
What automatic checks does the screen
perform? (should be four)
Describe
all four and how they are used?
Ans :- The field format, required
input, a foreign key table ,parameters.
What
are the two methods to declare input field as mandatory?
If you set required field as program
attribute, the user must enter a value in the field. Required fields appear on
the screen containing a question mark (?).
How does foreign key work? What you have to put in your
screen to identify the foreign key?
No?
Then where is the foreign key identified?
Ans :- You have defined a screen field
by referring to a Data Dictionary, which has a check table. When the foreign
key is checked the system compares the values of the fields to be checked with
the contents of the key fields of the corresponding table.
What
are the two effects of the foreign key from a user standpoint?
Ans :- Possible entries & a check
against the key field contents.
What
is user defined validation checks in the flow logic?
Ans :- FIELD…SELECT FIELD…VALUES or in
the module pool FIELD…MODULE.
Does
the value command in the flow logic go in the PAI or the PBO event?
Ans :- PAI.
If an error occurs in the module pool,
which fields are available for entry and which are display only fields?
Ans :- Only those fields defined with
the FIELD statement before MODULE & relevant checks in a chain.
When
is the chain command used in the PBO event?
Ans :- If you want to make more than
one field ready for input after an error.
What
table stores the online messages? What is the message class and what is its
significance?
Ans :- Table T100. The message class is a specific class
of messages for a group of transactions.
What are the 5 different message
types and how are they handled by the system? What is then difference between
the Warning and Error messages?
Ans :-
A : Abend Message displayed on the current screen and
subsequent task terminated
I : Information Message displayed on the current screen , but
user can continue program by pressing ENTER
E: Error Message displayed on the
current screen. With FIELD statements , the fields concerned become ready again
for input and user is required to make the entry /entries again
W : Warning As E message , but correcting input is
optional
S: Success Message displayed on the
follow-up screen as an I message.
What
does WITH statement add to a message?
Ans :- In the place of the & or $
the fields or values are placed in the error message.
What
effect does the FIELD statement have within the flow logic?
Ans :- The field statement resets the
fields so those fields are ready for input again.
Where
are the messages displayed on the screen?
Ans :- At the bottom.
Is the
SET PARAMETER statement to be issued in PBO or PAI module? Why?
Ans :- PAI, the value must be input
into the fields first before it can be placed in the buffer.
Where does the GET PARAMETER
statement get its values? Which field gets populated with the new value?
Ans :- From the buffer.
Where
can the SET CURSOR command be executed? What is its effect?
Ans :- In PBO, To position the CURSOR
in a particular field after the screen is displayed.
What are the matchcodes and how do
they affect the screen field? Where are they specified in the online program?
Ans
:- In the Properties window of
the Field.
What
is the effect of an ON CHAIN-REQUEST command in your flow logic?
Ans :-
When value of any of the fields between CHAIN…..ENDCHAIN is attempted to
change.
What
commands are used to change database table entries?
Ans :-
How
can you check if the changes to the database were successful?
Ans :-
What
is the difference between the Long form and the short form of making database
changes?
Ans :-
Long Form:
Update MARA and set brgew = 0 where matnr = ‘MAT!’.
This is a standard
Oracle Statement to modify the entry in the Database.
Short Form:
MARA-MATNR = ‘MAT1’. MARA-BRGEW = 0.
Modify MARA.
This
is an SAP defined statement to modify the table.
It
is more secure and consistent.
What
is the advantages using the SAP long form over the short form of database
changes?
Ans :-
May be Fast Effect.
Can
‘where’ clause be used when updating database entries?
Ans :-
Yes.
Describe
array operations and their advantages?
Ans :-
What
is logical unit of work? How is it defined?
Ans :-
Logical Unit of work is a block of memory area where database contents
are stored and manipulated.
For every SAP application LUW is automatically
created for database communication. Besides this we have SAP LUW s also there.
What
function is performed by the commit work command?
Ans :- When you perform Commit , all
the LUW s work will be reflected to the database.
Why is
it so important for a programmer to check the lock entries?
Ans :- To find out if record is locked
and also to maintain data integrity.
How
can you find a lock entry for a database table?
Ans :- The function module ‘ENQUEUE
<lock object>’ checks whether a lock was triggered for the same object.
Otherwise an exception FOREIGN_LOCK is carried out. If the object is not locked
the function module sets the lock.
What
steps are necessary to set a lock on a record within a database table?
Ans :-
Execute CALL FUNCTION statement
CALL FUNCTION “ENQUEUE <lock
object’>
EXPORTING…
EXCEPTIONS…
CASE SY-SUBRC.
.
.
ENDCASE.
How do
you unlock the entry? Why is this necessary?
Ans :-
Execute the CALL FUNCTION statement
CALL FUNCTION ‘DEQUEUE <lock
object>’
EXPORTING…
It is important to unlock the entry so
others can update it.
What is the difference between ‘CALL SCREEN # # # ‘ and ‘SET SCREEN ### ’
… LEAVE
SCREEN?
Ans :-
SET SCRREN statement sets or overwrites
the follow-up screen.
LEAVE SCREEN executes the screen number
currently in the follow-screen field
CALL SCREEN interrupts the processing
of the current screen to call a new screen or a chain of screens, processing of
the current screen is resumed directly after the call.
After a CALL SCREEN command where
does the processing return after the screen has been executed?
Ans :- It returns the processing to the
calling screen.
Which
is the more similar to a call with return, the SET SCREEN or the CALL SCREEN?
Ans :- The CALL SCREEN command.
What
function is performed by the SET SCREEN 0 command?
Ans :- Returns to the original screen.
What
are the main differences between the repot status and screen status?
Ans :-
Where
must you place the SET PF-STATUS command in your online program?
Ans :- Place it in the PBO module of
the screen.
Why is
it good idea to clear OK_CODE field after deciding which action to take?
Ans :- You need to clear the OK code to
avoid sending a screen that already has a function code.
How do
you specify that a function is an exit type command?
Ans :- By specifying function type E
for the pushbuttons or menu options in the screen painter or menu painter.
What
is the purpose of the ‘AT EXIT-COMMAND’?
Ans :- Usually there are many ways to
leave a screen (back,exit,cancel) .This command will perform termination logic
for all functions of type E.
What
are screen groups?
Ans :- A group of screen fields such as
radio buttons or checkboxes.
What
is the correct syntax for dynamically modifying a large number of screen
fields?
Ans :-
MODULE MODIFY _SCREEN_OUTPUT
.
.
.
LOOP AT SCREEN
IF SCREEN –GROUP = 3D ‘GR1’
SCREEN-INPUT=3D 1
ENDIF.
IF SCREEN-NAME = 3D ‘TAB-FIELD’
SCREEN-ACTIVE=3D 0.
ENDIF.
MODIFY SCREEN.
ENDLOOP.
What
is the name of the internal table that stores the screen information?
Ans :- SCREEN.
What
is the purpose of the MODIFY command when performing the dynamic screen
modifications?
Ans :- after you activate or deactivate
the field attributes by assigning them 1 or 0, you save the modifications via
MODIFY SCREEN command.
Direction
for the use of check box and radio buttons in screen painter?
Ans :-
Creating Radio Button and Check Boxes
on the screen
Go to the full screen editor.
Place an underscore at the point where
you want to place the field.
Define the name of the field using
<Field Attributes>
Place the cursor on the field and press
<Graphic element>
Then press <Radio Buttons> or
<Check boxes> depending on which graphic element you want
Then you group related check boxes and
radio boxes.
What
are user Exits and transactions?
Ans :-
Generally, user exits are the forms defined within SAP standard code
(usually starting with user exit). These predefined areas in the code allow
programmers to insert custom defined code into the standard processing of a
transaction (e.g. allow resorting of the batch sequence in VA01 batch
processing). There are many specific examples if you are interested, but
usually user exits are searched for when a specific use is being analyzed.
What
happens if you enter 0 in NEXT Screen attribute?
Ans :- It does not go to any other
screen and it moves back one level. However you can control this in run-time
using SET SCREEN command.
How to modify the attributes of screen fields at run time ?.
We loop through the fields of the
screen. When you find the name of a screen field you want to
modify, set attributes for the field
and use MODIFY SCREEN to update the
attribtes.
You can find the attributes in the
internal table SCREEN.
This loop makes some of the screen
fields invisible ind a selection screen:
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
IF screen-name = 'P_VERAB' OR
screen-name = 'P_STXT1' OR
screen-name = 'P_STXT2' OR
screen-name = '%_P_VERAB_%_APP_%-TEXT'
OR
screen-name = '%_P_STXT1_%_APP_%-TEXT'
OR
screen-name =
'%_P_STXT2_%_APP_%-TEXT'.
screen-active = '0'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
How to leave dynpro allthough required entry not made ?
In the menu painter - Function
attributes for the button, set
Functional
type to E (Exit command)
PROCESS AFTER INPUT.
Call module that leaves screen before
User_Command_xxxx is executed
MODULE ReturnExit AT EXIT-COMMAND.
MODULE user_command_1000.
MODULE returnexit.
CASE sy-ucomm.
WHEN 'CANC'. "Or whatever you want to call it
Clear w_screen.
LEAVE TO SCREEN 0.
ENDCASE.
ENDMODULE.
Calling a report from a dynpro
There are to ways to do this:
Use leave to list-processing if
you want to do it in your module pool.
You will not be able to use
selection-screens.
Use the submit statement to start a
seperate report from your dynpro.
Anyone who have idea on how to know the selected value
on run-time?
How can get the table control attribute
selected value ? I try to read the
value in debuger which is #
(table_control-cols-selected). There is
no difference on the other row which is
not selected.
The tc-cols-selected is for column
selection only. For row selection you
have two scenarios
turn on the SelColumn attribute in
screen painter, give it a name and declare an abap variable with the same name
type C length 1. In your PAI loop at
itab, when the selected row is processed the abap variable will = 'X'. At this point you can save the record or key.
you can determine which row the cursor
is on in your table control as follows:
DATA: LINE_SEL LIKE SY-STEPL,
TABIX LIKE SY-TABIX
GET CURSOR LINE LINE_SEL.
TABIX = <table control>-TOP_LINE
+ LINE_SEL - 1.
TABIX
is now the index of the selected row.
F4 Help - Calling it from a
program and limiting values ?
To avoid the standard F4 help to be
show, insert the event PROCESS ON-VALUE-REQUEST in the program and add a field statement for the
field that should trigger the F4 help. In the mdoule called from
PROCESS ON-VALUE-REQUEST, call function
module
F4IF_FIELD_VALUE_REQUEST.
Example 1 - Dynpro
process before output.
.....
process after input.
.....
PROCESS ON VALUE-REQUEST.
FIELD it_zsd00003-prctr MODULE
f4_help_for_pctr.
MODULE f4_help_for_pctr INPUT.
NOTE:
Tabname/fieldname is the name of the
table and field
for which F4 should be shown.
*
Dynprog/Dynpnr/Dynprofield are the
names of the Progran/Dynpro/Field
in which the f4 value should be
returned.
*
Value: The value of the Dynpro fuield
when calling the F4 help.
You can limit the values shown, by
inseting a value in this parameter
e.g
'50*' to show only values beginning with 50
CALL FUNCTION
'F4IF_FIELD_VALUE_REQUEST'
EXPORTING
tabname = 'ZSD00003'
fieldname = 'PRCTR'
*
SEARCHHELP = ' '
*
SHLPPARAM = ' '
dynpprog = 'ZSD00002_BRUGERKONV_LISTE'
dynpnr = '0100'
dynprofield = 'IT_ZSD00003-PRCTR'
*
STEPL = 0
value = '50*'
*
MULTIPLE_CHOICE = ' '
*
DISPLAY = ' '
*
SUPPRESS_RECORDLIST = ' '
*
CALLBACK_PROGRAM = ' '
*
CALLBACK_FORM = ' '
TABLES
*
RETURN_TAB =
EXCEPTIONS
*
FIELD_NOT_FOUND = 1
*
NO_HELP_FOR_FIELD = 2
*
INCONSISTENT_HELP = 3
*
NO_VALUES_FOUND = 4
*
OTHERS = 5
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY
NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3
SY-MSGV4.
ENDIF.
ENDMODULE. " F4_help_for_pctr INPUT.
What you can do with a transaction variant
Insert default values into fields
hange the ready for input status for
fields
Hide various screen elements, menu
functions or entire screens
Adjust table control settings
Note: Transaction variants can only be
used with dialog transactions.
How to create a transaction variant
Transaction variants are created with
transaction: SHD0
In the field Transaction on SHD0 enter
the transactioncode for the screen you want tpo modify (E.g. VA03) . In the
field Variant on SHD0 enter the name you
want to give the transaction variant (E.g. ZVA03)
Press Create
Now the screen for the transaction is
shown and you can enter default values in the fields of the screen
Press Enter. Now a screen that enbles
you to make further customizing (Hide, Output only, Invisible, Mandatory) if
the screen fields is shown.
After you have finished customizing the
screen press Enter to go to the next screen or ave and exit to save the
Transaction variant
How to find user exits
Display the program where you are
searching for and exit and search for CALL CUSTOMER-EXIT
If you know the Exit name, go to
transaction CMOD. Choose menu Utillities->SAP Enhancements. Enter the exit
name and press enter.
You will now come to a screen that
shows the function module exits for the exit.
Using Project management of SAP
Enhancements
We want to create a project to enahance
trasnaction VA01
Go to transaction CMOD
Create a project called ZVA01
Choose the Enhancement assign radio
button and press the Change button
In the first column enter V45A0002
Predefine sold-to party in sales document . Note that an enhancement can only
be used i 1 project. If the enhancement is allready in use, and error message
will be displayed
Press Save
Press Components. You can now see that
enhancement uses user exit EXIT_SAPMV45A_002. Double click on the exit.
Now the function module is displayed.
Double click on include ZXVVAU04 in the function module
Insert the following code into the
include: E_KUNNR = '2155'.
Activate the include program. Go back
to CMOD and activate the project.
Goto transaction VA01 and craete a
salesorder. Note that Sold-to-party now automatically is "2155"
To run the transaction varian, you must
create a new Transaction code in SE93
that referes to the Transaction variant. Choose Transaction with variant
as Start object.
Note: The transaction variant can also
be called from a program that imcludes a call to function module
RS_HDSYS_CALL_TC_VARIANT
Can a field exit on a screen access the values entered by a
user on that screen for the screen fields other than the field for which
the exit has been applied. if yes then
how?
Maybe this function helps you:
DYNP_VALUES_READ. It reads the dynpro-values before processing PAI.
What are events in dialogs?
Process Before Output and
Process After Input.
Process On Value
Process On Help
Module output.
Module input.
What are significance of PBO and PAI?
Before display the screen PBO is fired.
This is for screen display
After giving the user input PAI is
fired. This is for input validation
Where you will validate entries in the fields?
Entries can be validated in PAI.
You can validate in Field Exits also.
What is use of Chain and EndChain?
For calling a particular PAI module if
any one of fields in a group meets a condition, we use to combine all such
fields .
How to change screen dynamically?
By modifying the screen attributes.
How to capture changes on the screen fields? Same in case of
table control?
We can capture changes on the screen
fields using module on input and on request.
If you are validating contents of field but user want to exit from the
transaction without validating contents; How to handle this scenario?
By at exit-command we can do.
How to pass field values from one screen to other screen?
By using set and get parameter id statements.
What is the difference in using COMMIT WORK within a called
transaction and within a called dialog module in an existing module.
Ans.:
Transaction: It will create a new LUW and so you have to say COMMIT
WORK in a called transaction for getting any of the update statements to be
fruitful inside the called transaction.
Dialog module: Since no new LUW is created, COMMIT
WORK is not necessary.
Which 2 transaction codes are used to
manage enhancements?
Ans:
SMOD and CMOD
Which enhancement is local, which is
global:
Field Exits
Screen Exits
Program Exits
Menu Exits
Where can you create an enhancement to show your own F1 Help
on a field?
Ans: in POH
What enhancements can be created using Cmod?
Ans: Customer Enhancements, i.e., Field
Exits.
What is the code for showing a list produced in a dialog
program?
Ans: Leave screen.
Leave to List-processing.
Or
Submit <program name>.
When is field Name1 transported to the program in this
coding:
Process After Input.
Module ABC.
Field Name1 Module DEF.
What is the effect of SUPPRESS DIALOG in PBO?
Field Name2 Module GHI.
If an error message was raised in Module GHI, which fields
would be ready for input?
Ans: The fields that are placed in
CHAIN………ENDCHAIN.
In which 2 places could you set the GUI status and title bar
for a modal dialog box?
What does CHAIN ....END CHAIN do?
Sometimes you want to check several
fields as a group. To do this, include the fields in a FIELD statement, and
enclose everything in a CHAIN-ENDCHAIN block.
Example
**** Screen flow logic: ****
CHAIN.
FIELD:
SPFLI-CARRID, SPFLI-CONNID.
MODULE CHECK_FLIGHT.
ENDCHAIN.
When an error is found inside a chain,
the screen is re-displayed, and all fields found anywhere in the chain are
input-enabled. All non-chain fields remain disabled.
How can you test flow logic?
Check function checks the
syntax,data-consisteny and screen layout of the screen.
To test the syntax, from the menu path
choose screen---->check-------> syntax.
To test the data consistency, from the
menu path choose screen---->check------> consistency.
To check the layout,from ythe menu path
choose screen----->check----->layout.
What happens if you choose hold data option in screen
atributes?
To retain data entered by a user. The
system automatically displays this data if the user returns to this screen.
What happens if you enter 0 in NEXT screen attribute?
In ABAP/4 each stackable sequence of
screens is a "call mode". This is important because of the way you
return from a given current sequence. To terminate a call mode and return to a
suspended chain, set the "next screen" to 0 and leave to it:When you
return to the suspended chain, execution resumes with the statement directly
following the original CALL SCREEN statement.The original sequence of screens
in a transaction is itself a calling mode. The original sequence of screens in
a transaction is itself a calling mode. If you LEAVE TO SCREEN 0 in this
sequence (that is, without having stacked any additional call modes), you
return from the transaction altogether.
How many menu titles you can have in a main menu?
You can have six menus in a menu bar.In
addition to this system provides two more menus ie system and help. You can
have only one menu bar for a status.
You can maintain 15 entries in a menu
and upto three levels.
What is the difference between the "change
on-input" and "Change on request" in the PAI of a screen?
·
ON INPUT
The ABAP/4 module is called only if the
field contains a value other than its initial value. This initial value is
determined by the field's data type: blanks for character fields, zeroes for
numerics.
·
ON REQUEST
The ABAP/4 module is called only if the
user has entered a value in the field value since the last screen display. The
value counts as changed even if the user simply types in the value that was
already there.
No comments:
Post a Comment