ABAP Cloud FAQ
In the following we provide answers to the most common questions on ABAP Cloud, clean core, key user extensibility, SAP BTP, ABAP environment (aka Steampunk), developer extensibility with SAP S/4HANA Cloud ABAP Environment (aka Embedded Steampunk), public APIs and the 3-tier extensibility model.
ABAP Cloud
No, ABAP Cloud can be used in SAP S/4HANA Cloud Private Edition and SAP S/4HANA on-premise as well. Usage of ABAP Cloud in these SAP products is recommended (with 3-tier model) but not mandatory.
The ABAP Cloud capabilities are covered by corresponding developer licenses in SAP S/4HANA Cloud, public and private editions and on-premise. No additional costs apply.
ABAP Cloud is available in the following products and releases:
- SAP BTP ABAP Environment: all releases (mandatory)
- S/4HANA Cloud Public Edition: since 2208 for new customers (mandatory)
- S/4HANA Cloud Private Edition: since 2022 (recommended, 3-tier model)
- S/4HANA on-premise: since 2022 (recommended, 3-tier model)
No, the technology and content (SAP S/4HANA APIs and so on) are only available for release >= 2022.
In SAP S/4HANA 2020 and 2021 the language version of ABAP development artefacts can be changed. In SAP S/4HANA 2022 the language version of all development objects (including ABAP Dictionary objects) can be changed. In the ADT tools the corresponding language version is called "ABAP for Cloud Development".
See also ADT support for ABAP Cloud.
General: customers should use RAP, ABAP CDS, the ABAP development tools or Eclipse where applicable.
Releases older than 2020 (aka 2009)
The 3-tier model is not supported in these releases. Use recommended classic extensibility techniques and custom code management for on-stack extensions (see chapter 5.3 in the Extensibility guide)
Release 2020 (aka 2009) and 2021 (aka 2109)
Follow the 3-tier extensibility model recommendations as for the 2022 release (described in the Extensibility guide), but the following changes apply for Tier 1
- Use a structure packages (no software component) for Tier 1
- Use ABAP Standard language version (not ABAP for Cloud Development) in Tier 1 and use the ABAP test cockpit to enforce ABAP Cloud rules
- Use Tier 2 wrappers to access local SAP objects. There are no validated released local SAP APIs in these older releases.
Release 2022 or newer
Follow the Extensibility guide.
Yes, more details are documented in the guide ABAP Cloud - Technical Use Cases and Recommended Technologies.
No, non-public SAP CDS views need to be wrapped and released for ABAP Cloud development by the customer.
Yes, more details are provided in the guide ABAP Cloud API Enablement Guidelines for SAP S/4HANA Cloud, private edition, and SAP S/4HANA. In addition the blog Classic APIs for Tier 2 ABAP Cloud Development in SAP S/4HANA Cloud Private Edition provides information which classic SAP APIs must be used for development of custom wrappers.
No, it is possible to create only objects of object types that are allowed for ABAP Cloud. If this does not work properly in your SAP S/4HANA 2022 system, please implement the SAP Note 3300493 - Enforce Language Version 5 in ABAP Cloud.
Calculation views cannot be used to enforce the clean core rules. CDS and AMDP (ABAP managed database procedures) provide a good scope and shall be used instead.
Currently, read access is supported only. Write access is planned as well but requires proper enablement on the SAP HANA layer.
The basic concepts of RAP extensibility can be found in the Extensibility Guide. Further information is available in the RAP Extensibility online documentation on SAP Help Portal.
Custom tables can be defined with the ADT in Eclipse tools, see the Create Database Tables online documentation on SAP Help Portal.
It depends on the use case. Simple field extensibility use cases should be handled with the key user tools. More complex extension scenarios should be implemented with the ADT tools. "When to use what" is explained in the Extensibility Guide.
Like modifications implicit enhancement spots should be avoided as an extension technology. Details are in the Extensibility Guide (p.30).
RAP is the default programming model in SAP S/4HANA to build Fiori apps, services and local APIs. For the public cloud scope SAP S/4HANA plans to expose RAP facades for the main SAP object types (business objects).
The answer differs for SAP S/4HANA Cloud, private and public editions. The target architecture of a modernized SAP S/4HANA Cloud, public edition core is 100% based on the SAP Fiori / SAP UI5 architecture stack. Currently, both editions contain classic and SAP Fiori based apps.
Clean core
Clean core describes a system or a landscape of systems that is as close to standard as possible, while running cloud-compliant extensions and integrations. It allows you to adapt your system and system landscape to changing business requirements and in order to adopt new capabilities. The main dimensions of clean core are
- Keep competitiveness while reducing complexity of business processes
- Decouple extensions from standard
- Control data according to latest standards
- Keep the landscape reliable and flexible during integrations
- Keep the operations effective and efficient
A strong governance is required for each technical dimension of clean core.
ABAP Cloud is fully compliant with the clean core design principles for extensions that are fully decoupled from SAP standard, cloud-ready and upgrade stable. ABAP Cloud is the development model to build clean core compliant business apps, services or extensions. ABAP Cloud based on released objects and public APIs and extension points. Testing efforts are dramatically reduced.
Clean core compliant ABAP extensions can be developed also on stack in SAP S/4HANA by means of key user and developer extensibility (based on Embedded Steampunk). On-stack development with ABAP Cloud is highly recommended by SAP for tightly-coupled custom scenarios and use cases.
Yes, the ABAP test cockpit helps to identify such issues. See the Extensibility Guide (p.26) and the blog How to make your custom code cloud-ready and upgrade-stable for more details.
In SAP S/4HANA on-premise and SAP S/4HANA Cloud, private edition mitigations for missing APIs/extension points and existing legacy code are needed: Please see the 3-tier extensibility model described in the Extensibility Guide.
See the Extensibility Guide. There are tools for custom code remediation and ABAP test cockpit to analyze the code and to provide solution proposals (replace MARA access by I_PRODUCT access), but the clean core transformation is manual, especially for bigger changes like transforming from Dynpro to SAP Fiori.
SAP BTP ABAP Environment (aka Steampunk)
Tightly coupled extensions run very well on Embedded Steampunk. However, for a decoupled extension that has its own lifecycle, or targets a separate user group (no ERP users), or integrates with several ERP systems and cloud services, or is a partner SaaS application or standalone Code Vulnerability Analyzer (CVA), or if you want to leverage the multi-tenancy capabilities a side-by-side approach is beneficial.
SAP BTP is optimized to build and run business apps and to integrate with SAP solutions (for example, the extended SAP S/4HANA system).
Since June 2023 SAP BTP ABAP Environment for Microsoft Azure has been available in all seven SAP BTP-supported data centers. See the blog SAP BTP ABAP Environment on Microsoft Azure for more details.
Key user extensibility
BAdIs can be implemented using key user extensibility (Custom Logic Fiori app) or developer extensibility (ABAP development tools for Eclipse). The differences are:
- The implementation with key user extensibility is in ABAP language version ABAP for Key Users, the implementation with developer extensibility is in ABAP language version ABAP for Cloud Development. This results in a different ABAP language scope.
- With key user extensibility only the number of possible implementations is limited:
- If the BAdI has no filter, only one implementation is supported
- If the BAdI has a filter, multiple implementations are supported, but the filter conditions must not overlap.
In the 3-tier extensibility model, tier 1 consists of 3 parts:
- Developer Extensibility (aka ABAP Cloud Development aka "Embedded Steampunk")
- Key User Extensibility
- Side-by-side extensibility
Technically developer extensibility and key user extensibility are differently implemented and consequently they are separated by software component and package hierarchy:
Developer extensibility objects (aka ABAP Cloud Development) are created directly by a developer in a software component and packages which have ABAP language version ABAP for Cloud Development. Consequently all objects must have ABAP language version ABAP for Cloud Development.
Key user objects are generated by key user tools (typically one extensibility item which you create in key user tools consists of many objects). These objects reside in packages that are separated from packages from developer extensibility (and from classic extensibility) and they are managed completely by the key user tools. The packages have ABAP language version Standard and the objects have either ABAP language version Standard of ABAP for key users.
We recommend to consider SAP Note 2478895 - ATO Package Lost in Upgrade.
In general, objects developed with developer extensibility (ABAP language version ABAP for Cloud Development) and key user extensibility objects are separated. But there are some exceptions that are described in the following blog post Layering of Key User Extensibility and Developer Extensibility and in the SAP Help Portal documentation Key User Extensibility and Developer Extensibility.
Developer Extensibility, SAP S/4HANA Cloud ABAP Environment (aka Embedded Steampunk)
Embedded Steampunk is a new extensibility option for ABAP developers available for SAP S/4HANA Cloud Public Edition (version 2208) and SAP S/4HANA 2022 (both Cloud, private edition and on-premise) often referred to as developer extensibility (in contrast to key user extensibility). Embedded Steampunk allows to develop ABAP-based extensions which are cloud-ready and upgrade-stable avoiding adaptation efforts after an SAP upgrade or version change. Embedded Steampunk enables the development of tightly coupled extensions directly on the SAP S/4HANA system. SAP offers a public interface consisting of released objects and local public APIs that extensions can use to access services offered by the underlying ABAP platform and the SAP S/4HANA business objects. Extensions are implemented with the help of the ABAP RESTful Application Programming Model (RAP).
Embedded Steampunk is not an instance of SAP BTP ABAP Environment (Steampunk) embedded into an SAP S/4HANA Cloud subscription. Embedded Steampunk is an extensibility option offered by SAP S/4HANA Cloud that inherits all capabilities of Steampunk such as RAP, the development against upgrade-stable public APIs and released objects and extension points. A developer logs on directly to the SAP S/4HANA Cloud system and develops ABAP extensions directly on top of the SAP S/4HANA technology stack. Both Steampunk and Embedded Steampunk are based on the ABAP Cloud development model.
No, the technology and content (SAP S/4HANA APIs and so on) are only available for release >= 2022.
Extension apps and extensions to SAP objects in Embedded Steampunk run on the same SAP S/4HANA Cloud technology stack. Therefore, they can have a performance impact like in private cloud or on-premise deployments and need to be implemented carefully.
Extensions implemented in Embedded Steampunk run on top of the SAP S/4HANA Cloud technology stack. All requests against local public APIs and released CDS views are executed directly on the SAP S/4HANA Cloud application server. Roles in the underlying SAP S/4HANA Cloud system can be reused. This approach is optimal for tightly coupled extensions.
Yes. See details in the blog How to use Embedded Steampunk in SAP S/4HANA Cloud, private edition and in on-premise.
As of SAP S/4HANA 2022 on-premise customers can configure "Embedded Steampunk” in their SAP S/4HANA system as described in the Set Up Developer Extensibility online documentation on SAP Help Portal.
Public APIs
No, tightly coupled extensions shall be implemented with Embedded Steampunk following the 3-tier model and wrappers.
Customers can request missing APIs through the SAP Influence channel: https://influence.sap.com/sap/ino/#/campaign/2759
No changes are made to the signature of an API that are incompatible (requiring adaptation) from a customer point of view. The underlying implementation might change, but the semantics of the interface remain unchanged.
SAP released the list of Classic ABAP Cloud APIs,which can be leveraged in the Cloud API enablement layer (tier 2). See the blog post Classic APIs for Tier 2 ABAP Cloud Development in SAP S/4HANA Cloud Private Edition.
Default for new APIs is OData v4 based on RAP. All published OData V4 APIs on SAP API Business Hub are based on RAP. It is not planned to migrate all existing OData V2 APIs to V4 in a single effort. This will be an iterative process whenever API changes are required.
3-tier extensibility model
Customers should follow the guidelines as laid out in the Extensibility Guide (chapter 6): retire unused code using the custom code management tools, renovate or innovate existing code to be ABAP Cloud compliant.
Yes, customers should follow the guidelines laid out in the new Extensibility Guide.
Authorizations should be set up so that developers use the language version "ABAP for Cloud Development". In addition, ABAP test cockpit checks should be regularly scheduled. Details are explained in the Extensibility Guide.
RAP brings a lot of advantages: reduction of TCD, standardization, stateless model with draft-based context, one business object for several exposure channels, standard programming model for SAP S/4HANA and so on.
Testing after an upgrade especially in private cloud and on-premise deployments are still necessary, but the upgrade effort can be dramatically reduced when adhering to the 3-tier model. In public cloud customers can opt-in for a test upgrade to detect upgrade issues at an early stage.
SAP Fiori is the standard UI technology for tier 1. Key user adaptations also belong to tier 1.
SAP objects which are not released can be wrapped into a custom object (of tier 2) which can be released for cloud development. For more details how to accomplish this see the guide ABAP Cloud API Enablement Guidelines for SAP S/4HANA Cloud, private edition, and SAP S/4HANA.
Yes, we plan to provide tool support to migrate BOPF based Fiori apps to a RAP compatible model (the result of this migration will be a RAP wrapper).
ABAP Test Cockpit will help you to control usage of ABAP Cloud within the 3-tier development. For more details see the blog How the ABAP Test Cockpit supports you to adopt ABAP Cloud.