0% found this document useful (0 votes)
347 views3 pages

ABAP - Subscreens: Example

Subscreens allow screens to be embedded within other screens at runtime. To use a subscreen, you must define a subscreen area on the main screen, create a subscreen screen, and include the subscreen screen in the defined area using a CALL SUBSCREEN statement. This embeds the flow logic of the subscreen in the main screen's flow logic. Data is passed between identically named fields in the subscreen and main program. Subscreens provide a way to modularize and reuse screen content and logic.

Uploaded by

Jhon Ed
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
347 views3 pages

ABAP - Subscreens: Example

Subscreens allow screens to be embedded within other screens at runtime. To use a subscreen, you must define a subscreen area on the main screen, create a subscreen screen, and include the subscreen screen in the defined area using a CALL SUBSCREEN statement. This embeds the flow logic of the subscreen in the main screen's flow logic. Data is passed between identically named fields in the subscreen and main program. Subscreens provide a way to modularize and reuse screen content and logic.

Uploaded by

Jhon Ed
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

ABAP | Subscreens

Before you read this tutorial make sure you what a Dialog Program is ...

Subscreens

A subscreen is an independent screen that is displayed in an area of another ("main")


screen.

Subscreens allow you to embed one screen within another at runtime. You can include
multiple sub-screens on main screen.

The term subscreen applies both to the screen that you embed, and the area on the main
screen in which you place it. This tutorial is about subscreen areas. The actual screens
created through SE51 transaction, are called subscreen screens if defined in screen
attributes.

When you use a subscreen, the flow logic of the embedded screen is also embedded in
the flow logic of the main screen.Hence, Using subscreens on screens is like using
includes in ABAP programs.

To use a subscreen, you must follow three simple steps


1. Define the subscreen area(s) on a screen
2. Define suitable subscreen screens
3. Include the subscreen screen in the subscreen area.
Also, you need to adjust the frame of sub-screen and main screen. You need to name it in the
field name field.
Further, you also need to adjust the fields within the subscreen to make them appear in main
screen. In case the sub-screen is defined to be larger than the available area in the main screen,
only the part of subscreen will be visible that fits in the the area available. The area is always
measured from the top left corner of screen. Hence you should take adequate care while defining
sub-screen areas and creating sub-screens.
EXAMPLE
For instance here we have defined two sub-screen areas on main screen and have attached two
different Sub-screen to corresponding areas. Whenever main screen is called, the PBO of main
screen is called. But before display, the PBO's of each screen attached with sub-screen areas on
main screen are also called.

You can include a subscreen screen using the CALL SUBSCREEN statement in the flow logic of
the main screen.
To include a subscreen screen in the subscreen area of the main screen and call its PBO flow
logic, use the following statement in the PBO event of the main screen:
?
1 PROCESS BEFORE OUTPUT.
2
3
4
5 CALL SUBSCREEN <area> INCLUDING [<prog>] <dynp>.
This statement assigns the subscreen screen with number <dynp> to the subscreen area called
<area>. You can also specify the program in which the subscreen screen is defined (optional). If
you do not specify the program explicitly, the system looks for the subscreen screen in the same
ABAP program as the main program. If it does not find a corresponding subscreen screen, a
runtime error occurs. The PBO flow logic of the subscreen screen is also included at the same
point. This can call PBO modules of the ABAP program in which the subscreen screen is
defined. At the end of the subscreen PBO, the global fields from the program are passed to any
identically-named screen fields in the subscreen screen. The PBO flow logic of the subscreen
screen can itself include further subscreens.
The name <area> of the subscreen area must be entered directly without inverted commas. You
can specify the names <prog> and <dynp> either as literals or variables. If you use variables, you
must declare and fill identically-named variables in the ABAP program. The screen number

<dynp> must be 4 characters long. If you do not assign a subscreen screen to an area, it remains
empty.
To call the PAI flow logic of the subscreen screen, use the following statement in the PAI flow
logic of the main screen:
?
1
2
3
4
5

PROCESS AFTER INPUT.

CALL SUBSCREEN <area>.

This statement includes the PAI flow logic of the subscreen screen included in the subscreen area
<area> in the PBO event. This can call PAI modules of the ABAP program in which the
subscreen screen is defined. Data is transported between identically-named fields in the
subscreen screen and the ABAP program either when the PAI event is triggered, or at the
corresponding FIELD statements in the PAI flow logic of the subscreen screen.
Points to Remember

Names of elements of sub-screens within a screen should be unique

You should not have OK_CODE or FCODE attached with sub-screen. The OK_CODE of
main screen itself is OK_CODE of sub-screen

Sub-screens cannot have any dialog modules containing SET TITLEBAR, SET PFSTATUS, SET SCREEN, LEAVE SCREEN or LEAVE TO SCREEN. This will cause
runtime error.

You need to call it in the flow logic (both PBO and PAI) of the main screen.

CALL SUBSCREEN is not allowed in CHAIN..ENDCHAIN and LOOP ENDLOOP


statements

Can not have an AT EXIT-COMMAND module

The fields that you use are the global fields. They must be declared in the top include

If using subscreens from another dialog program the data transfer will not happen unless
you add specific code.

You might also like