Enhancing the Core Without Modifications (Part 1)

It’s no question. Companies need ERP software that can be continuously enhanced according to the internal tempo of innovation. SAP meets these requirements with SAP ERP 6.0. The SAP ERP application is based on the SAP NetWeaver technology platform and offers a stable, core ERP system that is integrated with all SAP software.
SAP delivers new functionality for SAP ERP with optional enhancement packages. The goal is to keep the core system free of modifications and, wherever possible, to enhance it without changing the coding. SAP created the technical preconditions for this approach with its enhancement framework and switch framework. Both technologies are integrated with the ABAP workbench in SAP NetWeaver.

Budling enhancement technologies

SAP customers have also been able to enhance the core functions of SAP ERP installations with new business and industry-specific functions. SAP provided various modification and enhancement concepts like user exits, customer exits, business transaction events (BTE), a modification assistant, and business add-ins (BAdIs). But the individual concepts used different techniques and implementation tools, and upgrades of the core SAP ERP installation often led to conflicts with the modifications and enhancements.
Now, the enhancement framework gathers the various enhancement options for ABAP source code, function modules, global classes, interfaces, and kernel BAdIs (a further development of traditional BAdIs) under one roof.
SAP applications like SAP ERP can be modified or enhanced in several areas. Source code plug-ins extend or replace specific source code or sections of source code in ABAP programs. New parameters and attributes extend the parameter interfaces of function modules and the attributes and parameter interfaces of global classes. Methods can be enhanced with pre-exits and postexits or overwritten with overwrite exits. User interfaces based on Web Dynpro and ABAP can also be enhanced with user interface elements, new attributes, or new methods.

Enhancements only at anchor points

Regardless of the options, enhancements cannot be inserted at just any point in the source code. They must be inserted at strictly defined locations: enhancement options. The enhancement options create an anchor where new source text or new attributes can be linked. Enhancement options are either explicitly identified or implicitly available.
Implicit standard enhancement options exist within ABAP programming: at the beginning and end of includes, methods, function modules, and form routines and at the end of structures. Customers can use these approaches to enhance SAP ERP with customer-specific fields. For example, an airline could enhance standard fields (family name, first name, and address data) with fields that display additional information like how often a customer books, arrival and departure times, and originating and destination airports. Users set the editor in the ABAP workbench to display the locations permitted for implicit enhancements.
Explicit enhancement options are present only at specially prepared locations. Application developers at SAP specifically define these locations with the ABAP editor. The explicit enhancement options and the related sections in the source code, enhancement sections, can be defined at almost any location in the source code.
The enhancement sections define the sections of code that normally must be adjusted by industry-specific solution portfolios to meet their requirements. Within an ABAP program, special ABAP statements identify explicit enhancement options as enhancement points and enhancement sections. The enhancement mode of the ABAP editor must be used to implement enhancement points and enhancement sections.
Users can also link BAdIs this way. BAdIs have been part of the enhancement framework since SAP NetWeaver Application Server 7.0 and represent explicit enhancement options. BAdIs provide stable interfaces for modification-free functional enhancement of ABAP programs and are one of the most important technologies to adjust SAP software to specific requirements. Developers embed custom program sections in standard SAP programming with defined interfaces. The integration of BAdIs in enhancement framework with new language elements, GET BADI and CALL BADI, has significantly improved their performance.

Combining what belongs together

Enhancements to standard SAP software are usually complex and affect many areas of an application. When SAP adds new functionality to SAP ERP, it must be clear about which enhancements to implement and where. SAP provides many of the basic constructs, such as enhancement points and enhancement sections, so that downstream tiers cannot program them. An enhancement spot must be created before an enhancement point, enhancement section, or a new BAdI is defined. Enhancement spots offer a user-friendly option to combine and manage explicit enhancement options like enhancement points, enhancement sections, and kernel BAdIs in a container. At the same time, enhancement spots provide the structures for an enhancement, because the enhancements (as a BAdI) are developed within the container just as they are to be taken into effect later on in SAP ERP.
Simple and composite enhancement spots exist. A simple enhancement spot always combines exactly one enhancement technology – source code plug-ins as enhancement points and enhancement sections or as BAdIs. Composite enhancement spots combine simple enhancement spots and other composite enhancement spots. The object navigator in the ABAP workbench must be called to create enhancement spots. Unlike explicit enhancement options, implicit enhancement options do not require enhancement spots. They are already present by default and do not need to be defined.
The information system of the enhancement framework, part of the object navigator of the ABAP workbench, provides a good overview of all enhancement options. It allows you to find enhancements quickly and to navigate in their environment. The enhancement builder, also part of the ABAP workbench, is used to create and manage enhancements within the enhancement framework.