chandan bhatnagar
November 13, 2022 4 minute read
SAP Enhancement & Modification Basics – Must read for Functional Consultant
51612,999
Introduction
This document will help functional consultant to understand the difference between enhancement and modification. What kind of enhancement are available and how to search the one based on requirement.
Purpose
There are many businesses requirement which are not possible in SAP standard and we need to do enhancement or modification with the help of technical team. This document will help functional consultant to understand the available type of enhancement and how can he/she search those as per business requirement.
Scope
We will cover different types of available enhancement and how to use it.
Enhancement
SAP object is the object that is delivered or created by SAP. Customer object is the object that is created by a customer.
Enhancement is a way to add or change the SAP object functionality without modifying the SAP object.
Below are the types of enhancement available in SAP –
Data dictionary enhancement
Customer Exit
BTE
BADI
Data dictionary enhancement
We can enhance SAP standard table or structure by using two ways,
Append structure
Customising include
Append structure and customising include allow us to enhance SAP standard tables or structures by adding fields to them.
We can enhance table or structure by using customising include only if the table or a structure has customising include Statement.
Use – If there is a requirement to save some additional fields.
Customer Exit
Customer exit is one type of SAP enhancement. With customer exit we can enhance the SAP standard program without modifying SAP Object.
There are three type of customer exit –
Functional Exit
Menu Exit
Screen Exit
We can see the list of customer exit by transaction code SMOD.
Debuting the program and create a breakpoint for command call customer function.
Search in program “call customer-function”.
Use transaction SMOD
Use- If there is a requirement to apply some validation on field, want to substitute values during the posting or need some additional screen during any transaction etc.
Business transaction event (BTE)
BTE is a type of enhancement which is basically developed for FI module. BTE is based upon function module, but it is different from customer exit.
In customer exit only SAP and Customer is involved unlike BTE where partner is also involved other than SAP and customer. So not only customer can modify the SAP program, but other partner firm can also modify the standard logic in BTE.
There are 2 types of BTE interface
Process Interface – Can influence the SAP standard object
Publish and subscribe interface – Cannot influence the SAP Standard object.
Enter T-code – FIBF , you can find both type of BTE.
Use- Can be used in FI reports, payment advise, dunning, validation, and substitution.
Business Add-in (BADI)
When SAP developers were creating SAP standard program, they found that customer may need different logic in the future, So they created BADI and also an interface.
BADI is based on object-oriented programming.
We can see list of existing BADI by t code SE18.
We can implement the BADI by t code SE19.
We can search BAdI Name is used for classical and Enhancement spot used for new.
You can check the documentation related to BAdI and used those as per your requirement.
Click on display, we can check if this BAdI is already implemented or not.
There is a tab in header “Implementation” , click on that then display.
So this BAdI is already implemented as we can clearly see above.
Use- Can be used widely to apply additional logic in sap standard program like applying payment block based on certain business requirement as shown above.
Modification
SAP object is the object that is delivered or created by SAP. Customer object is the object that is created by a customer. Modification is a way to add or change the SAP object functionality directly modifying the SAP object. This is not recommended as it can leads to inconsistency.
Modification is not recommended until unless you have complete knowledge of flow. There is modification which is allows and it is user exit.
When we do modification, we required SAP Software change registration.
SAP recommends us to use modification assistance when modifying SAP standard program.
Use – User exit is one kind of modification which can be used to modify the SAP object with our own logic.
Confusion – So now the confusion is what should we use ? Either enhancement or modification. If enhancement then what type of enhancement. Actually this is defined by SAP itself, SAP has defined already which object can be modified. Enhancement is pre-planned by SAP and SAP has already defined what kind of enhancement can be used or not.
Please share your valuable feedback.
Please follow my blog for FI cutover activities –
https://blogs.sap.com/2022/10/14/sap-fi-cutover-activity-plan-complete-activities/
Please follow my blog for validation and substitution –
https://blogs.sap.com/2022/10/30/user-exit-in-validation-substitution-for-functional-consultant/
Please follow the below link for related topic
https://answers.sap.com/tags/648420875567243523242285841826221
and read other posts on the topic –
https://blogs.sap.com/tags/648420875567243523242285841826221/
Please follow my profile for related information. Thanks Everyone
FollowLikeRSS Feed
Alert Moderator
Enhancement Concept
Definition
The Enhancement Framework provides a technology for enhancing source code units without modifying them. The basic mechanism is to offer the so-called enhancement options in development objects. These enhancement options function like "hooks" where you can attach your enhancements. The enhancement options are part of the development objects which can be enhanced. When you assign an enhancement to an enhancement option, at runtime the enhancement is processed when the control flow reaches the option. At runtime the enhancement behaves as if it belongs to the development object it enhances, while the enhancement as a transport object does not belong to the enhanced object.
The Basic Advantages of Enhancements over Modifications
Enhancements result in far less work during an upgrade compared to modifications. Enhancements are transport objects in their own right that can be stored in packages of their own unlike modifications, which are part of the object they modify. Since during an upgrade all SAP objects are replaced by the new version of these objects, after the upgrade all modifications are gone. This results in customers having to adjust all modifications no matter whether the underlying object has changed or not.
In contrast, customer enhancements as transport objects are never overwritten during an upgrade because they are stored in customer packages in the customer namespace. It may happen that the new version of a development object is no longer compatible with an enhancement, if for example an enhanced object is deleted or a data type used in the enhancement does no longer exist. In these cases, the relevant tools of the Enhancement Framework provide the information which enhancements have to be adjusted and offer tool support to do so.
After an upgrade customers still have to adjust enhancement but these are only the enhancements that are no longer compatible with the new version of the object they enhance, but have to touch every single modification in a system. So enhancements are far more robust during upgrade.
Basic Concepts
Enhancement options: positions in repository objects where you can make enhancements. Enhancement options can be explicit and implicit.
Enhancement spots: containers for explicit enhancement options.
Enhancement implementation elements: these contain the actual enhancement, for example, the source code to be added.
Enhancement implementations: containers for both enhancement implementation elements of both implicit and explicit enhancement options.
Implicit enhancement options are provided by the framework and exist without any particular preparation by a developer, they do not have to belong to a container (an enhancement spot).
Explicit enhancement options have to be inserted explicitly in the source code. They are created in an initial system and must be made known to developers in target systems by means of enhancement spots.
The figure below shows an overview of enhancement spots and enhancement implementations. The left part shows the relevant terminology for enhancement spots and the relationships between them. It only applies to explicit enhancement options. No enhancement spots are required for implicit enhancement options.
The right part shows the relevant terminology for enhancement implementations and the relationships between them. This applies to enhancement implementations of both explicit and implicit enhancement options.
On the implementation side, all implementation elements, regardless of whether they enhance implicit or explicit enhancement options belong to other containers. The containers on the definition side and those on the implementation side are assigned to each other with a particular cardinality.
Grouping Enhancements
All explicit enhancement options and all enhancement implementation elements must be part of containers. This is enforced by the tools of the framework. Enhancement options and their implementations must not be grouped together as they belong to different stages of development.
In the Enhancement Framework there are containers for the enhancement options on the definition side and containers for the implementations on the implementation side:
Simple containers
...