Screen Exits
1
Definition
• Screen exits refer to areas of a main screen reserved by
SAP developers for customers to design their own
screens as customer exits. In these areas you can
display/ enter your own data.
2
Objectives
• Knowing when to apply Screen exits.
• Using an enhancement consisting of Screen exit along
with a Program Exit.
3
Screen Exits
SAP Customer
Field 1 Field 1 Field z
Field 2 Field 2
Field x
Field y
4
Subscreens
SAP R/3
Name System Help
Phone no. 200
Meyer
Last name
SAP R/3
System Help Name Klaus
Phone no.
abcd
45678
200
Last name
SAP R/3
abcd
System Help
Last name Meyer
P. O. box P. O. box 11334
Fax no. Fax no.
abcd
67890 R
300 300
5
Defining Screen Exits
SAP R/3
System Help
Customer
Program: SAPMabbc
Screen: 1234
Customer field 1
Subscreen area Customer field 2
abcd
SAP Program: SAPLXyyz
Screen: 0444
PROCESS BEFORE OUTPUT.
...
CALL CUSTOMER-SUBSCREEN abcd
INCLUDING 'SAPLXYYZ' '0444'.
...
6
Calling Subscreens
SAP Customer
SAP R/3
System Help
Field y
Field z
Subscreen area
abcd
Program: SAPMabbc Screen: .... Program: SAPLXyyz Screen: 0444
PROCESS BEFORE OUTPUT. PROCESS BEFORE OUTPUT.
...
CALL CUSTOMER -SUBSCREEN abcd
INCLUDING 'SAPLXYYZ' '0444' .
...
PROCESS AFTER INPUT. PROCESS AFTER INPUT.
...
CALL CUSTOMER-SUBSCREEN abcd.
7
Transporting Data to Subscreens
SAP Customer
PROCESS BEFORE OUTPUT. PROCESS BEFORE OUTPUT.
... MODULE a.
MODULE export_data. MODULE b.
CALL CUSTOMER- SUBSCREEN abcd
INCUDING 'SAPLXYYZ' '0444' .
Interface FUNCTION-POOL Xyyz .
Program sapmabbc. DATA: g1 LIKE ... , g2 ... .
DATA: f1 LIKE ... , f2 ... . ...
... FUNCTION exit_sapmabbc _001.
MODULE export_data. ...
... e01 MOVE e01 TO g1 .
CALL CUSTOMER - FUNCTION '001' MOVE e02 TO g2 .
EXPORTING e01 = f1 e02 ...
e02 = f2. ENDFUNCTION.
...
ENDMODULE. . MODULE a OUTPUT.
.
. ...
MOVE g1 TO ... .
...
8
Transporting Data from Subscreens
SAP Customer
PROCESS AFTER INPUT. PROCESS AFTER INPUT.
... ...
CALL CUSTOMER-SUBSCREEN abcd. MODULE m.
MODULE import_data. MODULE n.
...
Interface FUNCTION-POOL Xyyz .
Program sapmabbc. DATA k1 LIKE ... , k2 ...
DATA h1 LIKE ... , h2 ... . ...
... FUNCTION exit_sapmabbc _002.
MODULE import_data. ...
... i01 MOVE k1 TO i01 .
CALL CUSTOMER-FUNCTION '002' MOVE k2 TO i02 .
IMPORTING i01 = h1 i02 ...
i02 = h2 ENDFUNCTION.
...
ENDMODULE. . MODULE m.
.
. ...
k1 = ... . R
...
9
Activation
• The subscreen screen is called in the processing logic
of the main screen with the instruction ‘Call CUSTOMER-
SUBSCREEN’. This call is inactive and will be skipped
when the screen is processed until the customer has
activated the relative enhancement screen.
10
To Summarise
Customer
subscreen
Customer
processing
Interface
Data transfer
SAP R/3
System Help
Subscreen area
11
Example
We will be working with the enhancement ‘MM06E005’ it
has several screen exits but we will be working with the
first screen ‘SAPMM06E’ screen no ‘101’ which will be
calling the sub screen ‘SAPLXM06’ screen no ‘101’ which is
not existing and has to be created.
12
Transaction
Code
‘CMOD’
13
Create a
Project
14
Enter the
short text
and select
Enhancement
assignment
from the
menu or
Application
Tool Bar
15
Enter the Enhancement Name and
save the project.
Note : at any particular point any
enhancement can belong to only one
Project
16
we will display customer no in sub
screen area and display it using
ME23 transaction
(screen shot taken from smod
transaction)
This is where
we will be
working with
17
• Points to be noted while coding
• 1) the global data of the calling module pool is not known to the
function groups belonging to the subscreen.
• 2) The function modules belonging to the program exists lie in the
same function group as the subscreen screen.
18
• PBO (main) PBO (sub)
(YOU) Transfer Displays the
the data to the data in
subscreen subscreen
CALL SUBSCREEN
• PAI (main) PAI (sub)
CALL SUBSCREEN
(YOU) Transfer
Process the data the data to the
received from the main program
subscreen
19
Go to SE51
and create a
new subscreen
‘SAPLXM06’
with screen no
‘0101’
20
Just add the field EKKO-KUNNR
and save it
To display the data here we will have to
export the data in the main program to
memory and then import it from
memory into the subscreen
21
Go to SE51 and display the
main screen
‘SAPMM06E’ with screen no
‘0101’
22
Here we have
to code for
transferring
data to the
subscreen for
display
23
24
Double click on
the user exit
EXIT_SAPMM06E_006
25
Double
click on
the
include
‘ZXM06U36
’
26
It will ask u
to create a
new object
Click ‘YES’
27
Write Your code
here
i.e. export it to
memory
Generate it and
go back
28
Since I am trying to export EKKO-EBELN
to I have declare this in the function pool
which is of the same name as the
subscreen I.e ‘SAPLXM06’
Go to se38 and give the program name as
‘SAPLXM06’ and display it
29
Since we are trying to
declare the data
double click on the
include ‘LXM06TOP ’
30
Double click
on the include
‘ZXM066TOP’
31
Now do your declaration here
and generate it.
Once this part is done go back
to the flow logic of your
subscreen which you have
created
32
Write your code in the PBO
write a new module pool or
use the existing
MODULE STATUS_0101.
(double click on the module
33
Type in your code here and
generate
(i.e import your data here)
And go back to your flow
logic
34
Generate
your flow
logic here
Go to your project and activate it
35
Thank You
36