3.4 Extensibility in SAP S/4HANA
Every enterprise is unique, not just in the specifications for its products or services, but in its employees, its goals, and thus its business process structures. In the ideal case, business software supports such uniqueness and the resulting differences because these details differentiate the enterprise from its competitors.
To date, SAP has supported differentiation to the greatest extent possible with its software: SAP provided released interfaces and disclosed the source code of the entire application. Moreover, SAP offered SAP NetWeaver Application Server ABAP, which is a development environment in the application system. SAP provided several options for integration with other applications, for example, using SAP Process Orchestration (PO). With this portfolio, SAP has created an optimally customizable solution with scalable enhancement options. Third-party providers also appreciate this extensibility and can deliver supplementary functions for standard SAP solutions. When planning your migration to SAP S/4HANA, you should always pay attention to the solution’s extensibility.
In SAP S/4HANA, SAP has emphasized this extensibility, which has been adapted according to SAP’s simplification philosophy for products. Particular attention was paid to allowing customization without comprehensive programming knowledge but also provide the flexibility required for significant enhancements. In SAP S/4HANA, these concepts were improved. Doing so, disadvantages coming from extending the standard software to individual requirements are minimized. In the past, the high degree of flexibility in SAP ERP could lead to risks that had to be considered individually in each specific case: Comprehensive enhancements entailed projects involving several parties within the enterprise and sometimes implementation partners as well. This, an enhancement could take some time before it could actually be used. When enhancements were implemented, the next risk was in the operation of the software: During the lifecycle of the software, hotfixes and planned updates to the default software are usually installed. Testing modified and custom developments in this constantly updating software lifecycle can involve a great deal of effort.
Consequently, the extensibility in SAP S/4HANA has been adapted to accelerate the implementation of enhancements and reduce the costs of these enhancements. In particular, modifying the default SAP code can be avoided in most cases. For this purpose, SAP S/4HANA provides tool-based enhancement options in the applications themselves, as well as platform-based enhancement options outside the software product. These functions support the following characteristics:
-
Scaled extensibility
The default software can be customized at various levels. For example, end users can personalize their user interfaces and implement their own (restricted) enhancements. Selected experts can be authorized to implement further enhancements that affect the processes of multiple users. At the top level, you can customize the entire application in an implementation project. -
Scaled lifecycle
You can loosely couple enhancements. While enhancements can exchange data with SAP S/4HANA and are merged on the user interface, they can also perform independent software maintenance cycles. -
Openness
SAP S/4HANA includes a vast array of open interfaces, so partners can implement existing enhancements or offer their own enhancements.
[+] Extensibility of SAP S/4HANA
You can customize SAP S/4HANA using various enhancement procedures.
To implement this extensibility, SAP follows two approaches:
Both approaches complement each other and can be combined. Figure 3.9 compares the two enhancement approaches. These approaches are described in detail in the following sections.
Figure 3.9 Enhancement Options in SAP S/4HANA
The in-app and side-by-side approaches involve various levels. The deeper the level, the greater the impact on the software lifecycle. Not all options are available in all deployment options (see Section 3.3.4).
3.4.1 Side-by-Side Enhancements
The characteristic of side-by-side enhancements is that they use SAP Cloud Platform (previously, SAP HANA Cloud Platform [SAP HCP]). SAP Cloud Platform is a PaaS solution from SAP. In addition to the SAP HANA database, this solution contains comprehensive tools for developing, testing, integrating, and operating the software. As a PaaS product, the technical operation of SAP Cloud Platform is ensured by SAP, which reduces the workload on the internal IT department. By default, each new release of SAP software is ready for integration with SAP Cloud Platform.
Enhancements on this platform can be carried out using various implementation approaches, such as Java code, HTML5 commands, and SAP HANA database queries. SAP Cloud Platform does not provide an ABAP development environment. Consequently, this enhancement approach is particularly suited to developing custom user interfaces and integrating additional steps into SAP Standard business processes.
[+] Side-by-Side Enhancements
The enhancement options based on SAP Cloud Platform are ideal for creating custom user interfaces or additional business process steps.
User Interfaces
The SAP Fiori user interfaces are written with HTML5 and are based on central SAP libraries (SAPUI5). The software development process for HTML5 applications differs from the development in ABAP, which is the language used to implement the SAP S/4HANA application logic. Therefore, SAP S/4HANA does not contain a development environment for HTML5. Instead, SAP provides an optimized development environment for SAP Fiori user interfaces via SAP Cloud Platform. In addition to development tools such as an editor, this also includes tools for packaging and deploying the user interfaces developed.
Business Processes
SAP S/4HANA enables you to supplement existing business processes with your own business logic and data. In most cases, you’ll only need to adjust the SAP Standard processes to your specific business requirements. In some cases, however, your processes deviate so much from those of your competitors that this deviation can no longer be mapped by in-app enhancements. SAP Cloud Platform is the ideal enhancement solution here, allowing you to build complex custom applications using Java and then integrate them with SAP S/4HANA. Communication with the platform is via web services.
The PaaS solution already contains the required integration infrastructure for both cases: a central integration middleware with SAP HANA Cloud Connector and SAP Gateway for integration with SAP Fiori. Consequently, SAP Cloud Platform is the optimal basis for enhancements—not only for SAP S/4HANA but also for other applications in the landscape.
Extending SAP S/4HANA via the SAP Cloud Platform uses SAP’s APIs (Application Programming Interfaces), including the following:
- New SAP S/4HANA interfaces:
- Traditional SAP interfaces
The traditional interfaces are included for compatibility reasons and only released for the enhancement of SAP S/4HANA, on-premise. The number of interfaces released is continuously increasing.
3.4.2 In-App Enhancements
In-app enhancements are striking because of their simplicity: These enhancements are implemented in the same system, connections to other systems are not necessary, and latency is reduced. Furthermore, you can use the existing application as a base and use the powerful ABAP Dictionary, which contains the Core Data Services (CDS), to create table views, for example.
You don’t necessarily require any development know-how for enhancements. The following enhancement options are available to users (with increasing capabilities):
The key-user extensibility in particular provides the options shown in Figure 3.10.
Figure 3.10 In-App Extensibility
Enhancements carried out by central key users impact all users of the system, who can in turn make specific adaptations. The traditional extensibility of the ABAP source code is only available on-premise and is mainly included for compatibility reasons.
End-User Enhancements
End-user enhancements can be implemented directly in SAP Fiori applications. These enhancements are user-specific and do not affect other users of the SAP S/4HANA system. Simple enhancements include customizing screen layouts or selection fields, simple column operations, and basic settings for object-based navigation. These enhancements can only be carried out in specifically prepared applications, and you can access enhancements via the cogwheel icon in the application (see Figure 3.11). You can even customize the cogwheel icon in most SAP Fiori screens.
Figure 3.11 End-User Enhancements for User Interfaces
Key-User Enhancements
SAP also provides enhancement options that can partially be implemented using modeling procedures, which is useful when customizing user interfaces or supplementing custom fields or tables. In a new enhancement mode, you only require basic development know-how to modify the calculation logic without directly changing the application code. One of the advantages of this method is that you don’t have to adapt enhancements manually when maintaining your SAP software. As a result, operating costs are reduced compared to traditional, code-based enhancements. In contrast to end-user enhancements, key-user enhancements affect all system users. Remember that a specific authorization is required for these key-user enhancement options. This authorization needs to be defined in the application catalog SAP_CORE_BC_EXT and assigned in accordance with the application role.
[+] Benefits of Key-User Enhancements
Key-user enhancements use modeling rules that will not need subsequent adaptations for maintenance operations.
Key-user enhancement options are selected via SAP Fiori tiles, which are predefined by SAP. Among others, the following options are provided:
-
Customizing user interfaces
Similar to end-user customization, you can change the layout of SAP Fiori applications. Examples include hiding fields, renaming identifiers, rearranging blocks, and creating selection variants. These activities do not require any development know-how. To customize a user interface, in the application that you want to change, select the user icon in the upper left of the screenfirst. You can then change the user interface using the Adjust UI
icon.
-
Field extensibility
In the business contexts provided for that purpose, you can define additional fields for the application to use (see Figure 3.12). Select the User-defined fields and logic tile in the Extensibility group on SAP Fiori launchpad. These fields are not only displayed on the user interface but can also be stored in the SAP data model and are thus available in the database views, for searches, and for other operations.Figure 3.12 Extensibility of Fields
-
Table extensibility
Besides new fields, you can also define and use custom tables in SAP S/4HANA. Similar to custom fields, custom tables are created within SAP S/4HANA and integrated into user interfaces. The application then exchanges data with the tables. A custom table is a special kind of user-defined business object. -
Business objects
You can define specific business objects for your enhancements. Business objects are sets of tables between which you define relationships. In addition, you can point an interface to access this newly created business object. Doing so enables you, for example, to access these business objects when specifying calculation logic. To access business objects, select the tile User-defined business objects in the Extensibility group. -
Adjusting the calculation logic
You may often find it necessary to check the meaning of entered or displayed data, to specify defaults, or to trigger exception handling. Another example of calculation logic adjustments are specific calculation procedures that are not provided in the SAP Standard. In these cases, additional logic can be inserted in the relevant applications. The logic is defined in a code-based implementation via a web editor (see Figure 3.13).Figure 3.13 User-Defined Fields and Logic
In the editor, the syntax is simplified in comparison to traditional ABAP, so that detailed ABAP know-how is not required. For this adaptation, use the tile User-defined fields and logic in the Extensibility section. However, you will require some development know-how to do so. Compared to traditional enhancement options, you’ll be provided with numerous commands and instructions in this tile. You can also save these enhancements and export them to other systems.
[»] Transport of Enhancements
In general, key-user enhancements should be implemented and tested in a quality assurance system first. To transport verified enhancements to the production system, you can follow this export and import procedure: After developing your enhancement, select the tile Manage software collections in the Extensibility group. Next, assign your enhancement to a software collection, which you can then export.
Now, in the target system, select the tile Import software collection in the Extensibility group where can import the previously exported enhancement.
Note that export and import should be carried out by a software logistic administrator, and as a result, this activity requires specific roles with access to the application catalogs SAP_CORE_BC_SL_EXP (for exporting) and SAP_CORE_BC_SL_IMP (for importing).
[»] Additional Enhancement Options
Further options are available in addition to the described enhancement options. For more details, see the section on extensibility in the product documentation at http://bit.ly/v1448031.
Traditional Extensibility
In SAP S/4HANA, on-premise, you can still enhance or even modify the ABAP source code using the tools from the traditional SAP Business Suite, such as the ABAP Workbench. While this approach offers the maximum freedom to develop your own custom enhancements, interactions regarding maintenance operations in the system will often be necessary: When implementing new SAP corrections, you’ll always have to adjust your enhancements to the SAP Notes. As a result, you need to install corrections in close cooperation with your development department.
In addition to these more formal enhancement options, SAP S/4HANA also provides comprehensive applications for defining custom data analyses or creating custom forms.
3.4.3 Checking Custom Enhancements When Migrating to SAP S/4HANA
When you plan to migrate to SAP S/4HANA, you should analyze existing adaptations to the current system:
-
End-user customization
Individual end-user adaptations are lost when you migrate to SAP S/4HANA. Users will have to then customize the new product again, as described in the previous section. -
Generic enhancements for all users
Generic enhancements that are effective for all system users can be implemented when migrating to the new product. The appropriate procedure for this implementation depends on the operating model selected for SAP S/4HANA. You should generally implement these enhancements using the key-user enhancement options, which will result in fewer follow-up costs and which simplify the maintenance of the enhancements.
If the source system is an SAP source system, you should run SAP’s custom code check first. This check identifies custom code in the existing system and generates a task list. Chapter 4, Section 4.2.2, and Chapter 10, Section 10.2, discuss this check in detail.