SAP-samples/teched2025-DT261
A TechEd 2025 workshop that extends an SAP-delivered RAP business object with validations, a new field and a custom action, without touching the original.
RAP extensibility lets a consumer add behaviour and data-model elements to a business object its provider has explicitly opened through dedicated extension points, and an extension can only define behaviour for the elements it adds, never override the original. The three exercises extend a pre-generated base business object in that order: determinations, validations and side effects in exercise one, an added CDS field in exercise two, and a custom action on that new field in exercise three, since an action added via extension must follow the field it acts on.
Facts
Where it sits
Who is behind it
In the atlas: maintains 222@SAP-samplesmaintainerAjay SorengContributes to this
In the atlas: contributes to 36@ajaysorengAjinkya PatilContributes to this
In the atlas: contributes to 112@ajinkyapatil8190Andre FischerContributes to this
In the atlas: contributes to 19, wrote 5@anfiscCarine Tchoutouo DjomoContributes to this
In the atlas: contributes to 17, wrote 1@CarineTDIngo BräuningerContributes to this
In the atlas: contributes to 5@ibraeuningerVolker DreesContributes to this
In the atlas: contributes to 9@VolkerDrees6 contributors
What it declares
Every artifact
- Type
- Sample
- Origin
- By SAP
As a sample
- Form
- Workshop or CodeJam material
Connections
Changing delivered behaviour without modifying it
Download
README
quoted from SAP-samples/teched2025-DT261 under Apache-2.0, readTechEd2025 - DT261 - Build on-stack extensions with ABAP Cloud in SAP Cloud ERP
💬Session Overview
This repository contains the material for the SAP TechEd 2025 session DT261 - Build on-stack extensions with ABAP Cloud in SAP Cloud ERP.
It gives you an overview of the RAP extensibility architecture, extension development artifacts and available extensibility features.
Developer extensibility as defined by SAP basically encompasses two main activities:
-
Develop custom code to implement your own business logic.
→ Here you can make use of existing API's from SAP that have been released for that purpose.
-
Extend an existing RAP Business Object so that additional business functionality is added.
→ Such an extensible RAP business object will usually reside in another software components or it is an existing extensible RAP BO that has been delivered by SAP or a SAP partner. By extending the functionality of an existing RAP Business object its functionality can be adapted to your specific business requirements.
🗺️ SAP S/4HANA Cloud extensibility patterns

🗺️ Today‘s focus: On-stack developer extensibility options

🗺️ ABAP RESTful Application Programming Model - Extensibility Overview
Extensibility in RAP (ABAP RESTful Application Programming Model) empowers application consumers to tailor existing applications to meet specific business requirements and processes through RAP extensions. These extensibility features are built with lifecycle stability in mind and ensure a clear separation of concerns between the original business object (BO) and its extensions. Each extension is self-contained and consistently managed by RAP, regardless of whether the BO is managed or unmanaged. By default, a RAP BO is not extensible. To enable extensibility, the original BO provider must explicitly allow it by defining dedicated extension points. These points can be finely controlled, giving precise authority over which parts of the BO can be extended and what types of extensions are permitted.
Once extensibility is enabled, extension providers can enhance the original BO by adding various types of extensions to its data model and behavior. However, they are restricted to only those extension types that the original BO has been configured to support. Attempting to define unsupported fields or behaviors will result in syntax errors in the extension BDEF and related data model extension objects.
From the consumer’s perspective, extensions are seamlessly integrated into both the design-time and runtime environments of the BO. Although extensions are self-contained, they function as part of the overall BO. Importantly, extensions can only define behavior for their own elements and operations—they cannot override or modify the behavior of the original BO elements.
For an architecture overview, see Extensibility Architecture Overview
🛠️ Exercises
The main aspect of developer extensibility is the option to extend an extensible RAP business object that has been delivered by SAP or an SAP partner.
| Overview | -- |
|---|---|
| Exercise: Getting Started: Connect and Logon | Logon to your S/4HANA Public Cloud system. |
| Exercise 1: Extend the behavior of a RAP business object (determinations, validations, side-effects) | You will extend the behavior of the base RAP business object that has been already pre-generated by your instructor. You will learn how to extend the behavior of the base RAP BO by validations, determinations and side effects. |
| Exercise 2: Extend the CDS data model of the extensible RAP base business object | You will then continue to extend the data model with additional fields |
| Exercise 3: Extend the business object with an action | You will continue to extend the behavior of the base RAP business object by adding an action. Since actions can only be added via an extension to fields that have been added itself via an extension, adding an action via an extension must be performed after Exercise 2 |
ℹ️ Further Information
| SAP Help Portal | |
|---|---|
| ABAP RESTful Application Programming Model | The ABAP RESTful Application Programming Model (in short RAP) defines the architecture for efficient end-to-end development of intrinsically SAP HANA-optimized OData services (such as Fiori apps) in ABAP Cloud. |
| RAP Extensibility-Enablement | Explains the concepts of how to enable a custom RAP BO for extension development. |
| Develop RAP Extensions | This site offers how-to information and implementation examples for extending a ABAP RESTful Application Programming Model (RAP) Business Object. |
Let's go to Exercise - Getting Started - Connect and Logon
License
Copyright (c) 2025-2026 SAP SE or an SAP affiliate company and teched2025-DT261 contributors. All rights reserved. This project is licensed under the Apache Software License, version 2.0 except as noted otherwise in the LICENSE file; you may not use any file of this project except in compliance with the License.
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the LICENSE for the specific language governing permissions and limitations under the License.
Details
Sources
Sources are graph entities: the same page may back several entries, and an unreachable source flags every row that rests on it.
Compatibility and provenance
Flavors
“Build on-stack extensions with ABAP Cloud in SAP Cloud ERP” — SAP-samples/teched2025-DT261 — README
History in the atlas
- First seen.
For your agent
- Ref
artifact:sap-samples-teched2025-dt261- JSON
- /artifacts/sap-samples-teched2025-dt261.json
- MCP
- Connecting an agent