This blog covers what functional architects and functional consultants need to know about the new technologies used to extend and develop SAP solutions. This topic can be difficult to understand because there are so many new technologies, terms and choices. I will focus on SAP S/4HANA and this blog may be useful if you are currently working with ECC systems. It may help you talk to and understand the technical architects and developers you work with.
I aim to give functional people an overview of what they need to know about “Keep the Core Clean”, “Fiori”, “Business Technology Platform (BTP) Extension Suite” and environments such as “Cloud Foundry” and “Kyma”. Along the way, I will provide simple explanations of some of the terminology aimed at functional or business people rather than technical people. I find that most content on these topics is written for a technical audience.
When you move from ECC to S/4HANA there are more choices than before for the development of new features and extensions to the standard solution. These new approaches allow upgrades to be done faster with less cost meaning that new software versions and innovations can be adopted more easily.
The old approach to ABAP Extensions in ECC
Previously, the main route for extensions and developments in ECC was ABAP programming and the related objects. You may have produced functional specifications for extensions and developments in the past.
Developers used transactions like the object navigator (SE80) and BADIs (SE19). Extensions were done in Customer Exits (function module exits, screen exits and menu exits), Business Transaction Events (BTE), Business Add-ins (BADIs) and Table Enhancements (append structures). For new developments, the ABAP language in ECC allows a lot of freedom meaning best practice is not always followed.
These “classic” methods can impact subsequent upgrades to the core software and make large ECC upgrade projects long and resource hungry.
The new approach to Keep the Core Clean
SAP and the SAP ecosystem now advocate an approach called “Keep the Core Clean”. This means migrating to and adopting new approaches to extend the solution. Note: some of these approaches started life in the public cloud version of SAP S/4HANA where SAP executes software upgrades multiple times per year. They are now also available in S/4HANA on-premise and cloud private edition.
Where possible, extensions in the core S/4HANA system are done using:
Side-by-Side Extensibility in BTP Extension Suite
Developer Extensibility: Cloud ABAP Environment embedded in S/4HANA (Embedded Steampunk new in 2022)
1. In-App Extensibility (also known as key-user extensions)
The Custom Fields app and Custom Logic app are used. These provide low code or no code tools for non-developers that allow fields to be added and simple ABAP to be added. The ABAP code is “restricted” meaning that it will not impact the upgrade process.
2. Side-by-Side Extensibility in BTP Extension Suite
Alternatively, extensions are taken outside the core system and done in the Business Technology Platform Extension Suite (previously called the SAP Cloud Platform). BTP is a “platform as a service” solution and runs in the cloud. The BTP Extension Suite allows developers to build extensions or applications with different programming languages e.g., ABAP, node.js and Python. BTP connects to the ERP system (ECC, S/4HANA, cloud or on-premise) through standard SAP Application Programming Interfaces (APIs) in the core ERP system. Using these APIs stops any custom source code impacting upgrades in the core. This is referred to as “side-by-side extensibility”.
S/4HANA Cloud release 2208 and S/4HANA Private Cloud / On-Premise release 2022 add an embedded version of Cloud ("steampunk") ABAP running on the S/4HANA system. All the lessons learnt from side-by-side are brought onto the main platform. This allows extensions and new developments using the latest tools with little or no impact on software upgrades. In September 2022, the API numbers are limited (e.g. 4000 read APIs) but SAP will add more. Customers can request APIs through the Customer Influence portal.
The BTP solution (previously called SAP Cloud Platform) was launched in 2012. Competing platforms are available from other vendors. Six advantages of SAP BTP Extension Suite are:
It can be used for extensions across SAP solutions e.g. S/4HANA and SuccessFactors.
Offers “open” technology meaning developers can use the latest methods, tools, techniques and can reuse non-ABAP code from “open” free to use libraries.
It is truly cloud-native. This means it is optimized for building applications in the cloud without any limitations from older SAP on-premise technology.
It is massively scaleable and can operate on different hyperscalers e.g. Microsoft Azure and Google Cloud Platform.
It has an ABAP environment for cloud that is useful for customers that have ABAP development skills and old ABAP code they want to migrate to the cloud. SAP provides ABAP code to reuse.
You can try it free of charge and then move to pay-as-you-go or onto a subscription.
BTP allows new applications to be built outside the core ERP system. SAP and SAP partners create and sell solutions that run in BTP and are often integrated into S/4HANA. This is referred to as a “modular” approach. For example, SAP Central Business Configuration product is built in the node.js language and runs in BTP.
SAP’s approach to industry specific solutions has changed. Less dynamic industry features close to the core ERP processes are still part of the SAP S/4HANA core. More dynamic and innovative features and solutions are now delivered in BTP as the “SAP Industry Cloud”.
Note: the Business Technology Platform is bigger than the Extension Suite but I have not covered the other areas in this blog. BTP has the Integration Suite which is a cloud alternative to SAP on-premise integration solutions: SAP PI/PO. BTP also covers analytics, database and data management solutions. It includes intelligent technologies (e.g., Artificial Intelligence, Machine Learning and Internet of Things) that were previously branded as SAP Leonardo.
ABAP and the move to SAP S/4HANA
Existing ABAP developments in your ECC system are impacted by a move to SAP S/4HANA. A lot of ABAP code will continue to work the same but some may need to be adjusted. SAP provides tools to find code that needs to be changed and assist in the changes. The changes in the underlying tables are hidden from custom ABAP through CDS Compatibility Views (more on CDSs later). Some ABAP extensions might be moved out of the core to BTP, embedded Cloud ABAP or re-implemented as in-app extensions. This will probably not be possible for all extensions yet e.g., if a suitable API does not exist or a BADI is not available within a published in-app extension. Customers can request APIs through the Customer Influence portal.
Fiori Apps in S/4HANA
In the past, the main SAP ECC user interface was SAPGUI. Year by year, SAP has provided new easier to use role-based Fiori apps as alternatives or replacements of SAPGUI transactions. Fiori app technology is not ABAP specific and not S/4HANA specific and Fiori apps are also available in other SAP solutions. As a functional architect or consultant, it is good to understand a little about the technology used by Fiori transactional apps in S/4HANA. Here are some key aspects.
With SAP’s HANA database technology, came Core Data Services (CDSs). These are data models that allow data to be read and updated without needing to know about the underlying database objects and tables. CDSs are available for nearly all business objects in SAP S/4HANA. These CDSs can be used via published “services”. A commonly used open protocol for services is “OData”. The published service provides an internet URL (web address) that can be used by a web browser app to execute operations. Common operations are to Create, Retrieve, Update and Delete (CRUD) records.
Fiori apps work on the “model view controller” concept. The ABAP programming model for Fiori is used in SAP S/4HANA applications. It uses OData services fed by Core Data Services (CDS). The User Interface can run on any device (e.g., laptop or phone) and is built using SAPUI5 which is a development kit for HTML5 (open code that drives web pages). “Fiori elements” are used that provide common features in the app such as floorplans, icons, messages and paging through lists.
SAP BTP is a multiexperience development platform (MXDP). Gartner classifies SAP BTP as a leader in their MDXP quadrant. What is MXDP and why is it valuable?
As with other technologies, innovation in software development is accelerating and new improved approaches often leapfrog established approaches. The new approaches cannot be ignored because of the competitive edge they provide e.g., lower running costs and higher performance.
SAP BTP provides choices on programming languages and environments. Different languages and environments suit different requirements. Customers may choose to standardize on a particular approach or approaches. Some underlying techniques are common to all approaches e.g., using CDSs and services to work with business objects in S/4HANA.
An environment provides everything required to build, manage, run and update a cloud application. There are 3 main environments in BTP:
Cloud Foundry: this is based on industry standard and open technology for building cloud applications. There is a large choice of programming languages e.g. node.js and Python. Code is deployed in “containers”. Solutions running in containers can be started up quickly and scaled in virtual infrastructure capacity.
Kyma: SAP worked on this “open” environment based on Google’s massively scaleable "elastic" Kubernetes container orchestration platform. Again, there is a choice of programming languages with processes deployed in containers. Containers communicate with each other through a managed “service mesh”. “Serverless functions” is a buzz phrase.
ABAP: The ABAP RESTful Programming Model (RAP) was made available in BTP in 2018. It was previously referred to as ABAP Steampunk and modernizes ABAP for cloud readty development. This ABAP environment is restricted to reduce code that will impact upgrades. The environment only offers the ABAP language and is ideal for customers that want to re-use existing on-premise ABAP code or build enhancements for S/4HANA. RESTful refers to representational state transfer which defines how APIs are used. In this case, they are the services (e.g. OData) based on CDS views.
SAP provide a “Cloud Application Programming Model” (CAP) that is relevant for the Cloud Foundry and Kyma environment. This provides a recommended approach for defining data models, defining services, adding logic and building Fiori apps. As a framework, it provides out-of-the-box solutions for common requirements such as authentication, authorization and country localization. Following the recommendations will avoid lock-in to specific third-party software and make switching to new emerging technologies easier in the future.
“Open source” tools and resources are used by developers in BTP and Steampunk ABAP. For example, in the ABAP environment, developers may use the Eclipse Integrated Development Environment (IDE) software on their desktop with an ABAP Development Tools (ADT) plugin. This is the cloud equivalent of the traditional SE80 transaction. In BTP, developers connect these tools to BTP using the browser based “BTP Cockpit” through a “space” in a “sub account”.
The ABAP RESTful Programming Model (RAP) allows database tables, CDSs and services to defined and built from code in flat text files. It can be used for new developments or extensions. For example, instead of reading tables like MARA directly, developers use CDS views. A write API allows developers to do things like create sales orders by specifying parameters in the API call.
“Annotations” in “CDS Projected Data Model” are used to define user interface parameters like column positions and search parameters. Developers may use GitHub which is a web-based repository to share, version control and collaborate on open source code.
In September 2022, SAP have made the ABAP environment in BTP (aka Steampunk) available "embedded" in the S/4HANA instance. This helps with extensions that would create heavy data traffic between S/4HANA and BTP.
The SAP Business Application Studio IDE is used to build out the front-end Fiori app. Alternatively, a no-code / low-code approach may be preferred using the SAP AppGyver Consumer Pro for web and mobile apps. SAP AppGyver was purchased by SAP in February 2021.
Complete apps are often made available to end-users through the SAP Launchpad Service that runs on SAP BTP. This provides a Fiori launchpad that enables access to apps running on different instances e.g., BTP, S/4HANA and SuccessFactors.