How to implement screen
exit for a SAP standard transaction HOT
By Roshini
Introduction
SAP provides standard
transactions to enter data into database. But a client may want to maintain
some additional information in SAP other than what is provided.
To make provisions for this,
additional screens have to be provided and additional fields must be added into
appropriate database table.
To pave way for this, SAP has
provided the option for screen exits. Usually, SAP provides the following:
1.
An append structure in the
database table with the new fields.
2.
A subscreen area into the
standard screen – where the programmer can attach his subscreen of his own
program with the new fields.
3.
A function group under which the
new subscreen has to be created with the new fields.
4.
Function exits to synchronize the
PBO and PAI of the standard SAP program with the PBO and PAI of the subscreen –
so that data can flow back and forth between the standard SAP program and the
program written by the developer for the subscreen. These function modules also
exist in the same function group under which the subscreen will have to be
developed.
Finally, a linkage has to be done
between the subscreen area of standard SAP screen with the custom subscreen
constructed by the developer.
Typically, SAP provides an
enhancement in which the developer can create an append structure, use the
function exits to synchronize the PBO and PAI of the standard SAP program and
the custom subscreen program, and make the necessary linking( as mentioned
above in step 4. But, again, this is not a hard and fast rule. Linking in some
case, is also done by configurations.) SAP also usually provides the name of
the function group under which the subscreen has to be developed.
Necessary guidance about
implementing a screen exit development is usually available in the
Documentation section of the enhancement ( can be availed by transaction SMOD).
Pre-Requisites
The developer to work on screen
exit should have essential knowledge on the following:
- DDIC
concepts, including the knowledge of append structure.
- Concept
of SAP Enhancements and implementing them using Projects.
- Concept
of function exits.
- Knowledge
on Module Pool – including subscreens, Tabstrip controls etc.
Steps
Guidelines
So, a developer can follow the
guidelines mentioned below to implement a screen exit to a standard SAP
transaction, as and when required:
Find out the Required
Enhancements
1.
Go to SMOD. Press F4 in the
Enhancement field. In the next popup window, click pushbutton ‘SAP
Applications’. A list will appear that contains information on all the
enhancements, categorized under functional areas. Developer must search for the
enhancements relevant to his functional area of interest – for e.g.,
Purchasing, Asset Accounting, etc.
2.
Note down the enhancements. Then,
come to the initial screen of SMOD and view the documentation of each
enhancement to find out which one is required for your development.
Utilize the Enhancement in a
Project
After you have found one, do as
directed in the documentation. Generally, the steps are as follows:
1.
Create a project using CMOD
including your enhancement.
2.
Create the append structure with
new fields.
3.
Go to the desired function group
and create a subscreen with the new fields. Write PBO and PAI for the
subscreen, if required.
4.
Use the function exits in the
enhancement to link the PBO and PAI of the subscreen with that of the main SAP
program supporting the SAP transaction.
5.
Maintain necessary linkage
between the subscreen area of standard SAP program with the custom subscreen
developed along with the custom program name. This can be done in the project
(developed by CMOD including the enhancement) or outside as a part of
configuration.
6.
Activate the project.
7.
Test to ensure that required
functionality are met.
Case Study 1
Add three new custom fields for
Asset master and maintain information for them
Requirement
Three fields in the legacy system
have to be maintained in Asset master. These fields are:
1.
Original Asset number – 20
characters
2.
Location 2 – 15 Characters.
3.
Model no – 20 characters
Location 2 should start with ‘L’.
Pre-Analysis
Finding out the Enhancement
As described above, the
enhancement is determined. It was found, that enhancement AIST0002 will serve
the purpose. It contains the following components (can be viewed by transaction
SMOD):
Exit Type Description
EXIT_SAPL1022_001 Function Exit Check of User-Defined Fields when Using Create
and Change BAPI EXIT_SAPLAIST_002 Function Exit Transfer Data for User
Subscreens in PBO. EXIT_SAPLAIST_003 Function Exit Transfer of User-Defined
Fields to SAP Master Data Transactions CI_ANLU Customizing Include Include
structure to add new fields
Studying the Function Exits
The function module level
documentation for the function exits are then viewed from transaction SE37. The
documentation clearly laid out for the purpose for their use:
EXIT_SAPLAIST_002
Function module Level
Documentation
This function module is called by
asset master data maintenance at the start of the dialog. (When changing, it is
called after reading of the data from the database; when creating it is called
after the transfer of the default values from the asset class and reference
asset.) The purpose of the function module is to enable this function group to
recognize the master data. For interpreting or controlling master data fields
that are important for user fields, it is possible to transfer to global
variables at this point, so that they can be recognized when the user
subscreens are processed.
Import Parameters
Understanding
This function module is called at
the PBO to pass the information retrieved from the database to pass them to the
custom subscreen and its underlying program. Import parameter : I_ANLU
will be populated with the values for user-defined fields which will be passed
to the subscreen program. So, there must be some sort of variable assignment
from I_ANLU.
EXIT_SAPLAIST_003
Function module Documentation:
This function module is called by SAP asset master data maintenance after the
screens are processed, but before saving. The purpose of the function module is
to transfer fields entered on user sub-screens of SAP asset data maintenance to
the database for updating. The export parameter for this function module is:
Understanding
This function module will be used
to transfer the user entered data in the subscreen fields to the main SAP
program, which will then be saved into the database.
Studying the Documentation of the
Enhancement
The enhancement documentation (as
is viewed from the initial screen of SMOD] also supports the idea. Moreover, it
informs that we need to develop a subscreen under function group XAIS. This is
the function group under which the two function exit modules also exist. So, if
the custom subscreen refers to the global data of the function group XAIS, then
those values will also be available to these function exits as well.
Going to SE80 and viewing the
function group XAIS helps us to inform that there are three DDIC tables
declared for it:
Deciding the Final course of
Action
After making all the
investigations, the final course of action was determined.
SrlNo Step Justification
1.
A project has to be created using
transaction CMOD where the enhancement AIST0002 will be included.
2.
Customizing include CI_ANLU has
to be created with the custom fields demanded When CI_ANLU will be developed,
the custom fields will get appended to the database table ANLU. Also, these
fields will be used to create screen fields in the new subscreen.
3.
A custom subscreen, say, 9000
will be developed under function group XAIS. The screen group for the screen
will be ‘CUST’ (or any name). The three custom fields added to table ANLU (by
creating CI_ANLU) will be used to create new fields in the screen.
In the PAI of the subscreen,
validation for Location to start with ‘L’ will be added. The subscreen with
three new fields has to be developed so that it can be attached to a subscreen
area of the asset master screens.
1.
In the custom include of the
function exit module ‘EXIT_SAPLAIST_002’, the following code will be written:-
ANLU = I_ANLU. I_ANLU is the
import parameter of this FM. The value is assigned to the global variable ANLU,
referring which the three new subscreen fields are developed. So, data
retrieved from database table ANLU will be passed to this FM as I_ANLU by the
standard SAP main program. The value will be taken and passed to the global
variable of the function group XAIS, so that the three custom fields (referring
to ANLU of XAIS) get populated.
1.
In the custom include of the
function exit module ‘EXIT_SAPLAIST_003’, the following code will be written:-
E_ANLU = ANLU. The changed values
in the subscreen fields exist in global variable ANLU for the function group
XAIS. This function exit module will pass the data back to the SAP main program
as E_ANLU.
1.
Proper linkage/configuration has
to be done so that the new subscreens get linked to the appropriate subscreen
area of the Asset master screen. This has to be done – otherwise, the new
custom subscreen will not be displayed in the Asset master screens.
Development
Creating a Project to include the
enhancement
1.
Go to transaction CMOD and create
a project.
2.
Enter a description for the
project. Then, click on the pushbutton ‘Enhancement Assignments’ in the
Application Toolbar.
3.
Enter the name of the enhancement
and Save.
4.
Go to ‘Components’.
Creating Custom Include for ANLU
The screen shown below will
appear, showing all the enhancement components under the assignment AIST0002.
Double-click on the name of the Include Structure to create it.
Create the include structure with
three new fields, as required. Then, save and activate it.
Develop the subscreen and the
program
Go to transaction SE80. For the
function group XAIS, create a new subscreen 9000.
Create it as subscreen.
Then, go to the Layout of the
screen and create three new fields from Database table ANLU.
Drag the fields in the screen
body and place them.
Then, save and activate the
screen and come back to screen flow editor.
Create the PAI module to add
validation for field “Location 2”, as required .
Activate the whole function group
and come out.
Write code in the Function Exits to
synchronize the programs
Now, code has to be written in
the function modules EXIT_SAPLAIST_002 and EXIT_SAPLAIST_003 so that data flows
to and fro between the main SAP program and custom subscreen program. For that,
go back to transaction CMOD and change the function exits.
Write code in the function module
EXIT_SAPLAIST_002 called once at the beginning of the transaction:
Write code in EXIT_SAPLAIST_003
to pass the data from the subscreen to SAP main program.
Then, activate everything – the
whole project and come out.
Complete the configuration to link the
subscreen
The development portion is
complete. Now, linking of the subscreen has to be done with the subscreen area
of the main program. In most of the cases, this linking can be done in the
enhancement itself. But, here, requirement is a bit different. It is done by
configuration using SPRO.
Assets are created under Asset
class. And for each asset class, there is a layout assigned to it. For a
layout, there are multiple tab pages assigned to it. And, for each tab page,
there are multiple screen groups/field groups assigned.
Here, the requirement is to
create these three custom fields in the tab page ‘General’ of asset master
screen ( AS01/AS02/AS03/AS91).
Determine the Layout
To achieve this, first of all, we
need to find out which layout is assigned to asset class 1000.For that, go to
transaction AOLK( information has to be obtained from functional
consultant).Select the Asset Class ‘1000’ and click on folder ‘General
Assignment of Layout’.
Here, for Asset class 1000, for
all the user groups, tab layout SAP is assigned. Since layout ‘SAP’ cannot be
changed, it has to be copied and manipulated to include our screen group.
Later, the new layout has to be assigned over here.
Create new tab layout
Go to transaction AOLA. Copy the
tab layout ‘SAP’ to create another layout, say, YSUB.
System will copy all the settings
and will inform you about that.
Select your newly created layout
and double-click on the folder ‘Tab page titles’.
You want to put your custom
fields in the tab page “General”. So, select this tab page entry and
double-click on the folder "Position of Groups".
Here, all the field groups
currently residing in the tab-page “General” are shown. Add an entry for your
newly created fields.
Select the group box from the
list. An entry will come with “U” padded with the custom subscreen prepared by
you.
Then, save and come out.
Assign the new Layout to Asset
Class
Now, go to tcode AOLK and assign
tab layout YSUB for asset class 1000.
Save and come out.
Test the Exit
Everything is over. Now, go to
transaction code AS01/02/03 or AS91 to deal with an asset of asset class 1000.
You will see your new fields added to the screen. Add values to them…save.
Then, enter into the tcodes again to see whether the values entered by you are
being displayed or not.
Original Source: ittoolbox.com
No comments:
Post a Comment