Exploring Extensibility Options

Objectives

After completing this lesson, you will be able to:
  • Name the extension scenarios in ABAP Cloud.
  • Describe developer extensibility in RAP.

Extension Scenarios in ABAP Cloud

The importance of Extensibility in Enterprise Resource Planning (ERP)

Extensibility is a key capability of every Enterprise Resource Planning (ERP) solution. It enables customers to create a competitive advantage by customizing their business processes and allows partners to enrich ERP with tailor-made solutions. The importance of extensibility has been confirmed for SAP's on-premise ERP and remains valid for the more standardized cloud ERP.

SAP S/4HANA is SAP's flagship product providing the intelligent ERP in the cloud and on-premise.

The main reasons for extensibility projects are:

Add Scope

Add additional functionality to meet business needs not covered by the solution so far.

Extend Reach

Reaching the right people in the right places is crucial. It holds true for end-user scenarios and for opening up solutions, for example, to subsidiaries or new employee groups.

Optimize

Business needs change faster nowadays. Therefore, optimization of business processes is a key capability that often goes hand-in-hand with the extensibility of the existing solution.

Innovate

A key differentiator in modern business is innovation speed. A rich extensibility portfolio helps to pave the way from a value-adding idea to a usable solution with minimal effort.

Therefore, SAP must provide an extensibility model that allows customers to consume SAP innovations smoothly, leading to future-proof extensions that are ready for the next cloud transformation steps.

Pros and Cons of classic extensibility

During the last decades, SAP's on-premise customers and partners have used classic ABAP extensibility to extend their ERP solution. Even though classic extensibility defines clear and stable interfaces for extensions, their use is not enforced. ABAP developers can use and even modify all SAP objects. It is powerful and flexible but adds a lot of customer-specific test and adaptation effort during SAP upgrades.

In the public cloud, there are no customer-specific SAP upgrade projects. Instead, automated software updates run for all customers in parallel. Therefore, classic extensibility, based on classical custom ABAP code, can no longer be used.

SAP S/4HANA Cloud Public Edition provides a new upgrade-stable cloud extensibility model that clearly separates SAP code and extensions. As this extensibility model overcomes the major drawbacks of classic extensibility, SAP provides this extensibility model for all SAP S/4HANA editions to achieve smoother upgrades everywhere and to pave the way to the cloud.

Difference between the three main extensibility options

ABAP Cloud only supports extensibility techniques that maintain the stability and upgradeability of the core system.

We distinguish the following main extensibility options:

In-App Extensibility (Key User Extensibility)

Key user extensibility in ABAP Cloud enables business users to adapt and enhance SAP applications directly within the system, without needing deep technical expertise. This approach uses in-app tools and Fiori apps, allowing users to add fields, create custom logic, and design simple reports and forms, all while maintaining the integrity and upgradeability of the core system.

Developer Extensibility

Developer extensibility in ABAP Cloud empowers professional developers to create complex, tailored solutions by using ABAP Development Tools (ADT) and the ABAP Platform. This approach allows developers to build advanced custom applications, integrate with other systems using APIs, and extend standard SAP functionality, all while ensuring robustness and separation from the core system.

Side-by-Side Extensibility

Side-by-side extensibility in ABAP Cloud refers to the approach of developing and deploying custom applications and extensions alongside, but separate from, the core SAP system. This method uses the SAP Business Technology Platform (BTP) to build and run extensions, ensuring that the core system remains stable and unaffected by custom developments. Side-by-side extensibility is useful for creating complex, loosely coupled extensions that can integrate with the core system through APIs, providing flexibility and minimizing the risk of disruption to standard SAP processes.

Note

In this course, we only discuss the developer extensibility and in particular the extensibility of RAP business objects. For the other extensibility options, see course S4D425 – Extensibility for SAP S/4HANA.

Developer Extensibility in RAP

Various RAP extensions

RAP supports modification-free extension of business objects, projections, interfaces, and business services.

The RAP extensions enable you to extend existing RAP BOs from other software components or SAP delivered RAP BOs to optimize and adapt their functionality to your specific business requirements. 

Examples for RAP extensions are as follows:

Data Model Extension
  • Add fields to the database tables
  • Add fields to the CDS view entities
Behavior Extension
  • Extend field mappings
  • Add determinations, validations, actions
  • Extend determine actions
  • Add additional save logic
  • Add nodes to the composition tree
Service Extension
  • Expose additional entities
  • Expose other business objects
Basic restrictions for the extension of RAP business objects

There are some basic restrictions for the extension of RAP business objects.

First of all, there are no implicit enhancement options. The extensibility options depend on the extensibility enablement of the original business object. For new development objects, extensibility is disabled by default and must be enabled explicitly.

Even if the enhancement of a business object is enabled, access to the elements of the original business objects remains restricted. There are exceptions, but generally, the enhancement must not reference elements from the original business object. It reduces the risk of conflicts and inconsistencies. In particular, the developer extensibility of RAP business objects only supports adding functionality. It does not support the removal or overwrite of existing functionality.

A comparison between the two tasks of extensibility, i.e. extensibility enablement and extensibility provisioning

When talking about RAP extensibility, we distinguish between two tasks:

Extensibility Enablement

Extensibility enablement is performed by the developer of the original business object. It comprises the definition of possible extension points end controlling the scope of future extensions.

Extensibility Provisioning

Extension Provisioning is done by a developer of a customer or partner. It comprises the extension of an original or already extended RAP BO using the defined extension points.