SAP’s enhancement package strategy allows you to implement the functionality that you need when you need it without having to worry about overriding your customizations or any other unknown side effects. Gain a better understanding of SAP’s latest software delivery strategy as you learn how to implement and activate individual enhancements with minimal maintenance efforts.
Key Concept
SAP Enhancement Packages empower SAP customers to install and activate new functionality driven by their business needs without the classic system upgrade. With SAP Enhancement Packages, you have Business Functions and Technical Usages. A Business Function is the activatable unit within the Switch Framework of the SAP ERP Central Component (SAP ECC) server; whereas a Technical Usage is a group of software components that must be installed together as part of an SAP Enhancement Package.
SAP Enhancement Packages represent a new software delivery strategy that allows you to install innovations on top of SAP ERP 6.0 without the need to fully upgrade your current release. SAP Enhancement Packages for SAP ERP have significantly changed the methodology for implementing new functionality.
Customers have always needed to stabilize their core systems and yet still deliver ongoing innovation. With the SAP Enhancement Package concept, SAP tackles this challenge. SAP Enhancement Packages represent a new software delivery strategy.
So what are the major changes?
First, you can now install new functionality without activating it immediately so the installation does not affect your end users right away. You should install SAP Enhancement Packages in a standard maintenance window as part of your existing regular Support Package update, but only activate a functionality when you want or need it. The benefit of this “install, then activate” approach is that it allows you to have a controlled, limited functional change and test the changed units after activating the new functionality. SAP also aims to provide new functionality for well- defined user groups without side effects for other groups.
Second, Support Packages contain only corrections and legal changes; therefore, if you want to maintain the current state of your system landscape SAP’s new enhancement strategy ensures that your systems remain stable and compliant.
This article outlines the underlying concept and technical details of SAP Enhancement Packages. It then explains a procedure for implementing and activating them that will help you minimize maintenance efforts. You will also find information on all relevant guides and notes from SAP throughout the article.
Note
The article assumes that you have a basic understanding of SAP NetWeaver.
What Is an SAP Enhancement Package?
Instead of providing a new release to ship new functionality SAP offers now SAP Enhancement Packages, which contain improved software functionality that streamlines basic business processes, improves employees’ productivity, improves business insight, and enables companies to adapt quickly to changing industry requirements. With SAP Enhancement Packages, SAP offers customers the ability to selectively install and activate new functionality later on demand. To discover and evaluate which innovations are shipped in which SAP Enhancement Package, you can visit the SAP Service Marketplace at https://service.sap.com/erp-ehp (note that this Web site requires logon credentials).
From a functional perspective, SAP Enhancement Packages are built on top of one another. By selecting parts of the latest SAP Enhancement Package, you automatically incorporate the specific content of earlier packages. For example, a customer who wants to install a specific SAP Human Capital Management (SAP HCM) core functionality from SAP Enhancement Package 3 does not need to install SAP Enhancement Package 1 or 2 first. When the customer installs SAP Enhancement Package 3, in this example, the technical package automatically contains the functionalities from earlier enhancement packages.
SAP has made some changes to the technical concept to avoid unnecessary and repeated installation of objects in your system. As of SAP Enhancement Package 4, SAP provides a delta package, so it might be necessary to install the relevant SAP Enhancement Package 3 packages all together without additional downtime. As the tools ensure a smooth installation in one step, there is no additional effort on the customer site related to this minor change.
SAP Enhancement Packages have the same maintenance duration as the underlying core application, SAP ERP 6.0. SAP provides corrections and legal changes via Support Packages for SAP ERP 6.0 on a regular basis during the customer-defined maintenance period and, in parallel, in the “equivalent Support Packages” for SAP Enhancement Packages for SAP ERP. For example, SAP Enhancement Package 3 SP03 is the "equivalent Support Package stack" for SAP ERP 6.0 SP14. This indicates that the corrections delivered in SAP ERP 6.0 SP14 are also delivered in that SAP Enhancement Package 3 SP03. You can find details of the equivalent Support Package stacks (SPS) at the SAP Service Marketplace at www.service.sap.com/sp-stacks. In the future, SAP plans to deliver SAP Enhancement Packages for other SAP applications (e.g., SAP CRM or SAP SCM).
Enterprise services bundles also come with SAP Enhancement Packages. Each bundle contains a set of enterprise services that support an end-to-end (E2E) business process (e.g., order to cash) across the SAP Business Suite. Customers may choose an enterprise services bundle just as they would a new enhancement package functionality.
Technical Details of SAP Enhancement Packages
SAP Enhancement Packages enable you to update a subset of the software components that are part of your SAP ERP 6.0 implementation. For example, you can now update parts of your SAP ECC 6.0 Server. The functional enhancements that you plan to implement drive your selection of software components. For example, you can install the SAP HCM functionality by updating only the SAP Human Resources Extension (SAP EA- HR), version 603 enhancement package on the SAP ECC Server written in ABAP (Figure 1).

Figure 1
With SAP Enhancement Packages, mixed versions of application software components within one system are possible for the first time
The selection of software components results from mapping a selected Business Function to a Technical Usage. For example, Business Function HCM_ASR_Cl_1 is mapped via SAP Note 1083576 to HCM – Administrative Services. An update of the software component of EA-HR 603 is required for the ECC Server.
In Figure 2, you can see the general relationship between the different entities. For example, you can update only one software component of the SAP ECC Server to get the latest SAP HCM enhancements.

Figure 2
Overview of the relationship between Business Functions, Technical Usages, and instances and software components
The selected Technical Usages play a central role because the SAP Solution Manager requires them later on as input to find the correct files from the enhancement package during the maintenance transaction.
SAP Solution Manager’s Maintenance Optimizer automatically identifies the relevant installation packages (potentially including Support Packages) according to the current system status and the chosen Technical Usages. To help you ensure consistency, SAP has bundled ABAP components, Java components, portal content, and SAP NetWeaver Process Integration (SAP NetWeaver PI) content as Technical Usages. Because the entire procedure of implementing Support Packages and enhancement packages is automated, the Maintenance Optimizer also provides a configuration file (also referred to as “Stack XML”) for the installation tools. Table 1 shows you the possible installation tools for SAP Enhancement Packages: Support Package Manager (SPAM)/Add-On Installation Tool (SAINT) update (or simply the SPAM update); SAP Enhancement Package Installer (SAP EHP Installer); or SAP Java Upgrade (SAPJup).
Installation of … on existing SAP ERP 6.0 system landscape | | | SAP Enhancement Package 3 for SAP ERP 6.0 | ABAP: SAINT or SAP EHP Installer* Java: JSPM | | SAP Enhancement Package 4 for SAP ERP 6.0 | ABAP: SAP EHP Installer Java: SAP EHP Installer ** | Upgrade to SAP ERP 6.0 and inclusion of … | | | SAP Enhancement Package 3 or 4 for SAP ERP 6.0 | ABAP: SAPup Java: SAPJup | * Currently only available in pilot program: Please contact Christian.Oehler@sap.com for details. ** If technology update is not intended, you have to use Java Support Package Manager (JSPM). | |
Table 1 | Cases for possible installation tools per SAP Enhancement Package |
Note
The tool you use for a downtime-minimized enhancement package installation is called the SAP Enhancement Package Installer. The SAP EHP Installer uses a system cloning and switch procedure. See Table 1 for more information.
Because SAP uses the Enhancement and Switch Framework to deliver new functionality, the installation of an SAP Enhancement Package has no impact on existing business processes or user interfaces (UIs) as long as no Business Function has been activated. As shown in Figure 3, one single Business Function is activated as part of the installed Technical Usage — the check mark in the box for SAP EA_HR 603 indicates that it has been activated.

Figure 3
Within the EA-HR software component, only one Business Function — HCM_ASR_CI_1 — is activated
However, SAP Enhancement Packages require a defined SAP ERP Support Package Stack, including a certain level of SAP ERP and SAP NetWeaver Support Packages with SAP Enhancement Package 4 also including SAP Enhancement Package 1 for the SAP NetWeaver Application Server (SAP NetWeaver AS) of SAP ECC Server.
You always perform the installation in one step; for example, it is not possible to install a “pure” SAP Enhancement Package 1 for SAP NetWeaver in an SAP ECC 6.0 system. Note that there is an SAP Enhancement Package Support Package equivalence level. Table 2 shows an example of how the concrete relationship between SAP ERP and EHP Support Package stacks would look within one system.
SAP Enhancement Package | Support Package Stack | Based on SAP ERP Support Package Stack | SAP Enhancement Package 4 for SAP ERP 6.0 | 1 | 14 | SAP Enhancement Package 3 for SAP ERP 6.0 | 2 | 13 | 3 | 14 | |
Table 2 | SAP Enhancement Package and Support Package stacks on one system |
Furthermore, you may need to perform a modification adjustment using transaction SPDD/SPAU. If you have made modifications to the SAP code in your system and if you separate the installation of the Support Package stack from the installation of the SAP Enhancement Package into two steps, you need to perform the modification adjustment twice (and, in part, for the same objects) for each installation. Note that in this case the second modification adjustment would partially require the adjustment of already installed corrections because SAP Enhancement Packages also contain a certain level of corrections from the equivalent Support Package stacks. Of course, you should perform a normal regression test (also based on your legal requirements) after the installation, similar to what you normally do after installing only Support Packages.
Implementing an SAP Enhancement Package
Since the SAP Enhancement Package installation process is decoupled from activation, you can now continuously provide the newest functionality to the system along with your regular maintenance activities. To use synergy effects and to minimize effort (especially regarding potentially needed modification adjustments, as just explained), you should apply SAP ERP enhancement packages within one queue, together with the required Support Packages and potentially with enhancement packages for SAP NetWeaver.
Using this strategy, you can install SAP Enhancement Packages without causing disruption as a normal maintenance activity together with Support Packages. From a system landscape or project perspective, keep in mind that all activities must be performed in the normal sequence, for example:
- Set up a sandbox, perform the installation or update (SAP Enhancement Packages and the corresponding Support Package stack), and become familiar with the new functionality.
- Set up a temporary maintenance system for the enhancement package installation project (for emergency corrections), as SAP doesn’t recommend that you allow transports between systems with different structures (e.g., you shouldn’t transport between a system that has software component version 600 to a system that has software component version 603). This is also true for systems with different activated Business Functions (for more information, go to the SAP Service Marketplace at https://service.sap.com/erp-ehp > Media Library).
- Perform installation in the development system (DEV), perform modification adjustments, and so on.
- Perform installation in the quality assurance system (QAS), perform integration test, and so on.
- Perform installation in the productive system (PRD) and during go-live.
In general, you should have most of the procedures already in place because customers regularly implement Support Package stacks.
The Enhancement Framework in a Nutshell
The Enhancement Framework allows you to adapt SAP standard code without modifications in the same system in which pure SAP ERP is developed. At all positions in which the code of an enhancement package adds something to or changes the code of a standard SAP ERP object, the new code is added as an enhancement in its own package and is only merged in at compile time in the original position. This way the enhancement is available at runtime, but the merging does not slow down the application in any way. Figure 4 illustrates how a pre-method and a post-method, which may come with an enhancement package, are added to the method of a global class.

Figure 4
Adding an enhancement via a pre- and post-method to a method of a global class
At runtime, the code in the pre-method (all pre-methods are unnamed) is executed before the code of the method some_method, and the code of the post-method is executed after the code of the method some_method. An enhancement can contain additional code, and it can also substitute the code of an SAP object, as illustrated in Figure 5. You can overwrite a method to replace it. The code of the overwrite method replaces the code of the original method some_method at runtime: In this case the code of the original method some_method is not even compiled. This means only the overwrite method is processed at runtime.

Figure 5
The enhancement method overwrites the code of the original method at runtime
The Enhancement Framework provides different enhancement types. You can:
- Add source code plug-ins at particular code positions or substitute some code.
- Enhance global classes by adding methods, attributes, types, optional parameters, and pre-, post-, or overwrite-methods.
- Add UI elements, pre- and post-methods, navigation paths, and actions, and hide any existing UI element in the Web Dynpro ABAP.
- Implement the new kernel-based BAdI, which is now part of the Enhancement Framework, to improve the performance of the BAdI because the new BAdI is now implemented in the system kernel.
The Switch Framework in a Nutshell
All enhancements of the Enhancement Framework and many other object types are switchable, such as appends or includes for ABAP Dictionary structures and database tables, fixed value appends to domains, secondary indexes for database tables, append search helps, Dynpro screen elements, and flow logic. All you have to do is attach them to a switch. If the switch is turned off, the relevant switchable elements are not processed at runtime and therefore do not affect the performance of the enhanced application in any way. Because elements that are switched off are not compiled, they behave at runtime as if they did not exist. Elements that are switched on behave just as normal code at runtime.
You can also switch a group of enhancements and other switchable objects that make up a particular functionality all at once. It is important that the whole bunch of enhancements and other switchable objects that make up a particular functionality can be switched at once. This way, you need not know how many small additions and substitutions of core code make up a particular functionality. You can choose on a semantic or business driven level to activate the Business Functions needed, and all the dependent switches and the elements are automatically activated. You can only activate a Business Function that is a unit that may contain many switches. It is not even technically possible to activate a switch on its own. By activating a Business Function, a switch is assigned so that the relevant switch is activated. This ensures that the states of many switches that make up a particular piece of new functionality are kept in sync.
As shown in Figure 6, the Business Functions with the check marks are activated, so the switches assigned to these Business Functions are also switched on. As a result, the elements that are controlled by these switches are switched on. They are now compiled and processed at runtime. The screen elements that have been switched on are now part of the respective screens. As you can see, the complexity of the switches and switchable elements are hidden from the user.

Figure 6
Business Functions hide the complexity of the Technical Switches and switchable elements from the user
Step-by-Step Implementation Procedure and Best Practices
There are six steps for installing SAP Enhancement Packages for SAP ERP and implementing the functionality. There are also some best practices that help make the procedure easier and more efficient.
- Get information on the Business Function you need to implement.
- Make sure that all prerequisites are met.
- Map the Business Function to the corresponding Technical Usage.
- Identify and download SAP Enhancement Packages using SAP Solution Manager Maintenance Optimizer.
- Install the required Support Package Stack and include all of the selected SAP Enhancement Package parts.
- Activate the Business Function.
Step 1. Get Information on the Business Function You Need to Implement
You can usually get information on a Business Function from a business expert. If someone tells you to install the whole SAP Enhancement Package, ask that individual which Business Functions he or she wants to use. You don’t need to install the complete SAP Enhancement Package if only a specific component is necessary. The complete SAP Enhancement Package includes ABAP and Java software components, as well as SAP NetWeaver Business Intelligence (SAP NetWeaver BI), SAP NetWeaver Portal, and SAP NetWeaver PI content. You can find the complete list of Business Functions, as well as the mapping to processes and scenarios in the SAP Service Marketplace at www.service.sap.com. If you don’t have logon credentials, you can select the Technical Usages for the ECC from a broader perspective. In the ERP-EHP media library or in one of my latest blogs you can get further information about how to do this (https://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/9880).
Note
SAP Enhancement Packages are a delta shipment for SAP ERP 6.0, so you may need additional technical components (e.g., Search and Classification [Trex]). You can find information in the SAP Notes, online documentation, and the master guide about technical requirements.
Step 2. Make Sure That All Prerequisites Are Met
First, you need to bring your version of SAP Solution Manager up to date. To use the Maintenance Optimizer application, you need SAP Solution Manager 7.0 with the highest Support Package level in your system landscape (minimum of SP 15). The Solution Manager system has to maintain your system landscape. You can find more information about SAP Solution Manager at https://help.sap.com > SAP Solutions > SAP Solution Manager. Make sure that you have installed the latest Support Package Manager (SPAM)/Add-On Installation Tool (SAINT) update in your system.
Typically, no minimal Support Packages level is required in the systems where you install SAP Enhancement Packages. However, you must make sure that you build a valid and consistent queue including the Support Packages, because you need a certain Support Package level on your system. Let the Maintenance Optimizer calculate the necessary and equivalent Support Packages for you. You can include them in the installation queue (the details are explained in Step 4).
Note
If you have an add-on installed in your system, ask your add-on provider whether it is compatible with the SAP Enhancement Package for SAP ERP 6.0. See SAP Note 1117309 – Compatibility of AddOns vs. Enhancement Packages for SAP ERP 6.0 for details on the add-ons that SAP delivers.
Step 3. Map the Business Functions to the Corresponding Technical Usage
Once you have the Business Functions, you have to determine which software components you need. Besides ABAP software components, you might need to update Java components, portal content, or SAP NetWeaver PI content as well. To help you ensure consistency, SAP has bundled ABAP components, Java components, portal content, and SAP NetWeaver PI content as Technical Usages.
For more information about the mapping of Business Functions to a Technical Usage, including the underlying software components contained in SAP Enhancement Packages for SAP ERP 6.0, see the SAP Enhancement Package 3 SAP Note 1083576.
Step 4. Identify and Download SAP Enhancement Packages Using SAP Solution Manager Maintenance Optimizer
If you use the Maintenance Optimizer, which is strongly recommended and already required for downloading Support Packages in general, you only need the name of the Technical Usage to install all the needed software components. Based on that information, the SAP Solution Manager Maintenance Optimizer calculates the necessary software components and Support Packages automatically.
To start the process, create a new maintenance transaction to update your system with SAP Enhancement Packages for SAP ERP 6.0. A guided procedure leads you through the preparation process to update your systems. Select all the systems that are affected by the application of the enhancement package. In the next step of the guided procedure, you select the Technical Usages you want to apply to your systems. The Solution Manager Maintenance Optimizer automatically calculates all the necessary Support Packages and new software component versions needed to install the Technical Usages you have selected. As a result, the Maintenance Optimizer creates the Stack-XML file that the installation tools can read to create a valid import queue.
You can find further information about the Maintenance Optimizer on the SAP Service Marketplace at www.service.sap.com/solman-mopz and on the SAP Help Portal at https://help.sap.com in the Change Management section of SAP Solution Manager documentation. You can also learn more about this tool from the article “Centralize and simplify SAP solution maintenance across your system landscape with the Maintenance Optimizer — an administrator’s guide” by Martin Rink and Stefan Raffel, which was posted to the SAP Professional Journal knowledgebase in January/February 2008.
Note
The software components of SAP Enhancement Packages for SAP ERP 6.0 contain new developments (because SAP partially updates existing software components). Therefore, if you look at your system after applying the SAP Enhancement Package software components, you will find software components in version 600 (e.g., with Support Package 10) as well as software components in version 603 (e.g. SAP Enhancement Package 3 with Support Package 0, which contains equivalent corrections to Support Package 10 of the same component in version 600).
Figure 7 shows the equivalence level between SAP ERP 6.0 Support Packages and the Support Packages for the SAP Enhancement Packages.

Figure 7
Equivalence between SAP ERP 6.0 Support Packages and the Support Packages for the SAP Enhancement Packages
As you can see, equivalent Support Packages are time-synchronized Support Packages for different versions of one software component, for example, 600 SPS13 ~ 603 SPS2.
Step 5. Install the Required Support Package Stack and Include All of the Selected SAP Enhancement Package Parts
In this step, you install the required Support Package Stack and include all selected parts of the SAP Enhancement Package. This requires the use of the appropriate tool for each component. For example, until SAP Enhancement Package 3, you updated ABAP software components using the SAINT tool and updated Java components and portal content using the JPSM tool. As of SAP Enhancement Package 4, you have to use the SAP Enhancement Package Installer (SAP EHP Installer).
Figure 8 shows a screenshot of a system update using the SAP EHP Installer.

Figure 8
System update using the SAP EHP Installer
Step 6. Activate the Business Function
After you install an SAP Enhancement Package, you must activate it. Remember, once you activate a Business Function, you currently cannot deactivate it. Also, note that the activation process starts a job in your SAP system that automatically performs all changes in the system (Figure 9).

Figure 9
Activation process
The underlying switch framework also provides access to the Impact Analyzer and the test case templates — so you can now analyze the impact of the Business Function activation before you actually activate it.
Impact Analyzer
Using the Impact Analyzer, you can analyze which UIs are affected for which roles and users if you activate a Business Function. This enables you to answer the following questions at an early stage, that is, before you activate a Business Function:
- Which training material is affected?
- To what extent does the training material have to be adjusted?
- Which users have to be informed and may need delta training courses?
To use the Impact Analyzer, start transaction SFW5, right-click a Business Function, and choose Impact Analyzer.
Test Case Templates
SAP also provides standard test case templates to ease acceptance tests for selected Business Functions and train end-users. Using these templates you can perform the test preparation more easily and quickly. Because changes in objects are documented for each Business Function by Solution Manager, you can then modify a test case template to narrow the test scope to best suit your business and training needs, which reduces the training effort.
Looking Forward
Now you are able to describe the overall implementation sequence as well as the technical details for SAP Enhancement Packages for SAP ERP. You should also be able to understand the equivalence levels between enhancement and Support Packages. Because SAP now allows mixed software component versions within one logical system, it is important to understand their relationship. For more information, use the documentation provided by SAP, including the SAP Enhancement Package installation guide, master guide, and the corresponding SAP Notes.
Finally, for more information on the new Enhancement and Switch Framework, we recommend that you read “Introducing the Enhancement Framework — a new way to enhance SAP programs without having to modify them” by Thomas Weiss and Michael Acker, which was posted to the SAP Professional Journal knowledgebase in January/February 2008.
Christian Oehler
Christian Oehler has been with SAP since 1999. He initially spent five years as a senior technical consultant and technical project team lead, also leading the Upgrade Focus Group. Now he is in charge of solution management for software lifecycle topics (e.g. upgrades, enhancement packages) within the SAP Business Suite Solution Architecture unit.
You may contact the author at christian.oehler@sap.com.
If you have comments about this article or publication, or would like to submit an article idea, please contact the editor.
Thomas Weiss
Thomas Weiss has a Ph.D. in analytic philosophy and worked as a professional writer before he joined the SAP NetWeaver product management training team in 2001 where his responsibilities included the e-Learning strategy for ABAP. After becoming more involved in writing ABAP material himself, he is now a member of Solution Management of the SAP NetWeaver Application Server ABAP. One of his main interests lies in rolling out ABAP topics both for experts and for beginners by writing weblogs in SDN such as his series on ABAP Unit or his contributions to the weblog series for ABAP beginners series part 3, part 4, and part 7. (You find the whole series with all his contributions here).
You may contact the author at thomas.weiss@sap.com.
If you have comments about this article or publication, or would like to submit an article idea, please contact the editor.