This repository contains the material for the hands-on session RAP620: Side-by-side extensibility with SAP BTP ABAP Environment.
SAP BTP ABAP Environment (aka Steampunk) allows the development loosely coupled side-by-side extensions for SAP S/4HANA on top of SAP BTP ABAP Environment.
- Requirements for attending this workshop
- Overview
- Business scenario
- Exercises
- How to obtain support
- Further Information
In order to participate in this hands-on session, you must have installed the latest version of Eclipse and the latest version of the ABAP Development Tools (ADT) in Eclipse and you must have a user in a SAP BTP ABAP Environment system.
How to obtain an ADT installation and how to obtain a user in SAP BTP trial check out our Getting started document.
This hands-on workshop will guide you to build side-by-side extensions for an SAP S/4HANA backend system in an SAP BTP ABAP Environment system (aka Steampunk).
You will create your own transactional Fiori elements app with the ABAP RESTful Application Programming Model (RAP) and use remote enabled APIs such as the OData service Product Master Data Including Classification - Read - Serviceprovided by an SAP S/4HANA public cloud system to leverage existing data in SAP S/4HANA thereby extending existing functionality side-by-side in a Steampunk system.
In order to be able to build this scenario in the shared trial systems an OData service will be used that can be consumed using a pre-configured communication arrangement that uses a SAP S/4HANA public cloud.
Our scenario is an inventory application that runs on SAP BTP ABAP environment. This application will use product master data from a shared SAP S/4HANA public cloud system that will be retrieved via calling the OData service Product Master Data Including Classification - Read - Service.
Click to expand!
Create a custom BO for a specific business context and integrate remote OData services
For that, you will build a custom business object with RAP to manage inventory data. The product data is being retrieved from a shared SAP S/4HANA public cloud system using the following remote enabled API Product Master Data Including Classification - Read - Service.
To speed up the development we will use a wizard in ADT that generates the complete stack of a RAP business object based including a table. The fields that should be part of the entities can be taken from existing structures, tables, cds views, etc. that are used as a template.
This allows us to skip writing lots of boiler plate coding that you otherwise would have to write yourself.
The product data is being retrieved from a shared SAP S/4HANA public cloud backend system using the OData Service Product Master Data Including Classification - Read - Service. When using your own SAP S/4HANA cloud system you would be able to consume other remote APIs based on the protocols OData, SOAP, RFC (only private cloud or on premise systems).
You’ll enhance the generated application by enriching it with additonal UI annotations, and display it in a SAP Fiori elements based List Report.
Then you’ll enable the consumption of the remote OData service by enhancing the business object (BO) with a value help that is based on a custom entity and a determination, where both will call the aforementioned OData service.
Your application will finally look like this:
Exercises |
---|
Exercise 1: Generate a starter application |
Exercise 2: Adapt the generated code |
Exercise 3: Consume an OData service |
Support for the content in this repository is available during the actual time of the online session for which this content has been designed. Otherwise, you may request support via the Issues tab.
You can find further information on the different topics here:
- SAP S/4HANA Cloud ABAP Environment
- New ABAP Platform Extensibility Options for SAP S/4HANA
- Embedded Steampunk - Some more details for ABAP developers
- Getting Started with the ABAP RESTful Application Programming Model (RAP)
- ABAP Extensibility Topic Page @SAP Community
Copyright (c) 2025 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, version 2.0 except as noted otherwise in the LICENSE file.