This transaction consists of various components (including function exits, menu
options and subscreens). For example, an SAP enhancement may comprise a subscreen
and the function exits for data transfer. Customers simply select the components
they wish to edit, combine them together in enhancement projects, edit the
components and activate the projects.
Creating a project
First, you must give the project a name. In order to be able to locate projects
easily, you are recommended to choose names which contain the name of the
transaction or module pool. When you press the function key Create, you go to an
attributes screen where you can enter a short description of the project. If you
choose a project name that already exists, you get an error message. If you enter *
as the project name, you get a list of all projects created so far. When you save
with F11, you have to enter a correction number (see Corrections/Transport).
Assigning SAP enhancements to a project
On the initial screen, select SAP enhancements and then Change (or Goto ->
Components on the attributes screen). On the next screen, you can specify SAP
enhancements by name. By selecting SAP enhancements -> Find enhancements (and, if
required, after restricting selection in the next dialog box, or with components),
you can display a list of existing SAP enhancements you want to include in the
project. When you choose enhancements from this list to assign to a project, they
cannot be used by other projects.
Editing enhancement components
To edit SAP enhancement components, select Enhancement components and then Change.
If you place the cursor on a function exit, you go into the ABAP/4 Editor where you
can enter the appropriate code. If the cursor is on a menu enhancement, you can
change the menu text. If it is on a screen enhancement and you press the Edit
component key, you can create and design the screen (subscreen) you want to include.
To find out what you can do with each component, refer to the SAP documentation.
When editing function exits and screen enhancements, you should be aware of the
following:
Although you can create screens, text elements and such like for the main program
SAPLXyyy, you cannot change the program itself, since it is created by SAP. The
program contains the includes LXyyyTOP, LXyyyUXX, LXyyyUnn and LXyyyXXX, which also
cannot be modified, as well as the include ZXyyyZZZ, which is created and edited by
the customer. The includes LXyyyTOP and LXyyyUnn contain the includes ZXyyyTOP and
ZXyyyUnn; these are also created and edited by the customer and do not exist for
SAP. Since you have to define the message ID in the FUNCTION-POOL statement in the
include LXyyyTOP, you must specify it when outputting a message:
MESSAGE E000(ID).
The include LXyyyUnn contains the function exit source code, which you can only
display. It also contains the include ZXyyyUnn. If you double-click on the include
name, you can display the source code of ZXyyyUnn and then use a pushbutton to
switch to change mode and enter code. Of course, you can edit these
includes "directly" using Transaction SE38. Since they appear within a function
modules, they cannot contain events (subroutines, modules...).
If you want to define global data, the include LXyyyTOP contains the include
ZXyyyTOP, which you can use to make data declarations. When you create global data
while navigating through the transaction, it is automatically defined in the include
ZXyyyTOP. You may require global data when editing the screen areas: if the function
exit interfaces for data transfer are not global, then the fields required must
firstly be copied to global fields, in order to make them known to the complete
function group.
When creating your own includes, ensure that you observe the naming convention
properly (the first 5 characters are ZXyyy) and that you store them in the include
ZXyyyXXX, not in the main program SAPLXyyy. This is automatic if you are navigating
through the transaction.
Sometimes example code from SAP is included with function modules. If desired, this
can be incorporated into the include ZXyyyUnn belonging to the function module using
CMOD (Change enhancement components --> move cursor to function module -->
function ???). If this file already contains customer code, the SAP code is added at
the end of the file. The function group can also contain subroutines written by SAP,
which can be called if required. The customer cannot make changes to these
subroutines. Refer to the SAP documentation for information on whether example code
or subroutines exist, and how they may be used.
In the case of screen areas, note that when the relevant screen is created the
screen type "subscreen" is selected in the screen attributes.
Since a project is generally inactive during editing, the SAP transactions affected
are not changed.
Activating a project
When you activate a project, all its components are activated and the project status
is set to "active". At the same time, all the programs, screens and menu interfaces
associated with the project are regenerated (in the case of programs, only when they
are started). When you start the enhanced transactions, you see the enhancements. If
you use the Deactivate function to reverse activation of a project, the status is
reset to "inactive". If the (de)activation process terminates, the project status
does not change but may contain both active and inactive components. To restore the
project to a consistent state, restart the (de)activation process.
Corrections/transports
When you create/change a project, you must create a correction. This correction
contains only the attributes and the SAP enhancements associated with a project, as
well as a program that is automatically started with the transport and activates the
project in the target system. Corrections for individual components are created only
when you edit the relevant component. This allows several users to edit different
components from the same project at the same time without the use of a network.
Since activating a project affects all components, you should transport all
components associated with a project at the same time, in other words with the same
transport request. To ensure that the project is activated automatically in the
target system, the correction that contains the program concerned must also be in
the same transport request. If this is not the case, or the project has not been
activated in the target system for other reaons, you can also activate it by
manually starting the program (RSMODACT).