This fall, all of SAP's industry solutions (IS) will be integrated into mySAP ERP 2005. Now every time SAP issues upgrades to mySAP ERP, the industry solutions will get upgrades as well, rather than the traditional model where IS upgrades occur one release later. What's more, thanks to new switch and enhancement framework technology within mySAP ERP 2005, it will be possible to reuse functions of more than one industry solution in a single mySAP ERP system. Enhancements will also become much simpler and more efficient to implement.
The benefits of this consolidation of the various industry solutions within the core — and the ability to have multiple industry solutions in one system — are staggering: No longer will SAP customers need to administer and manage a separate system silo for
each industry solution. And with the added efficiency of modifications and enhancements, organizations can react more quickly to the changing demands
of their specific business.
SAP Industry Solutions
To meet the requirements of a particular industry, such as oil and gas, aerospace and defense, media, telecommunications, or health care, SAP created specialized industry solutions to run on top of the SAP R/3 core system. Today, SAP offers industry solutions in more than two dozen different categories.
SAP's industry solutions represent the known best practices within a given business; however, business is always changing, and there is always pressure to innovate and look at the business landscape in new and different ways.
How Industry Solutions Enhance SAP R/3
SAP industry solutions have been designed to meet the specific demands of an organization, based on the particular business processes of their industry — be it banking, high tech, media, or mill products. Industry solutions modify and enhance the SAP R/3 system in the following ways:
- Adding industry-specific fields to SAP R/3 tables or Data Dictionary (DDIC) structures
- Adding new SAP R/3 tables specific to an industry
- Extending core function groups with industry-specific function modules and added parameters to each function module
- Extending core ABAP classes with industry-specific methods and additional parameters similar to function groups
- Extending and modifying existing screens with industry-specific fields and processing logic
- Adding industry-specific subscreens and flow logic to existing screens
- Adding industry-specific screens to a core module pool
- Extending customizing views with industry-specific fields
- Modifying SAP R/3 code with industry-specific code segments
- Adding data declarations
Beyond Industry Solutions:
The Dilemma of Modification
While industry solutions provided more specific functionality, many SAP customers found they still had requirements that could not be fulfilled without further customizing or personalizing the industry solution. To this end, SAP initially provided user exits — predefined hooks into the SAP R/3 system to achieve specific functionality.
Many customers still required more functionality than user exits could provide, so SAP developed Business Add-Ins (BAdIs), a powerful enhancement technology that allowed for multiple implementations of a
given interface in parallel. With the introduction of SAP R/3 Enterprise in 2000, SAP dramatically increased the number of Business Add-Ins it provided. Bolstered by the excellent reception this technology received,
all subsequent SAP R/3 Enterprise extension sets have relied heavily on the Business Add-In concept.
But Business Add-In technology can only work if the core maintains all the interfaces required by the various industry solutions, and a given industry solution reasonably could require dozens of interfaces. For times when neither user exits nor BAdIs will do — for example, when a sequence of screens needs to be completely rearranged 'sAP has tools to enable modifications of the industry solution, or even SAP R/3.
SAP provides a "modification assistant" that records
all the modifications. Code insertions and changes
are tagged with a special syntax that make them easier
to identify and, if necessary, to undo. Once the
new code has been tested on a development system,
it is transferred to the production system.
These customizations provide valuable functionality, but they can become a burden when SAP ships a new support package or upgrade to SAP R/3. To implement the additional functionality,
it becomes necessary to overwrite the modified copy of the SAP R/3 systems and, as a result, the modifications are lost.
This is why the modification assistant records all modifications in a log table. The modification assistant automatically reapplies the code changes to the patched or upgraded SAP R/3 system. This process, however, is not seamless.
If changes to the original code are substantial, it is unlikely that the modification will be reinserted automatically.
Further complicating matters was SAP's practice to issue patches and upgrades to industry solutions one release cycle after the similar patch and upgrade to the core SAP R/3 system was issued, which occurred because the industry solution and the SAP R/3 core were not maintained in parallel. In addition, SAP developed industry solutions independently of each other, making it possible for two different industry solutions to modify the same code within the core SAP R/3 system in different ways. This complexity would make it nearly impossible for a company to merge two industry solutions into one SAP R/3 system.
Solving the Modification Dilemma
SAP's solution to managing modifications and industry
solutions — the switch and enhancement framework — combines
several different approaches that have to be used
with care, but when applied correctly bring in compelling
advantages with respect to both cost reduction and
early adoption of innovative technology such as SAP
In the future, SAP will ensure that both core and industry solutions are developed in the same system landscape, meaning that all development objects are changed as originals. No modification takes place.
BAdIs do not go away. The core and industry solutions can still be linked by a Business Add-In where the core provides the interface and each industry solution a particular implementation. But not all 'industry modifications' can be handled by BAdIs, so SAP will enable enhancements as 'source code plug-ins.' These will be predefined places in the core that allow an industry solution to plug in source code of its own. To prevent conflicts of enhancements from multiple industry solutions, each solution will be associated with a switch, which will determine which enhancement should be used.
I'll discuss switches in more detail later in the article.
Before the introduction of source code plug-ins,
the core was not aware of any industry solutions
at all. Business Add-Ins, for example, invoked functionality
in non-core layers. Now with source code plug-ins,
additional code from an industry solution is processed
directly in the core system. The original development
object is now under a "shared" responsibility. If
this shared responsibility is not intended, a clean
interface for a Business Add-In needs to be maintained
and supported by the core developer. The industry
developer in turn must make sure that his or her
enhancement point does not do any harm in the core
system, meaning the enhancement has no effect as
long as an industry solution has not been activated.
Before we drill down into the details of how the switch and enhancement framework works, it's important to again bear in mind the staggering benefits of this consolidation of the various industry solutions within the core:
- Previously separated release cycles of core and industry solutions are now synchronized, and mySAP ERP 2005 physically contains all the industry-specific code. This allows for the reuse and sharing of functions between the different industry solutions. Currently only one industry solution can be
activated in the customer system.
- Legal requirements can be met in a timely fashion.
- All industries can benefit from the attractive functionality of mySAP ERP.
- Industries can adopt evolving technologies, such as SAP NetWeaver, much earlier.
- The system landscape can be simplified dramatically. In the past, each industry solution required its own landscape with development, consolidation, quality assurance, and translation. Today, all the industry development takes place in one system.
The Enhancement Framework
Since the potential now exists for a single system to contain more than one industry solution, industry-specific code requires additional care. The enhancement
framework unifies all the enhancement technologies that have been invented over time for the classical SAP R/3 system. Figure 1 explains how the enhancement framework represents a significant improvement over user exits.
|Call of customer functions in SAP's ERP code
||Invocation of business methods defined with stable interface
|1:1 mapping between ERP and customer
||Multiple implementations supported by different industries or country versions
|Maintenance in customer name space
||Each layer (industry, country, customer) has a separate name space
|Execution slow due to generation of code
||Fast execution, since enhancements are defined in ABAP but executed in the kernel
|Separate maintenance transactions
||Maintenance built into the tools of the ABAP Workbench, seamless navigation
||Integrated testing through switch setting active for one client
|Comparing User Exits and Enhancements
In the enhancement framework, industry-specific
code is maintained through source code plug-ins,
specifically defined places where code can interact
with the core. New ABAP statements "ENHANCEMENT POINT"
and "ENHANCEMENT SECTION"' mark the insertion of
industry-specific code or replacement of core code
|Enhancement Framework in ABAP: Adding Industry-Specific Code
To better manage sections of industry-specific code, the ABAP Workbench organizes these code sections inside the Object Navigator, pointing to the various locations, or enhancement points, where an industry solution has changed the core (see Figure 3). Business Add-Ins have likewise been revamped to fit into the overall enhancement framework.
|Enhancement Points in the ABAP Workbench
While the enhancement framework contains enhancement points — hooks, if you will — for those best-practice solutions that have won acceptance within a specific industry, there are
many solutions that require new or cutting edge technology. To employ those solutions, SAP has created the switch framework.
The Switch Framework
The enhancement framework works hand in hand with the switch framework. Figure 4 shows the basic architectural diagram of the switch framework. On the left, you see business function sets, which we will discuss in the next section. On the right are the existing code bases (both core and industry solutions) that are contained in the repository. Packages act as containers for development objects.
|Switch Framework Architecture
Between the business function sets and the packages
are the technical switches. A switch stands for a
collection of development objects to be "switched
on."' If a development object is switched on, it
exists actively in the core system. If a package
is switched on, all development objects that belong
to that particular package are active inside the
system. Different development objects may be associated
with the same switch. Turning on a switch is typically
a customizing activity during the implementation
phase of the system.
Business Function Sets and Business Functions
To make switch framework handling easier, and to better group the individual switch settings,
SAP is also introducing business function sets and business
functions. A business function set corresponds to an industry solution. Each business function set is a group
of business functions, and each business function group consists of a set of switch settings, the maintenance of which is shown in Figure 5. By means
of business functions, several industry solutions (represented by different business function sets) may share a common set of business functions with identical switch settings.
|Defining and Activating Business Function Sets
Switching on a business function set is a customizing step that occurs after installation. It is
easy to switch on a business function set, but after you do so, keep in mind that many structures, fields, table appends, etc. become activated.
What Can Be Switched?
Every development object, more or less, will be 'switchable.' What follows is a list of development object categories, and how they work within the switch framework:
- ABAP packages — All development objects contained in the package inherit the switch setting of the package
- Append structures — Industry-specific fields contained in a DDIC structure, which is appended to a core table, will be 'switchable'
- Domain fixed values — Industry-specific additional fixed values for a given field can be switched
- Function groups — Additional function modules or industry-specific parameters,
which allow the ability to retrofit a lot of industry functionality into the core (see Figure 6) will be switch-enabled
|ABAP Editor — Switching Function Modules
- ABAP classes — Like function groups mentioned above, methods can be added along with industry-specific method parameters, and all appear assigned to a switch
- Menu entries and menu functions — Entries/functions added will become switch-enabled
- Screen fields — Fields added to the screen, or added subscreens, as well as the flow logic required to process the additional fields will all be 'switchable'
- Viewcluster — Industry-specific fields can be added and are switches
Summary and Outlook
The switch and enhancement framework enables SAP customers to maintain both core functionality and industry solutions within the same system landscape. For those industry-specific functionality
solutions that have won wide acceptance as best practices, SAP will
build hooks using the enhancement framework. The switch framework,
by comparison, will serve for the
up-and-coming solutions or for those solutions only useful to a very narrow or specific customer set.
The switch and enhancement framework represents major capabilities of
the ABAP stack that developers can look forward to in mySAP ERP 2005. More importantly, SAP is committed
to providing upgrades to its industry solutions simultaneously with its core system, which will come as welcome news to thousands of our customers
who look to SAP to help them solve their business problems, enable business opportunities, and reduce the total
cost of ownership for their technical infrastructure.
For more information on the switch and enhancement framework, please visit www.sdn.sap.com.
Framework - Frequently Asked Questions
Q. What is the switch framework?
The switch framework is a technical framework
residing in the ABAP stack of SAP NetWeaver
2004s (the basis for mySAP ERP 2005). The
switch framework controls what development
objects are active in a system. Each ABAP
package can be assigned to a switch. The
switch settings determine whether a development
object that belongs to a switched package
is active. If a package is not assigned to
a particular switch, it is considered a standard
ERP package. Switched packages represent
different industry solutions in a system.
Elements of a standard development object
may be switched as well. Thereby, an industry
solution can add an industry-specific field
to a standard screen or ERP table.
Q. Why did SAP invent the switch framework?
In the past, industry solutions modified
the SAP R/3 core much as a customer would
modify the system (using the modification
assistant). This procedure leads to delayed
release cycles, since industry solutions
are always delivered one release later than
the core release. As a result, customers
have less impetus to adopt new technology
such as SAP NetWeaver. Furthermore, industry
solutions require additional maintenance
since the customer must merge their modifications
with every core support package. Also, legal
requirements cannot be met in a timely fashion.
To mitigate these challenges, SAP invented
the switch framework.
Q. When will SAP introduce the switch framework?
The switch framework is part of the SAP
NetWeaver 2004s ABAP stack (7.0), which is
the foundation of mySAP ERP 2005. Ramp-Up
will start in the last quarter of 2005. For
the first time, the standard core and industry
solutions will be delivered at the same time.
Q. Where do I find the switch framework inside
The switch framework is tightly integrated
into the tools of the ABAP Workbench, so
there is no need to learn new tools. For
example, in the Screen Painter you will find
an additional field attribute that determines
the associated switch if the field does not
belong to the core but is part of an industry
solution. You'll also find places inside
the ABAP code where code has been inserted
or replaced based on a particular industry
solution's needs. The available technical
switches are maintained in customizing transactions,
and the switch settings are activated during
implementation of an industry solution.
Q. What are the benefits of the switch framework?
The maintenance of industry solutions is
greatly simplified, resulting in lower TCO.
Having multiple industry solutions allows
organizations to combine and reuse their
functionality, and all industry solutions
can now be developed in parallel in one system.
Q. How does the switch framework relate to the
While the enhancement framework contains
modification points for those best-practice
solutions defined within a specific industry,
the switch framework addresses all those
aspects of an industry solution that have
no special interfaces defined in advance.
Karl Kessler joined SAP in 1992. He is the Product Manager of the SAP NetWeaver
foundation including SAP Web Application Server, Web Dynpro, ABAP Workbench, and
SAP NetWeaver Developer Studio, and is responsible for all rollout activities. You can reach him via email at