SAP S/4HANA is built on SAP HANA, which is the platform for all existing and future new SAP business applications. It consumes the modern design principles provided by the SAP Fiori user experience (UX). Because of the central position of SAP S/4HANA for existing and new SAP users, the extensibility and adaptability of the SAP S/4HANA solution should be in focus to fulfill your business requirements.
To support these requirements from one side, SAP S/4HANA provides a massive simplification of data models, business processes, and user interfaces (UIs). From the other side, innovations such as the Internet of Things, Big Data, business networks, and support of any devices (mobile-first strategy) help businesses running in the digital economy. Regarding SAP roadmaps, both requirements can be supported by different platforms, components, and services.
The extensibility concept in SAP S/4HANA allows you to modify its functionality and to provide new business functionality. The extensibility can be categorized into two main parts: in-app extensibility and side-by-side extensibility.
In-app extensibility is realized through built-in capabilities of SAP S/4HANA to extend the SAP standard solution in the same ABAP-based system running in on-premise and cloud editions. In both editions SAP S/4HANA natively integrates new extensibility tools that provide support to change and adapt the UI layout and context, add customer-specific fields and tables, and create new and extend existing analytical reports and required business logic.
Side-by-side extensibility is realized through the SAP HANA Cloud Platform, which runs side-by-side with the SAP S/4HANA system and allows the extension of existing business functionality. Additionally, the SAP HANA Cloud Platform allows you to build new business applications that are loosely coupled to ABAP-based SAP S/4HANA. Finally, you can use the SAP HANA Cloud Platform’s capabilities to build completely new SAP Fiori-based UIs that you can integrate with other on-premise or cloud applications from SAP.
I explain both extensibility features and the deployment options and give a practical overview of the solutions, technology, and implications to the daily lives of enterprise, solution, and technical architects, as well as the developers planning to extend or modify SAP S/4HANA business functionality.
SAP S/4HANA – Definition and Editions
The modern business application needs to allow for the simple, fast, and flexible adaptation of business functionality to meet constantly changing business requirements. Therefore, these aspects are in the focus of SAP S/4HANA.
Companies can often achieve a competitive advantage with optimization of business processes using, for example, customer-specific extensions of the running business applications. Users can extend the functional scope (e.g., by adding custom-specific application logic, creating new business models, or integrating other solutions) and extend the individual reach (e.g., by enabling access for more internal and external users or offering mobility solutions).
One of the main features of SAP S/4HANA is its support of system consolidation called SAP One Platform, which should allow for a significant total cost of ownership (TCO) reduction. Additionally, SAP S/4HANA is an open platform; this means you can integrate SAP S/4HANA with Big Data using native integration functionality inside the SAP HANA platform. For example, you can integrate the SAP system with Hadoop, Sybase IQ, or any other raw or column-oriented data storage application and use the data without replication inside the business applications. This integration extends the data volume available for deployed business applications.
The SAP S/4HANA solution is natively designed to support real-time data processing and therefore there is no batch processing required to prepare aggregated business data that is used in business transactions or reports. This functionality is guaranteed because the solution runs on the SAP HANA platform only. It uses integration of the supported capabilities, such as libraries for business and predictive analytics, text mining, and geolocation data.
SAP S/4HANA uses the new SAP Fiori UI to provide an improved and simplified user front-end based on HTML5 for any desktop and mobile device. Business users can leverage a simple role-based user experience based on modern design thinking principles, thereby minimizing training efforts and increasing user productivity.
SAP announced the SAP S/4HANA Enterprise Management version 1511 in November 2015. It was previously known as Simple Logistic or sLog. This solution supports new innovative and non-disruptive solutions for existing and new SAP users and allows the modern enterprise to optimize investment planning. This is valid if you recognize the newest and previous versions together with previous versions (e.g., 1503 and 1506) of SAP S/4HANA that offers the following choices of deployment, so-called on-premise and cloud editions.
The SAP S/4HANA on-premise edition provides a business scope that is similar in terms of coverage, functionality, industries, and languages with the SAP Business Suite. It includes the simplifications delivered with SAP S/4HANA Finance (version 1503 – March 2015, e.g., SAP Accounting powered by SAP HANA) and integration with SuccessFactors and the Ariba network.
The SAP S/4HANA cloud editions (version 1506 – June 2015) already cover specific business scenarios for the marketing line of business (see SAP S/4HANA, cloud marketing edition) and for the professional services industry (see SAP S/4HANA, cloud project services edition). They also cover the most essential scenarios to run an entire enterprise (see SAP S/4HANA, cloud enterprise edition) in the cloud with a digital core, including finance, accounting, controlling, procurement, sales, manufacturing, plant maintenance, Project System, and Product Lifecycle Management. They also provides integration with SuccessFactors Employee Central, the Ariba Network, SAP hybris Marketing, Fieldglass (planned), and SAP Jam.
The SAP S/4HANA cloud edition requires an initial setup using guided configuration utilities. In these cloud editions, where SAP is responsible for the operations including the software change procedures, the amount of flexibility is limited compared with the flexibility of the on-premise edition. For example, the customer modifications on SAP objects are not allowed in these editions. Accordingly, you should consider the transition into the cloud editions more as a new implementation. For more detail see “The Road to SAP S/4HANA.”
The on-premise edition has a broader functional scope offering full flexibility in terms of customization, adaptation of business requirements by new reports, UIs, and custom code. The edition can be installed in a local data center or can be operated in SAP HANA Enterprise Cloud as a managed cloud (also in a third-party managed cloud environment).
Extensibility Concept of SAP S/4HANA
The SAP NetWeaver technology platform enables on-premise extensions. Because SAP S/4HANA can be also deployed in the cloud as software as a service (SaaS), the extensions may face even more challenges compared with the on-premise extensions. For example, they allow flexible adaptation of systems and supported processes while keeping the implementation and operation costs of the data center down. They attempt to find a balance between standardization of supported business solutions and the differentiation required by users. To manage this kind of customer-specific business expectations in 2016, SAP plans to provide a new set of tools and platform-based methodology that can be used to adapt the SAP S/4HANA cloud edition to custom-specific requirements.
The in-app extensions are implemented in the same SAP S/4HANA system (SAP HANA platform, ABAP application layer, or UI layer) deployed on premise or in the cloud. Depending on the deployment, you can distinguish between the extensibility of classic and managed extensibility.
The classic extensibility is supported for the S/4HANA on-premise edition (that is deployed in local data center or in managed cloud). It allows for modification of the whole SAP S/4HANA solution. This means the customer or partner can use already existing development tools (e.g., ABAP Workbench (SE80), SAP HANA studio, and ABAP in Eclipse).
(Note: In SAP S/4HANA some development functionality is provided in the ABAP in Eclipse environment only. This means the ABAP Workbench does not yet support the full use in ABAP of all SAP HANA capabilities. For example, the new business functionality in SAP S/4HANA, especially the heavy data-centric calculations, should be performed in the SAP HANA platform [code-push-down approach] and may require the use of scripting procedures in SAP HANA.)
Managed extensibility is supported for SAP S/4HANA cloud editions. The customer and partner can provide new or modify existing business functionality provided in ABAP-based SAP S/4HANA standard applications. SAP introduced the new concept of managed ABAP to simplify the complexity of modifications and increase the stability of cloud editions. This can be understood as a simplified version (a subset) of standard ABAP that is designed for the cloud with additional development restrictions.
SAP S/4HANA provides user extensibility for small changes and extensions because in many installations, users want to make small adaptations and increase user productivity without changing major parts of business processes. This extensibility typically could be implemented by adding custom fields and tables, adding or changing business logic (e.g., business rules or user exits), or modifying and personalizing the new UI based on SAP Fiori.
Finally, the SAP S/4HANA solution includes the extensibility capability called side-by-side extensibility in the on-premise and all cloud editions. The side-by-side extension is based on the SAP HANA Cloud Platform. This means SAP provides a public cloud environment for users to develop new business functionality that can be integrated with SAP S/4HANA on-premise and cloud solutions. This is because the SAP HANA Cloud Platform is a complete development platform designed to be 100 percent compliant with open standards (for example, using open source software from Eclipse and Apache). The side-by-side extensions are loosely coupled with core SAP systems (e.g., SAP S/4HANA, SAP Business Suite on SAP HANA, and even the SAP Business Suite on anyDB).
Figure 1 presents the concept of in-app and side-by-side extensibility supported by the SAP S/4HANA on-premise and cloud editions.
In-app extensibility capabilities of SAP S/4HANA on-premise and cloud editions (based on information from SAP SE)
In the on-premise deployment the extensibility is very similar to the extensibility of SAP Business Suite on any-DB and allows modification of all SAP S/4HANA layers: database (SAP HANA), application, and UI layer (see the upper part of Figure 1).
This means there is no restriction to the creation and modification of SAP S/4HANA artifacts. However, be aware of the potential consequences that are mainly visible during system migration. For example, Simple Finance 1.0 and 2.0 bring a simplified data model. They require additional custom-code adaptation if the user implements a direct update of the finance or controlling tables in SAP Business Suite on SAP HANA or on SAP Business Suite on anyDB.
This is because SAP simplified the data model, removed some physical tables in S/4HANA, and replaced them (using the same name) with SAP HANA views that support the read-only operation (no data modification). Therefore, the best practice in an SAP S/4HANA system is to use official SAP functions to modify any data in all SAP S/4HANA modules. The same requirement is true for modification of SAP code and the creation of custom code using managed ABAP in SAP S/4HANA cloud editions.
On the other side, in the cloud edition, the existing extensions have to be re-implemented using the concepts and methods defined in the key user extensibility or managed extensibility of in-app extensibility capabilities. Additionally, the SAP S/4HANA extensibility allows use of the side-by-side functionality supported in the SAP HANA Cloud Platform, where access to SAP objects is defined through public application program interfaces (APIs) only. Deciding on which option to choose (in-app or side-by-side) should be done after analysis of the pros and cons of both extensibility options.
Side-by-side extensibility provides maximum freedom of implementation. This means it is not limited regarding integration with any SAP S/4HANA deployment or in-app extensibility option. However, you should consider the additional questions that are related to the required data replication and integration, and user authentication and authorization. You may realize that the ability to influence the internal transactional process in SAP S/4HANA is limited using side-by-side extensibility and therefore SAP still supports the in-app extensibility for these kinds of business requirements.
Figure 2 presents the technology and languages used in particular extensibility options of SAP S/4HANA. As mentioned already, the SAP HANA platform is the only database supported by SAP S/4HANA. Therefore, the adaptation to the customer requirements can also be supported by the artifacts supported by SAP HANA (e.g., Core Data Services [CDS]) SQL scripting, use of Application Function Libraries [AFLs], text mining, and integration with geolocation capability).
Technology overview of SAP S/4HANA extensibility (based on information provided by SAP SE)
You can also use the in-app extensibility of the ABAP language to create new or to modify existing business logic. In the presentation layer, the new UI uses SAP Fiori, which is built on HTML5 technology.
Figure 2 also shows the business-related extensibility of the on-premise and cloud-based solution using the integration with other SAP applications such as Ariba, Concur, Fieldglass, hybris, and SuccessFactors. This kind of functional extensibility is supported in the standard delivery of all SAP S/4HANA editions.
Now I take a closer look at the in-app extensibility to understand what happens with the customer code and the SAP partners’ extension in the SAP S/4HANA solution.
In-App Extensibility of SAP S/4HANA
The in-app extensibility is realized in the SAP S/4HANA system through built-in capabilities. It allows extensions provided by the SAP standard solution in the same ABAP-based system running in the on-premise and cloud editions. In both editions SAP S/4HANA natively integrates new extensibility tools that provide support to change and adapt the UI layout and context, add custom-specific fields and tables, and create new and extend existing analytical reports and required business logic.
The field extensibility describes the creation of customer-specific fields in the SAP S/4HANA ABAP-based system, which allows use of the UI adaptation mode of launching the add field functionality. This functionality is especially convenient for power users and business experts supporting a simple dialogue in which the field properties can be created, edited, or translated (e.g., modification of data type, label, code list values, and text).
The SAP S/4HANA extensibility tool can use the integrated information about modifications to generate all necessary software artifacts. The new tool can maintain SAP HANA database tables and application structures that are enhanced by using the Data Dictionary objects extension. Additionally, the tool can be used to extend the appropriate CDS views, integrated SAP Fiori search functionality, and generated OData services that are related with the added or modified field.
The modifications and generated fields are also visible to the application logic. This logic needs to be updated manually if you don’t use some generic code or function in ABAP code dealing with all the fields in the particular table or structure. If the tables and structures are used in several applications that are part of the same business process, the modification is visible to all applications. A mapping of the custom fields can be defined by the business user through simple rules.
Be aware of the fact that the use of many fields (e.g., complete use) in tables and structures may slow down the performance in SAP HANA. There is a maximum width for tables on the database. This is important information for the table extensibility that describes how the customer-defined field can be added to the existing SAP-provided table. The benefit of this extensibility is an automatic visibility of the field in the generic defined business logic implemented in ABAP and SAP HANA (e.g., using CDS or SQL scripting).
The next aspect of table extensibility is the creation and modification of custom-specific tables in the SAP HANA platform. The concept proposes use of API functionalities to support create, read, update, and delete operations (CRUD) in SAP S/4HANA. These operations should be realized using API classes, CDS views, and OData services that are created in the SAP HANA database.
This means developers in SAP S/4HANA should avoid the use of a direct SQL operation in the business logic and instead use the existing SAP system’s functions to modify data in SAP-provided tables and the custom-defined functions for the custom tables. This is especially important when you consider the modification of business applications running in SAP S/4HANA cloud editions. SAP provides the new concept of managed ABAP, which should guarantee the increased stability of the cloud solution.
The next level of extensibility is the business logic extensibility. It supports the enhancement of the behavior of applications and processes. This extensibility allows faster and more flexible adaptation of processes and custom-specific checks. It also enables you to adjust the process steps to current business requirements. In practice, this kind of functionality and business logic extensibility is realized, for example, by modification of application code (ABAP code), by implementation of user exits in the SAP S/4HANA system, or by the adaptation of business rules (if applicable by SAP-provided functionality).
The modification of application code is typically performed in SAP S/4HANA systems by ABAP developers and experienced business users. They use tools such as the ABAP Workbench (SE80), ABAP in Eclipse, or web-based editors to perform modifications. The web-based editors provided for SAP S/4HANA also include features such as syntax coloring, syntax check, code completion, element information, and integrated test support. A typical example is the Web Editor, which supports the traditional development of SAP Fiori applications and also provides a set of templates to generate the ready-to-run applications.
To ensure system stability in the cloud editions, the ABAP feature set is reduced. Therefore, SAP plans to provide a new syntax check to support managed ABAP. In the first releases of SAP S/4HANA the check includes the expressions, control and flow statements, variables, and tables. Additionally, the code-based enhancements are planned to be available to enable access to:
- Public CDS views (e.g., a read access through Open SQL)
Mathematic and string libraries
Connectivity in the SAP HANA Cloud Platform through the SAP HANA cloud connector as integration of the in-app extensibility with side-by-side extensibility
SAP S/4HANA allows the use of Business Rules Framework Plus (BRFplus) to support business logic extensibility — for example, to support business users having a different view on development artifacts (e.g., rule-based definition) than software developers (e.g., code) to adapt the business logic that can be integrated in the UI adaptation mode.
The adaptation mode is used to support the UI extensibility for SAP Fiori UIs (typically transactional and fact sheets SAP Fiori apps) to adapt the UI layout. That includes the ability to add, hide, or move fields in a form; define new and hide filters; define table variants; and modify or rename labels.
The area of extensibility is the report extensibility that provides an end-user analytical flexibility in SAP S/4HANA (e.g. adapt simple lists and multidimensional reporting, key performance indicator (KPI)-based reporting, and dashboards). The adaptation capability included in the analytical SAP Fiori applications helps the user in the entire modification process and does not require basic technical knowledge. The same is true for the adjustment of the reporting-relevant data sources using open CDS views that are supported by the SAP HANA platform. This means that defining reportable data for a report by selecting fields from the underlying tables does not require a programming effort. It is supported by SAP S/4HANA modelling tools (e.g., in SAP HANA studio that supports all SAP HANA-relevant artifacts).
The report extensibility includes the ability to create new data sources based on standard data sources. You can use them in attribute, analytic, and calculation views, as well as for creating joins, unions, and projections. Therefore, based on a standard and custom-defined data source, the user can create or modify queries that are implemented as a specific type of open CDS view, key figure, or change field label.
From the UI side, the user is able assign or un-assign queries to specific users or roles. Additionally, the end user can personalize the report using the extensibility and adaptability features embedded in the SAP Fiori UI. For example, you can personalize the report layout by adapting the columns (add, hide, and personalize names), adding simple column calculations, and defining selection filters that apply for current queries and sub-queries.
You can also extend and modify the print forms maintained through the Adobe LiveCycle Designer and the email template extensibility. You could, for example, consume the OData services in Adobe forms that use the extended fields or tables.
Figure 3 is an overview of the scenarios supported by the in-app concept in SAP S/4HANA. It shows the system layer where the extensibility is taking place (see the green marked areas with their respective meanings). The in-app extensibility options are marked with I (see I1 to I5).
Overview of scenarios supported by in-app extensibility
The blue segments present the UI, OData service, application, and database table layers that are delivered by SAP in both the on-premise and cloud SAP S/4HANA editions. In the UI layer you can modify the SAP Fiori applications directly in the ABAP-based SAP S/4HANA system using the in-app extensibility (see I1).
The in-app extensibility supports the adoption of the data structures in the database tables, application logic, and OData services (see I2 and I5), the analytic artifacts (e.g., CDS - see I2), forms (see I3), and business logic (see I4) in the application layer. The application logic in Figure 3 is implemented in ABAP and the SAP HANA platform. This is because a new SAP code push-down approach allows the split of the business logic between the ABAP application server and the SAP HANA platform. Therefore, the heavy data-consuming business operations should be implemented in the SAP HANA platform, and only the results should be exposed to the SAP NetWeaver ABAP server for further business logic-oriented processing.
Let’s summarize. In the SAP S/4HANA on-premise edition you can modify all the current data definitions and business logic just as you did in the past in the Business Suite on SAP HANA or anyDB. However, you should consider the complexity that may arise during system migration due to potential adaptation of SAP-provided standard business structures (fields, tables, and views), business logic (ABAP, CDS views, business rules), and UI elements.
To increase the stability of the systems and simplify system migration, SAP introduced the new managed ABAP approach (especially in the SAP S/4HANA cloud editions). It clearly defines the rules for access from business logic to the physical tables and views. Additionally, starting with SAP HANA and continuing in SAP S/4HANA, SAP provides new tools that simplify the handling of modifications — for example, exposing the modifications to the higher application layers and even generating and activating the correlated development artifacts.
Side-by-Side Extensibility in SAP S/4HANA
The second type of extensibility supported by SAP S/4HANA is the side-by-side extensibility. This extensibility allows the user and SAP partners to define any kind of new business applications and extend existing ones without disruption. You can use the SAP S/4HANA side-by-side extensibility to integrate business processes provided in SAP S/4HANA with other cloud SAP applications — for example, SuccessFactors, Concur, Fieldglass, hybris, and Ariba — and with third-party business applications.
It is used to develop all kinds of business applications allowing a high degree of flexibility. It can significantly reduce the development costs using a set of services — for example, integration with a cloud portal and SAP Jam, document service, mobile services, and security and identity services. Additionally, it supports the designing and building of new SAP Fiori UIs for existing on-premise and cloud solutions using a browser-based tool (SAP Web Integrated Development Environment [IDE]).
This extension is based on a platform-as-a-service (PaaS) approach built on top of the SAP HANA Cloud Platform. It is available for the development of new business applications. The SAP HANA Cloud Platform defines flexible subscription models, such as instant access to the full SAP HANA platform including SAP HANA modeling capabilities, integration with geolocation or spatial services, text mining, and advanced and predictive analytics.
Figure 4 is an overview of the scenarios supported by the side-by-side extensibility concept in SAP S/4HANA. As in Figure 3, it shows the system layer with green marked areas where the modifications are taking place. The side-by-side extensibility options are marked with the letter S (see S1 to S5).
Overview of scenarios supported by side-by-side extensibility
In the UI layer you can create or modify SAP Fiori applications in the SAP HANA Cloud Platform using side-by-side extensibility (see S1 and S2). The S1 presents the SAP Fiori applications that do not have a business logic in the SAP HANA Cloud Platform but that use the business logic exposed by the SAP S/4HANA ABAP system (see S3). In this case an existing OData service can be consumed or an OData service can be created to expose a data structure and the business logic.
The S2 section shows the SAP Fiori applications that are delivered together with business logic implemented in the SAP HANA Cloud Platform. The new business application (see S4) can cover the implementation of a new OData service, the business logic in the application layer, and a new data structure in the database table layer. The new business application could be developed as a Java application running on the SAP HANA platform (the SAP HANA Cloud Platform provides a new Java application server) or native SAP HANA applications that are deployed and run directly in SAP HANA.
(Note: The detailed description of Java and native SAP HANA applications in the SAP HANA Cloud Platform is out of scope of this article.)
Finally, the new created business logic in the SAP HANA Cloud Platform can be directly called or consumed from the business logic extension in SAP S/4HANA (see S5 and the respective call to OData service in SAP HANA Cloud Platform). This allows smooth integration of both editions and their extension to support one integrated business process.