You are on page 1of 123

AB1011-Module pool Programmingv1.

India SAP CoE, Slide 1

Module pool programming


Introduction

Syntax Description

5
India SAP CoE, Slide 2

Demonstration

Exercises
HelpMe

Module Pool program.


Module Pool Program (also called Online programs , dialog programs,
or transactions) do not produces lists. These programs are a collection
of screens, their Flow Logic, and the code within the main ABAP
program.

A dialog program offers:


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.

India SAP CoE, Slide 3

Purpose
For performing any kind of task in SAP R/3 system, a transaction is used.
SAP provides a standard set of transactions to manipulate data in the
system. But sometimes, the need to create a customer specific transaction
arise due to following reasons :
Standard SAP may not support that task.
A particular transaction needs to be customized to suit the customer
requirements .
A transaction (also called module pool programs, dialog programs) is
defined as a collection of screens (the actual, physical image that the users
sees), their Flow Logic (code behind the screens ), and the code within the
main ABAP program.

India SAP CoE, Slide 4

Creating an Online Program


Online program name
must begin with either a
Y or Z.

Program Attributes
With TOP INCL.
should be checked.

Title
Type M

Go back to Repository
Browser, not source
code.

India SAP CoE, Slide 5

Application

Module Pool Program Components


Top Include

ABAP

PBO Modules

PAI Modules
Subroutines
India SAP CoE, Slide 6

Module Pool Program

An online program consists not only of the screens and their Flow Logic,
but also ABAP program components: Global data, PBO modules, PAI
modules, and subroutines.

Global data: It is declared in the Top Include program.

PBO and PAI modules: It contain the main processing logic of online
program and are called from within the Flow Logic of the screens.

The subroutines (if necessary) are in a separate include program.

India SAP CoE, Slide 7

Executing an Online Program

F8
Transaction Code

Transaction
Text

Program Name

Initial Screen

required

required

required

India SAP CoE, Slide 8

Module pool programming


Introduction

Syntax description

5
India SAP CoE, Slide 9

Demonstration

Exercises
HelpMe

Tools used:
When creating an module pool program, you will use many tools within
the ABAP Development Workbench: Screen Painter, ABAP Editor,
Menu Painter, ABAP Dictionary, and Repository Browser.
ABAP Editor (SE38) To maintain main ABAP program. Program
contains data declarations and modules.
IBM Global Services

Developing Online Programs


ABAP Editor

Screen Painter
Repository Browser

Menu Painter
ABAP Dictionary

Slide 2

India SAP CoE, Slide 10

Online Programming | 2.01

| August -2003

Copyright IBM Corporation 2003

Tools used:
Screen Painter(SE51) used to maintain components of screen.
Menu Painter(SE41) Used to design GUI.
Maintain Transaction(SE93) To create transaction code for program.
Object Navigator (Repository Browser)(SE80) - You should always use
the object navigator for online programs because you will be able to see the
hierarchy. From this hierarchy list, you will be able to branch to the Screen
Painter, ABAP Editor, Menu Painter, and ABAP Dictionary.
You should always use the Repository Browser to create online programs
because the system will automatically maintain an online programs subobjects and you will be able to see the hierarchy list of these sub-objects.
From this hierarchy list, you will be able to branch to the Screen Painter,
ABAP Editor, Menu Painter, and ABAP Dictionary.

India SAP CoE, Slide 11

Creating a Program
Create a program using transaction SE38. Program name as Z_MODULE_TRAINING.
Program type should be Module Pool. Save and activate the program.

Use object navigator(SE80) to further develop the object.

India SAP CoE, Slide 12

Program Structure

Module pool program when viewed from SE80 transaction will have
structure as below,

India SAP CoE, Slide 13

Assigning transaction code

Dialog program is executed using transaction code. We can not execute


this like normal report using execute or pressing F8 button.

Transaction is created using SE93 transaction or from object browser by


right clicking on transaction, click on create. Give name and description
and select the radio button Program and screen (dialog transaction)

India SAP CoE, Slide 14

Use of Screen

Screen is a interface between user and SAP.

Using screen user can provide input to program and in turn program will
display result on screen.

Screen is made up of screen elements such as text box, input/output


field, check box, radio button etc.

One of the strength is that screen elements are combined with the
ABAP dictionary to allow check the consistency of the data that user
has entered.

India SAP CoE, Slide 15

Screen Painter

To start the Screen Painter, choose the corresponding pushbutton on the


initial screen of the ABAP Workbench or enter Transaction SE51.

Best practice is to go to transaction SE80, enter program name and you


can perform one of the below,
1. Create new screens.
2. Test an existing screen.
3. Create new components for an existing screen.

Screen is always created for an existing program.

India SAP CoE, Slide 16

Overview of Screen Painter


Screen
Attributes

Screen Painter

Screen
Layout

Flow Logic

India SAP CoE, Slide 17

Field
Attributes

Developing Screen

From Object navigator (SE80) we can create the screen as shown,


Click on Screen, right click and select create option.
Now enter screen number.

India SAP CoE, Slide 18

Developing Screen
Screen numbers can be up to 4 characters long, all of which must be
digits.
The number 1000 is reserved for table screens and report selection
screen.
Screen numbers from 9000 are reserved for customer-specific screens.
The use of screen numbers is namespace-dependent.
For screens in programs in the SAP namespace, numbers less than 9000
are reserved for SAP screens, numbers between 9000 and 9500 are
reserved for SAP partners, and numbers greater than 9500 are for
customers.

India SAP CoE, Slide 19

Developing Screen

For screens in programs in the Customize namespace, any four digit


number can be used as screen number except 1000 as mentioned above.

Usual practice is to have screen numbers for customize module pool


program, starting with 100 then continue as 200, 300 etc.

Enter screen number and click on create.

India SAP CoE, Slide 20

Developing Screen
Enter description and save.
Check the screen and activate it.

India SAP CoE, Slide 21

Screen Attributes

Short description Describes screen purpose

Original language Default logon language

Package Identifies the package with which screen is saved

Last changed on/by Date & time screen is last changed

Last generation Date & time screen is last generated.

India SAP CoE, Slide 22

Screen Attributes
Screen Type
Normal Default setting

Subscreen To indicate the screen as a subscreen

Modal dialog box used to display details in a dialog box. Used for data
input, confirmation/error/help messages.

Selection screen Identifies selection screen. The system sets this


attribute automatically.

Settings
Hold data On checking this, system can hold entries made on the
screen at runtime. System automatically displays this data if the user calls
the particular screen again.

India SAP CoE, Slide 23

Screen Attributes
Settings
Switch off runtime compress On setting this option, the screen is not
compressed at runtime.

Template non executable This attribute is primarily for internal use by


SAP.

Hold scroll position On setting the attribute, the scroll position is


retained when the user returns to the screen after processing another
screen.

Without application tool bar To suppress the display of the application


toolbar belonging to the current program status.

Other Attributes
Next Screen Next screen number to be displayed.

India SAP CoE, Slide 24

Screen Attributes
Other Attributes
Cursor position Identifies the screen element that contains the cursor when a
screen is first displayed. If you leave this field blank, the system uses the first
screen field that can accept input.

Screen group Specifies a four-character identifier of a group of associated


screens.

Line/Columns
Occupied Specifies the size of the screen area currently occupied with
screen elements
Maintained Size of the screen in rows/columns.

Context menu It will hold a routine name required to set up the context
menu in the program. This routine connects the screen (elements) from the
Screen Painter to the context menu of the program.

India SAP CoE, Slide 25

Screen Layout Mode


The Screen Painter has a layout editor that you use to design your screen
layout.
It works in two modes:

Graphical mode Drag and drop interface is used, similar to a drawing


tool.

Alphanumeric mode Keyboard and menus are used for designing.

Both modes offer the same functions but use different interfaces. Graphical
mode of screen designing is commonly used.

India SAP CoE, Slide 26

Screen Designing

We have learnt about creating a screen.


To start screen design, click on layout button on
Graphical Screen painter will start loading.

India SAP CoE, Slide 27

screen.

Components of Layout Editor

Element palette Used for creating screen elements. These can be drag
& dropped on screen.

Work Area Screen design is done in this area.

Element bar screen element attributes appear in this line. You can also
change these attributes in the corresponding field.

India SAP CoE, Slide 28

Radio Button

Creating Radio Button

Click on the Radio Button Icon and Click on the Screen.


Create at least two Radio Buttons
Name the Radio Buttons and Activate it.

India SAP CoE, Slide 29

Defining Radio Button Group


Assign Radio Buttons into one
Group.

Select the Radio Buttons


and Follow the steps.

India SAP CoE, Slide 30

Check Box
Creating Check Box

Name the Check box

Click on the Check Box Icon and Click on the Screen.


Name the Check Box and Activate it.
Special input/output fields that the user can either select (value X) or
deselect (value SPACE). Checkbox elements can be linked with
function codes.
India SAP CoE, Slide 31

Screen Components
Screen element properties can be seen in
detail by double clicking on the element.
Properties of an element can be set here,
such as variable length, F4 help,
input/output, mode of display etc.

Best practice is to define screen elements


by adopting the corresponding field from
the ABAP Dictionary. However, you can
also use field descriptions that you defined
in your program. To do this you must
generate the program first.

India SAP CoE, Slide 32

Screen Elements
Screen elements are,
Text field
Input/Output field
Check box
Radio button
Push button
Tab strip
Box
Sub screen area
Table control
Custom control
Status Icon

India SAP CoE, Slide 33

Each element will have unique name.


Function code will be assigned for push
buttons, tab titles in tab strip controls,
Input/output fields with the "Dropdown box"
attribute.
Each element will have its position on
screen, visible/definite length, mode of
display etc.

Screen Elements
Push Button
Can be placed on screen by drag
& drop from Element palette.

To set the properties, double


click on it.

Each screen element should


have unique name.

In addition to that push button


will have text and function code
assigned to it.

India SAP CoE, Slide 34

Screen Elements
Program Tab is Selected
Choose if want to Make the Field Mandatory
Tick If Input or Output Box
Entries in (*********)
Function Code for Push Buttons, check box, Radio Button
Dict. Tab is Selected

Assign Parameter ID to Input / Output Field

India SAP CoE, Slide 35

Screen Elements
Once screen is designed, it should be saved and checked for errors and activated.
Screen looks as below,

Input Box

India SAP CoE, Slide 36

Testing Screen

Screen can tested by executing F8 or click on button

India SAP CoE, Slide 37

Testing Screen

India SAP CoE, Slide 38

Flow Logic

Default flow logic for any screen is generated as shown below,

India SAP CoE, Slide 39

Menu Painter

In all programs GUI consists of a menu bar, a standard toolbar, an


application toolbar and title bar.
A programs GUI is created in Menu Painter.
To Create a Menu for a screen, in flow logic uncomment MODULE
STATUS_0400. in PBO event
PROCESS BEFORE OUTPUT.
MODULE STATUS_0400.
PROCESS AFTER INPUT.
* MODULE USER_COMMAND_0400.

India SAP CoE, Slide 40

Menu Painter

Now double click on STATUS_0400. A pop up window will appear. Click


on Yes.

Module will be created as below,


*&---------------------------------------------------------------------*
*&
Module STATUS_0400 OUTPUT
*&---------------------------------------------------------------------*
module STATUS_0400 output.
* SET PF-STATUS 'xxxxxxxx'.
* SET TITLEBAR 'xxx'.
endmodule.
" STATUS_0400 OUTPUT
India SAP CoE, Slide 41

Menu Painter

Uncomment the line SET PF-STATUS 'xxxxxxxx'. and replace


'xxxxxxxx with name STATUS_400.

Click on STATUS_400. Click Yes on the pop-up.

India SAP CoE, Slide 42

Menu Painter

Enter description and choose the status type as Normal screen which is
default.

India SAP CoE, Slide 43

Menu Painter

Click on
to expand the menu bar, application toolbar and function
keys.
System and Help are default in menu bar

India SAP CoE, Slide 44

Creating Menu bar

To create a user defined menu enter the name of the menu and double
click on it. We can define options for the menu here as below,

India SAP CoE, Slide 45

Creating Application Tool bar

Application tool bar can also be created in same way as menu bar.

India SAP CoE, Slide 46

Assigning function keys

We can assign code to existing function keys. Only keys for which code
is assigned will be active. We can see this when the menu painter is
executed.

India SAP CoE, Slide 47

Execution

We can test the menu painter by clicking on F8 key or execute button

Enter a screen number and title if you want to simulate a whole screen.
If you do not enter a screen number, the system simulates the status
using an empty test screen.

India SAP CoE, Slide 48

Execution

Output as below, New Menu is added, Find Item in Application tool bar,
Save, Back & Print button on standard tool bar enabled.

India SAP CoE, Slide 49

More on Flow Logic

Flow logic refers to code behind the screens. It is the code that processes
a screen.

Flow Logic commands are different than ABAP commands


(e.g., IF ENDIF is not valid in Flow Logic).

Dynamic Processor (DYNPRO) controls the flow logic and prepares


data to be displayed on the screen.

India SAP CoE, Slide 50

More on Flow Logic


Each screen has its own Flow Logic which is divided into four main events:
PROCESS BEFORE OUTPUT (PBO) - event processed before the
screen is displayed.
PROCESS AFTER INPUT (PAI) - event processed after the user has
invoked a function code (e.g., clicked on a pushbutton) or pressed the
Enter key.
Process on Value Request (POV) - Triggered when the user requests
Value help (F4)
Process on Value Request (POH) - Triggered when the user requests
field help (F1)
Each screen must be generated. If you make a change to any component of a
screen, the screen must be re-generated before execution.

India SAP CoE, Slide 51

Keywords supported

Keywords supported by flow logic events are as below,


Keyword

Function

MODULE

Calls a dialog module in an ABAP program

FIELD

Specifies the point at which the contents of a screen


field should be transported

ON

Used in conjunction with FIELD

VALUES

Used in conjunction with FIELD

CHAIN

Starts a processing chain

ENDCHAIN

Ends a processing chain

CALL

Calls a sub screen

LOOP

Starts processing a screen table

ENDLOOP

Stops processing a screen table

India SAP CoE, Slide 52

PBO Event
By default the module created in PBO event will be like
MODULE STATUS_<screen number>
Ex:-MODULE STATUS_0100.

This module will be processed before the screen is displayed.

By default this module will be commented. To use this uncomment and double
click on it to get the module created.
*&---------------------------------------------------------------------*
*&
Module STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
module STATUS_0100 output.
* SET PF-STATUS XXX'.
* SET TITLEBAR 'xxx'.
endmodule.
" STATUS_0100 OUTPUT

India SAP CoE, Slide 53

PBO Event

Menu bar and title bar can be set in this module.

Menu Bar To set menu bar uncomment the SET PF_STATUS and give a name to
status as ,
SET PF-STATUS 'STATUS100'.

Double click on STATUS100 and click yes to create GUI status.

India SAP CoE, Slide 54

PBO Event
Title Bar
To assign a title uncomment SET TITLEBAR and give a name as,
SET TITLEBAR 'TITLE100'.

Double click on TITLE100 and click yes to create GUI title. Enter title as
below and click on
, save and activate.

Once all the modules in the PBO block are processed, the system copies
the content of the fields in the ABAP work area to their corresponding
fields in the screen work area.

India SAP CoE, Slide 55

PAI Event
Default module in PAI event will be
MODULE USER_COMMAND_<screen number>.
Ex:- MODULE USER_COMMAND_0100.
This event is triggered once the user invokes function code or presses Enter
key on the screen.
System variable SY-UCOMM will hold the function code assigned to the
screen elements (push button, radio button, check box etc).
Within the above module code has to written to branch to group of code
based on the function code from SY-UCOMM.
The system copies the contents of the fields in the screen work area to their
corresponding fields in the ABAP work area once user clicks Enter key on
screen or any function code is invoked.

India SAP CoE, Slide 56

PAI Event- Sample Code


*&---------------------------------------------------------------------*
*&
Module USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
MODULE user_command_0100 INPUT.
CASE sy-ucomm.
WHEN 'ENT'.
SELECT ebeln ebelp bukrs
INTO CORRESPONDING FIELDS OF TABLE it_po
FROM ekpo
WHERE ebeln = po_no.
WHEN 'BCK'.
LEAVE TO SCREEN 0.
ENDCASE.
ENDMODULE.
" USER_COMMAND_0100 INPUT

India SAP CoE, Slide 57

Includes

To have structured way of code it is best practice to have includes.

There should be a TOP include which will have the data declarations.

Include for PBO modules, include for PAI modules.

Include for POV and POH modules if any.

India SAP CoE, Slide 58

Includes

To create include right click on object name, select Include from the
Create menu.

India SAP CoE, Slide 59

Includes

We can gave the include names as Z<Program>_TOP, Z<Program>_PBO,


Z<Program>_PAI. This will help to understand which modules are covered in each include.

Each include program will insert a include statement in the main program.

India SAP CoE, Slide 60

Message Statement

The MESSAGE statement is used to issue user messages.

Syntax is MESSAGE <tnnn> [WITH <var1> <var2> <var3> <var4>].


t Message type
nnn Message Number
WITH This is optional. It is needed if variables are used in a message.
A message can contain up to four variables, indicated with an
ampersand (&) in the message text.

We can code the Message statement in the PAI event.

India SAP CoE, Slide 61

Message Types
S: success

I: information

A: abend

X: exit
W: warning
E: error

The message type determines where the message is displayed and what
action the user can or must take on the current screen.
India SAP CoE, Slide 62

Messages
Success message is displayed at the bottom of the screen.
If you have next screen then the message will be displayed at the bottom
of the next screen.
Information message is displayed in a dialog box in same screen.
After pressing Enter key on dialog box user will be taken to next screen.
The user is not restricted from going on to the next screen.

India SAP CoE, Slide 63

Messages
Abend message is displayed on the current screen in a dialog box.
The user cannot make any changes to the values on the current screen.
After pressing the Enter key on the dialog box, transaction will be
terminated.
Exit message is identical to the ABEND message except that the transaction is
terminated with a short dump instead of the message in a dialog box.
WARNING message is displayed at the bottom of the current screen.
On pressing the Enter key on the current screen, the user will be taken to the
next screen even if no changes were made on the current screen . Thus user is
not restricted from going on to the next screen.

India SAP CoE, Slide 64

Messages

ERROR message is displayed at the bottom of the current screen.

The user must make changes to the values on the current screen.

On pressing the Enter key on the current screen, the user will be taken
to the next screen only if the appropriate corrections were made on the
current screen.

If no corrections were made, the error message would be redisplayed at


the bottom of the current screen.

When a warning or error message is triggered the system will stop at


current screen, prompting the user to make corrections. However the
input fields on the screen will be disabled for input.

India SAP CoE, Slide 65

Handling Error messages


There are 2 ways to issue error/warning messages.
Issue an error or warning message with the Flow Logic SELECT statement.
Define valid values for a screen field with the Flow Logic VALUES statement.
FIELD statement is a Flow Logic command, not an ABAP command.
The purpose of the FIELD statement is to keep a single screen field open for
input after an error or warning message is issued.
FIELD statement is used in PAI event.
Syntax is: FIELD <screen field> MODULE <module name>.

India SAP CoE, Slide 66

FIELD with select statement

Screen field can be validated against entry in database table.

To validate Purchase order number in PAI module,


PROCESS AFTER INPUT.
field PO_NO module PO_CHECK.
MODULE USER_COMMAND_0100.
Module PO_CHECK is as below,
module paycheck input.
data: lv_ebeln type ekko-ebeln.
select single ebeln into lv_ebeln
from ekko where ebeln = PO_NO.
if sy-subrc ne 0.
message e003(Z6).
endif.
endmodule.
" po_check INPUT

India SAP CoE, Slide 67

Error for invalid input

Error for Purchase order when invalid number is entered.

India SAP CoE, Slide 68

FIELD with Values Check

The Flow Logic VALUES statement defines a set of valid values for the
screen field specified in the FIELD statement.

If the value entered in this field is not in the valid set, an error message
will be issued by the system.
PROCESS AFTER INPUT.
field PO_NO values ('1', '100').

This indicates PO_NO can take input as either 1 or 100. For any other
value system will through error and the field will be open for input.

With VALUES parameter for field, we can get a list of possible values
by clicking on the drop-down arrow of the screen fields or pressing the
F4 key. It will list the values mentioned.

India SAP CoE, Slide 69

Values option

PO_NO with values 1 and 100.

India SAP CoE, Slide 70

CHAIN Statement
To keep multiple screen fields open for input after an error or warning
message is displayed, you need to use the CHAIN and ENDCHAIN
Flow Logic commands.

These statements group the FIELD statements and the MODULE


statements together.
The basic syntax of these statements is:
CHAIN.
FIELD: <f1>, <f 2>,...
MODULE <mod1>.
FIELD: <g1>, <g 2>,...
MODULE <mod2>.
...
ENDCHAIN.
If an error or warning message is issued in <module name>, all the screen
fields listed in the FIELD statements will be open for input.

India SAP CoE, Slide 71

Cursor Position
By default, the cursor will be positioned in the first field open for
input on a screen.
Cursor position can be changed in two ways
1. By setting the cursor position in PBO eventSyntax - SET CURSOR FIELD <field name>
Cursor will be placed on the screen field mentioned.
2. Cursor position in screen attributesMention the field name where cursor to be placed on screen
in cursor position attribute .

India SAP CoE, Slide 72

Screen commands
The LEAVE SCREEN statement ends the current screen and
calls the subsequent screen.
When the system encounters the SET SCREEN <screen #>
ABAP statement, it temporarily overrides the Next Screen
attribute with this <screen #> and the PAI processing
continues. After all PAI modules are executed, the system
goes to the PBO event of
<screen #>.

India SAP CoE, Slide 73

Screen commands
LEAVE TO SCREEN <screen #> ABAP statement,
terminates the screens PAI event and immediately goes to the
PBO of <screen #>.
The LEAVE TO SCREEN <screen #> statement performs the
functionality of two statements: SET SCREEN <screen #>
and LEAVE SCREEN.
CALL SCREEN <screen #> ABAP statement, temporarily
suspends the current screens PAI processing and immediately
goes to the PBO event of <screen #>. When control returns back
to the calling screen, its PAI processing will resume.

India SAP CoE, Slide 74

More on PAI modules


All modules listed in the PAI event get executed from top to bottom.
We can control the execution of the modules using additions to
MODULE.
Additions are,
ON INPUT
ON REQUEST
AT EXIT-COMMAND
AT CURSOR-SELECTION

India SAP CoE, Slide 75

ON INPUT
With the ON INPUT addition to the MODULE statement, a module will be executed
only if the specified fields value is not equal to the initial value appropriate to its data type

Ex- blanks for character fields and zeroes for numeric fields.

The basic syntax for this conditional execution Flow Logic command is:
FIELD <screen field> MODULE <module> ON INPUT.
The PAI <module> will be executed only if the value in <screen field> is not equal to its
initial value.
The ON INPUT addition must be used with a FIELD statement because this
condition depends on the value of a particular field.

India SAP CoE, Slide 76

ON REQUEST
With the ON REQUEST, a module will be executed only if a value has been entered in
the specified field since the screen was displayed.

The basic syntax for this conditional execution Flow Logic command is:
FIELD <screen field> MODULE <module> ON REQUEST.
The PAI <module> will be executed only if a value was entered in <screen field>
since the screen was displayed.
The ON REQUEST addition must be used with a FIELD statement because this
condition depends on the value of a particular field.

If you want to conditionally execute a module that is coded within a


CHAIN ENDCHAIN, you must use ON CHAIN-REQUEST.

India SAP CoE, Slide 77

AT EXIT-COMMAND
With the AT EXIT-COMMAND addition to the MODULE
statement, a module will be executed only if the user invokes a
function code with the E function type.

Function type assigning is explained in slide 73.

The basic syntax for this conditional execution Flow Logic


command is:
MODULE <module> AT EXIT-COMMAND.

India SAP CoE, Slide 78

AT EXIT-COMMAND
The PAI <module> will be executed only if the user invokes a
FUNCTION type E.
The AT EXIT-COMMAND addition cannot be used with a
FIELD statement.

If the user invokes a type E function code, a module with the AT


EXIT-COMMAND addition will be executed immediately.

It will be executed even before the automatic field checks.

India SAP CoE, Slide 79

Assigning Function type


Function type can be
assigned for screen
buttons and for menu
painter keys.

In menu painter, click


on the required key. In
the pop-up window
select function type as
E from drop down.

India SAP CoE, Slide 80

AT CURSOR-SELECTION

You can specify that a module should only be called if the cursor is
positioned on a particular screen element.

Syntax - MODULE <mod> AT CURSOR-SELECTION.

The module <mod> is called whenever the function code of the user
action is CS with function type S.

The module is called in the sequence in which it occurs in the flow logic.
It does not bypass the automatic input checks.

India SAP CoE, Slide 81

AT CURSOR-SELECTION

You can also combine this MODULE statement with the FIELD
statement:
FIELD <f> MODULE <mod> AT CURSOR-SELECTION.
For more than one field:
CHAIN.
FIELD: <f1>, <f 2>,...
MODULE <mod> AT CURSOR-SELECTION.
ENDCHAIN.

India SAP CoE, Slide 82

Modifying Screen Fields


All fields of the current screen are stored in the system table SCREEN with
their attributes.
The LOOP AT SCREEN statement places this information in the header
line of the system table.
We can modify the attributes of the fields and update the screen table using
MODIFY SCREEN.
Sample code:
loop at screen.
if screen-name = 'GV_MATNR'.
screen-input = 1.
modify screen.
endif.
endloop.

India SAP CoE, Slide 83

Modifying Screen Fields


You can dynamically modify the following attributes of a field:
ACTIVE
REQUIRED
INPUT
OUTPUT
INTENSIFIED
INVISIBLE
LENGTH
DISPLAY 3D
VALUE HELP
A field attribute is turned on with a value of 1. It is turned off with a value
of 0.
The statements LOOP AT SCREEN ... ENDLOOP define a loop around a
statement block.

India SAP CoE, Slide 84

Logical Unit of Work (LUW)


Screen
1

Screen
2

Screen
3

SELECT A
SELECT B

UPDATE A

DELETE B

Database
Transaction

Database
Transaction

Database
Transaction

LUW refers to a collection of actions performed at the database level as a complete


unit.
In this ex: LUW is selecting A and B from the database, updating A, and deleting B.
This would be the desired LUW because we would want to rollback all changes if any
of these actions failed.

India SAP CoE, Slide 85

LUW

Changes will be saved (commit work) in database at the end of third


screen.

An SAP LUW will end with either the COMMIT WORK or


ROLLBACK WORK statement.

A logical unit consisting of dialog steps, whose changes are written to


the database in a single database LUW is called an SAP LUW.

If an SAP LUW contains database changes, you should either write all
of them or none at all to the database.

Include a database commit when the transaction has ended successfully,


and a database rollback in case the program detects an error.

India SAP CoE, Slide 86

LUW

Since database changes from a database LUW cannot be reversed in a


subsequent database LUW, you must make all of the database changes for
the SAP LUW in a single database LUW.

In our example, we need to perform UPDATE A and DELETE B at the


end of third screen.

India SAP CoE, Slide 87

SAP Locks
R/3 system contain lock mechanism for SAP LUWs called SAP Locks.
Lock object is created in ABAP Dictionary.
A lock object definition contains the database tables and their key fields
on the basis of which you want to set a lock.
System automatically generates two function modules with the names
ENQUEUE_<lock object name> and DEQUEUE_<lock object name>
when a lock is generated.
Locks can be set and released on corresponding database table by calling
these function modules in program.

India SAP CoE, Slide 88

SAP Locks
Consider below example,

When user clicks on change, the program locks the relevant database object by calling the corresponding ENQUEUE
function.
You can release the lock by calling DEQUEUE function when user clicks on SAVE or when user clicks on BACK button.

India SAP CoE, Slide 89

Table Control
A table control is an area on the screen where the system displays data in a
tabular form. It is processed using a loop.

To create a table control, drag & drop table control from screen elements on
screen painter. Give a name to table control.
Select the table definition and fields clicking on Dictionary/Program fields
object button.
Each table control need to be declared in declaration part of the program as,
CONTROLS <ctrl> TYPE TABLEVIEW USING SCREEN <scr>.
where <ctrl> is the name of the table control on a screen.

India SAP CoE, Slide 90

Table Control

You must code a LOOP statement in both the PBO and PAI events for each
table in your screen.

This is because the LOOP statement causes the screen fields to be copied
back and forth between the ABAP program and the screen field.

For this reason, at least an empty LOOP...ENDLOOP must be there.

India SAP CoE, Slide 91

Processing Table Control

Screen

Database

le
Tab
l
a
rn
Inte

India SAP CoE, Slide 92

er
ead
h
h
wit

Table Control
Sample code PROCESS BEFORE OUTPUT.
MODULE STATUS_0100.
LOOP AT it_po INTO wa_ekpo WITH CONTROL tab2 CURSOR
tab2-current_line.
ENDLOOP.
PROCESS AFTER INPUT.
field po_no module po_check.
module exit_mod at exit-command.
MODULE USER_COMMAND_0100.
loop at it_po.
endloop.

India SAP CoE, Slide 93

Subscreen
A subscreen is a screen that is displayed in a specified area of the main screen.

A subscreen cannot be displayed by itself.

The subscreen displayed in the predefined area will depend on the users
request on the main screen.
Subscreen is used to vary the fields displayed on a screen. As an example:
The main screen contains the customer number, name, and a predefined
area for a subscreen.
One subscreen contains customer address information.
Another subscreen contains customer bank information.

India SAP CoE, Slide 94

Creating Subscreen

In main screen,
In the screen layout, place the screen element subscreen on layout.
You can set the length and width of the subscreen by double clicking
on subscreen.
Provide unique name to subscreen, save and activate it.

Subscreen

India SAP CoE, Slide 95

Creating Subscreen

Create a subscreen

Create a screen as given in earlier slides.

Screen type should be subscreen.

Specify the screen length and height as in main screen.

Save the subscreen and go to screen layout. Here subscreen are will
be displayed.

India SAP CoE, Slide 96

Creating Subscreen

User can design in the subscreen area as below,

India SAP CoE, Slide 97

Call subscreen in PBO

To include a subscreen in a predefined area on the main screen, use the


CALL SUBSCREEN statement in the main screens PBO event.

syntax :CALL SUBSCREEN <area> INCLUDING <program> <subscreen


#>.
<area> : name of the subscreen area defined on the main screen. This
subscreen area will be the location of the subscreen. This <area> cannot
be enclosed in single quotes.
<program> : name of the program where the subscreen exists.

India SAP CoE, Slide 98

Call subscreen in PBO


<subscreen #> : number of the subscreen to display in the subscreen area.
The <program> and <subscreen #> can be literals (i.e. enclosed in single
quotes) or variables.

When the CALL SUBSCREEN statement is encountered in the main


screens PBO event, the system executes the PBO event of the subscreen. Then,
the system returns to finish the PBO event of the main screen.

India SAP CoE, Slide 99

Call subscreen in PAI

If the subscreen contains any PAI code, use the CALL SUBSCREEN
statement in the PAI event of the main screen.

Syntax : CALL SUBSCREEN <area>.


The <area> is the name of the subscreen area defined on the main
screen. This <area> cannot be enclosed in single quotes.

The CALL SUBSCREEN statement must be used to invoke the PAI


event of the subscreen.
- When the CALL SUBSCREEN statement is
encountered in the main screens PAI event, the
system
executes the PAI event of the subscreen.

India SAP CoE, Slide 100

Call subscreen in PAI


Then, the system returns to finish the PAI event of the main screen.
Without this CALL SUBSCREEN statement in the PAI event of the
main screen, the PAI event of the subscreen cannot be processed by
the system.
If the subscreen does not contain any PAI code, this CALL SUBSCREEN
statement is not needed in the PAI event of the main screen.
In both the PBO and PAI of the main screen, the CALL SUBSCREEN
statement cannot be used inside a LOOP or a CHAIN.

India SAP CoE, Slide 101

Subscreen Restrictions

The following ABAP/4 statements cannot be used in a subscreens PBO


or PAI modules (instead, they must be used in the main screen):

SET PF-STATUS
SET TITLEBAR
SET SCREEN
LEAVE TO SCREEN
CALL SCREEN

Note: These ABAP/4 statements in a subscreen will pass a syntax


check; however, they will result in runtime errors.

India SAP CoE, Slide 102

Tab Strip Controls


A tab strip control is a screen object
consisting of two or more pages.

Each tab page consists of a tab title and a page area.


If the area occupied by the tab strip control is too narrow to display all of
the tab titles, a scrollbar appears, allowing you to reach the titles that are not
displayed.
Tab strips allow users to access multiple sub screens on one normal screen.
This allows for a more intuitive user interface by logically separating the
information presented to the user into different headings.
The user can sort through the information by clicking on a corresponding
tab

India SAP CoE, Slide 103

Tab Strip Control components


TabTtitle

Tab Page

Tab Title Row

Scrolling

India SAP CoE, Slide 104

Tab Strip Control components

Tab Title Title of the component to which user can


navigate. They are push buttons.

Tab title row - All tab titles will appear in a row.

Tab Page - A tab page contains a collection of fields that logically


belong together. Tab pages are implemented using subscreens.

For designing and using tab strip controls, see Transaction BIBS .

India SAP CoE, Slide 105

Tab Strip Controls


When you create a tab strip control, you
must: .
1. Define the tab area on a screen and the
tab titles.
2. Assign a subscreen area to each tab title.
3. Program the screen flow logic.
4. Program the ABAP processing logic.
Tab strip controls allow you to place a series of screens belonging to an
application on a single screen, and to navigate between them easily.
From a technical point of view, a tab page is a sunscreen with a pushbutton
assigned to it, which is displayed as the tab title.

India SAP CoE, Slide 106

Tab Strip Controls


Assigning a Subscreen Area to a Tab Title
1. Paging in the SAPgui
PROCESS BEFORE OUTPUT.
...
CALL SUBSCREEN: area1 INCLUDING [prog1] dynp1,
area2 INCLUDING [prog2] dynp2,
area3 INCLUDING [prog3] dynp3,

...
PROCESS AFTER INPUT.

...
CALL SUBSCREEN: area1,
area2,
area3,

2. Paging on the application server


PROCESS BEFORE OUTPUT.
...
CALL SUBSCREEN area INCLUDING [prog] dynp.

...
PROCESS AFTER INPUT.

...
CALL SUBSCREEN area.

India SAP CoE, Slide 107

Tab Strip Controls


Handling in the ABAP Program
Create a control for each control in the declaration part of your
program using the following statement:

CONTROLS ctrl TYPE TABSTRIP.


PROCESS BEFORE OUTPUT.
...

Assign the function code of the corresponding tab title to the


component Activetab:
ctrl-Activetab = fcode.

PROCESS AFTER INPUT

Activetab contains the function code of the last active tab title on the
screen.
India SAP CoE, Slide 108

Tab Strip Controls


Programming the Flow Logic
The flow logic is restricted to that necessary to include the appropriate
subscreen screens in the right subscreen areas.

Local Scrolling at the Front-end


Include subscreen screens in all of your subscreen areas in the
tab strip control.

PROCESS BEFORE OUTPUT.


CALL SUBSCREEN: <subscreen_area1> INCLUDING [<progname 1>] <subscreen_scrn 1>,
<subscreen_area2> INCLUDING [<progname 2>] <subscreen_scrn 2>,
<subscreen_area3> INCLUDING [<progname 3>] <subscreen_scrn 3>,

PROCESS AFTER INPUT


CALL SUBSCREEN: <subscreen_area1>,
<subscreen_area2>,
<subscreen_area3>,

India SAP CoE, Slide 109

Tab Strip Controls


Programming the Flow Logic
The flow logic is restricted to that necessary to include the appropriate
subscreen screens in the right subscreen areas.

Scrolling at the Application Server


Include one subscreen at a time in a single subscreen area.

PROCESS BEFORE OUTPUT.


CALL SUBSCREEN < subscreen_area> INCLUDING [<progname>] <subscreen_scrn>.

PROCESS AFTER INPUT


CALL SUBSCREEN < subscreen_area>.

India SAP CoE, Slide 110

Step loops
Step loops are considerable less flexible than table controls.
Used to group screen elements together. A step loop is a repeated series of
loop blocks. A loop block consists of one or more loop lines of graphical
screen elements.
Loop blocs can be defined as fixed or variable.
In a fixed loop, the lower limit of the loop area always remains as
originally defined.
For a variable loop, the number of repetitions is adjusted dynamically in
the screen program to suit the size of the current window.

India SAP CoE, Slide 111

Creating a Step loop


Open a screen in the layout editor.
In one or more lines, create the elements you want to repeat.
Select all the elements on the desired line(s) as a group.
Choose Edit Grouping Step loop Define.
Your element lines now make up a single step loop block. The block includes the original elements
with their attributes and a predefined number of repetition blocks.
Each repetition contains a copy of the first block without attributes.

The repetition blocks are consecutively numbered, so that you can establish a reference to a
particular line.

India SAP CoE, Slide 112

Step loops
To use a Step-Loop block in an online program, you must create one work
area for the Step-Loop block. To hold all the lines of a Step-Loop block in the
programs memory area, use an internal table.
Ex:-TYPES: BEGIN OF TY_REC,
MATNR TTPE MARA-MATNR,
MATKL TYPE MARA-MATKL,
END OF TY_REC.
DATA: GT_MARA TYPE TABLE OF TY_REC WITH
HEADER LINE.
For Step loop the flow logic statement loop must be coded in both PBO and
PAI event. One form of the Flow Logic LOOP statement is;
LOOP.
. . . <flow logic statements> . . .
ENDLOOP.

India SAP CoE, Slide 113

Main screen Flow logic


Main screen flow logic for calling subscreen.
PROCESS BEFORE OUTPUT.
MODULE STATUS_0100.
call subscreen SUB1 including 'Z_MODULE_TRAINING' '0110'.
PROCESS AFTER INPUT.
call subscreen SUB1.
MODULE USER_COMMAND_0100.

India SAP CoE, Slide 114

Additions with ABAP OOPS

Enjoy SAP controls (ALV Grid , ALV Tree, HTML controls etc) can be
displayed in screen.

To place these grids we need to have screen element Custom Control


placed on the screen.

Also we need to have ABAP OOPS knowledge. ( Refer package SLIS


for examples)

India SAP CoE, Slide 115

Process on Help

This event is a user programmed help.

If the user presses the F1 key with the cursor is positioned in <screen
field>, the <supplemental documentation> will be displayed along with
the data elements short text and documentation.

The only other Flow Logic statement that can be used in the POH event
is:
FIELD <screen field> MODULE <module>.

India SAP CoE, Slide 116

Process on Value

This event is a user-programmed help that occurs when the user presses
F4 with the cursor positioned on a screen field.

The modules specified in the subsequent FIELD statement is called


instead of the SAP help.

Syntax is:
FIELD <screen field> MODULE <module>.

India SAP CoE, Slide 117

Module pool programming


PrepareMe
Introduction

Syntax Description

2
3

Demonstration

Exercises

5
India SAP CoE, Slide 118

HelpMe

Demonstration
Please refer the attached document for demo example.

Microsoft Word
Document

India SAP CoE, Slide 119

Module pool programming


Introduction

Syntax Description

2
3

Demonstration

Exercises

5
India SAP CoE, Slide 120

HelpMe

Exercises
Please refer the attached documents for hands-on.
Exercise 1 This covers input/output, radio button, table control, screen
navigation, flow logic events, Menu painter.

Microsoft Word
Document

Exercise 2 This covers tab strip, subscreen, table control, 4 flow logic
events, screen navigation, menu painter.

Microsoft Word
Document

India SAP CoE, Slide 121

Module pool programming


Introduction

Syntax Description

2
3

Demonstration

Exercises

5
India SAP CoE, Slide 122

HelpMe

HelpMe
Refer help.sap.com
Refer Transaction code ABAPDOCU (check in drop down ABAP User
Dialogs) for documentation and examples
For screen elements and controls (table control, tabstrip) refer transaction
BIBS.
Refer package SLIS for examples of ALV grids, ALV Tree.

India SAP CoE, Slide 123

You might also like