Table of Contents
Enhancements and Modifications in SAP
The SAP System provides a comprehensive infrastructure for business computing. To streamline business processes, however, you may be required to make modifications to the standard.
When making changes to the SAP standard, you must first determine which type of modification best suits your needs.
- Enhancements represent potential customer requirements that have not been developed in the standard software.
- Instead, the standard provides for further development of such exits at the customer site, using logic specific to the customer.
- Upward compatibility is assured since SAP guarantees that the call of an enhancement from the standard software and the calling interface will remain valid in future releases.
Types of Enhancement Techniques
- ‘User-Exit’ is one of the very first mechanisms provided by SAP to execute custom code in between the standard SAP control flow. This is implemented as subroutine call (PERFORM xxx). A classic example for User-Exit is MV45AFZZ include in order processing module of SAP R/3.
- ‘Customer-Exit’ is better than the user-exit, in the sense that it is implemented using Function Modules and so has a well-defined parameter interface. Also since the custom coding done as part of these customer-exits is located away from the original SAP code, the maintenance is easier than user-exits.
- ‘Business Transaction Events‘ – SAP developed this enhancement technique in Release 4.0, allows enhancements to be reused. Business Transaction Events (BTE) allow you to attach additional components, in the form of a function module, for example, to the R/3.In contrast to customer exits, BTE’s allow you to use an interface for multiple types of additional logic.
- The ‘BADI-s’ (Business Add-Ins), as they exist in pre NW04s releases are now called old classic-BADI’s. This was the first object-oriented way to enhance the ABAP system. This, to a certain extent, allows multiple implementations with limited filter support. The classic-BADI’s are implemented using ABAP Objects. Implemented from release 4.6A.
- ‘Enhancement Framework’ is the new paradigm to bring all enhancement techniques under one roof. The aim of the new enhancement concept as of Release 7.0 is to unify all possible ways of modifying or enhancing SAP products , which go beyond the scope of Customizing.
User exits in SAP
- The original purpose of user exits was to allow the user to avoid modification adjustment.
- The SAP developer creates a special include in a module pool. These includes contain one or more subroutines routines that satisfy the naming convention user exit_<name>.
- After delivering them, SAP never alters includes created in this manner; if new user exits must be delivered in a new release, they are placed in a new include program.
- The purpose behind this type of system is to keep all changes well away from program source code and store them in include programs instead.
- This naming convention guarantees that SAP developers will not touch this include in the future. For this reason, includes of this nature are not adjusted during modification upgrade.
Finding User exits
Customer Exits
- SAP creates customer exits for specific programs, screens, and menus within standard R/3 applications. These exits do not contain any functionality. Instead, the customer exits act as hooks. You can hang your own add-on functionality onto these hooks. If you want to enhance the functionality of your SAP System, you should take advantage of the exits.
- There are two main reasons why you should use exits rather than modifying SAP software yourself.
- Customer exits are not available for all programs and screens found in the SAP System. You can only use customer exits if they already exist in the SAP System.
Types of Customer Exits
There are several different types of customer exits. Each of these exits acts as hooks where you can attach or “hang” your own add-ons.
- Menu Exits
- Menu exits add items to the pull down menus in standard SAP applications. You can use these menu items to call up your own screens or to trigger entire add-on applications.
- SAP creates menu exits by defining special menu items in the Menu Painter. These special entries have function codes that begin with “+” (a plus sign). You specify the menu item’s text when activating the item in an add-on project.
- Screen Exits
- Screen exits add fields to screens in R/3 applications. SAP creates screen exits by placing special subscreen areas on a standard R/3 screen and calling a customer subscreen from the standard screen’s flow logic.
- Function Module Exits
- Function module exits add functions to R/3 applications. Function module exits play a role in both menu and screen exits. When you add a new menu item to a standard pull down menu, you use a function module exit to define the actions that should take place once your menu is activated. Function module exits also control the data flow between standard programs and screen exit fields.
- SAP application developers create function module exits by writing calls to customer functions into the source code of standard R/3 programs. These calls have the following syntax: CALL CUSTOMER-FUNCTION ‘001’.
BTE’S(Business Transaction Events)
- This is an enhancement technique that was developed for Financial accounting component. BTEs can be used both by SAP, third party vendors and customers. Each use their own function modules where the logic is placed, so they don’t interfere with each other.
- This can be easily adopted / customized to the business needs wherein SAP does not provide the standard functionality through customization or enhancements. This functionality is primarily used in FI in the areas of dunning, credit management, banking etc.
Difference between BADI’s and BTE’s
- The concepts behind the Business Add-Ins enhancement technique and Open FI are basically the same. However, the two enhancement techniques do differ from each other in the following points:
- Open FI can only be used to make program enhancements, that is, you can only enhance source code using Open FI. You cannot enhance user interface elements with Open FI like you can with Business Add-Ins.
- Open FI assumes that enhancement will only take place on three levels (SAP – partners – customers), whereas with Business Add-Ins you can create and implement enhancements in as many software layers as you like.
- Open FI uses function modules for program enhancements. With Business Add-Ins, ABAP Objects are used enhance programs.
Types of BTE’s
Publish & Subscribe interfaces: These interfaces inform external software that certain events have taken place in an SAP standard application and provide them with the data produced. The external software cannot return any data to the R/3 System.
Process interfaces: These interfaces are used to control a business process differently than the way in which it is handled in the standard R/3 System. They intervene in the standard process, and return data to the SAP application.
Finding BTE’s
- SAP Reference IMG -> Financial Accounting -> Financial Accounting Global Settings -> Business Transaction Events
- For Publish and Subscribe Interfaces, Environment – > Info system (P/S)
- For Process Interfaces, Environment -> Infosystem(Processes)
- Find for Character String “OPEN_FI_PERFORM” in source code.
Basic Steps in Configuring BTE’s
- Make sure the application is active for Business Transaction Events.
- Identify the BTE
- Copy the sample interface function module into a “Z” or “Y” function module.
- Write the ABAP code into the source code section of the new “Z” or “Y” function module. You may choose to create a “Z” or “Y” program to enter the code into and then insert the “Z” or “Y” program into your function module source code.
- Save and activate the function module.
- Assign the function module to the event, country and application.
BADI’s
- Business Add-Ins are a new SAP enhancement technique based on ABAP Objects
- They can be inserted into the SAP system based on specific user requirements
- Business Add-Ins should be considered generalized Business Transaction Events that can be used to bundle program, menu and screen enhancements into a single add-in.
- Each Business Add-In has :
- At least one Business Add-In definition
- A Business Add-In interface
- A Business Add-In class that implements the interface
BADI Architecture
- In order to enhance a program a Business Add-In must first be defined
- Subsequently two classes are automatically generated :
- An interface with ‘IF_EX_’ inserted between the first and second Characters of the BadI name
- An adapter class with ‘CL_EX_’ inserted between the first and second Characters of the BadI name.
- The Application developer creates an interface for this Add-In
- Enhancement management generates an adapter class for implementing the interface
- This opens a path for custom implementations to be created by partners or customers.
- By instantiating the adapter class in the application program, its corresponding methods can be used.
Overview of SAP
Continue reading at https://www.trenovision.com/overview-of-sap/