Enterprise Resource Planning Blogs by SAP
Get insights and updates about cloud ERP and RISE with SAP, SAP S/4HANA and SAP S/4HANA Cloud, and more enterprise management capabilities with SAP blog posts.
cancel
Showing results for 
Search instead for 
Did you mean: 
boris_gebhardt
Explorer
The SAP S/4HANA Cloud ABAP Environment (Embedded Steampunk) is available for new customers.
Please see Sven Denecken's video and Arpan Shah presenting Embedded Steampunk in the last SAP S/4HANA Cloud update: SAP S/4HANA Cloud 2208: Run Business Efficiently | SAP News Center

Many of you have read Harald Kuck’s blog post https://blogs.sap.com/2021/09/30/steampunk-is-going-all-in/ which explains nicely the benefits and concepts behind Embedded Steampunk.
But we still get a lot of questions from ABAP experts asking what exactly Embedded Steampunk is about.
This blog provides some more details about Embedded Steampunk for ABAP developers. But stay tuned - we are in the final phase of releasing a new SAP community landing page for Embedded Steampunk. Additionally, a comprehensive SAP S/4HANA ABAP extensibility guide will be published soon. All these resources will answer most of your Embedded Steampunk questions.

From classic ABAP extensions to ABAP Cloud development


You all know the Classic ABAP extensibility model which has been used during the last decades to extend SAP ERP systems. It allows ABAP developers to use and even to modify all SAP objects. This is powerful and flexible. But the missing clear interface between SAP code and the extension adds a lot of test and adaptation effort during SAP upgrades – this is a no-go for the automated SAP software updates in the public Cloud.


Classic ABAP extensibility


With the launch of Steampunk (SAP BTP ABAP Environment) SAP introduced a new ABAP Cloud development model which leads to modern, cloud-ready, and upgrade-stable ABAP apps and extensions.

ABAP Cloud development means:

  • Use public SAP APIs (local or remote) released by SAP to access SAP functionality and SAP data.

  • Use public SAP extension points released by SAP to extend SAP objects. Modifications to SAP objects are not supported.

  • Use ADT (ABAP Development Tools) as your ABAP IDE

  • Use RAP (ABAP RESTful Application Programming Model) to build Fiori apps and services. SAP technologies like Dynpro or Web Dynpro are not released for ABAP Cloud development


The ABAP Cloud development rules are enforced via:

  • ABAP compiler and runtime checks: We introduced a new ABAP language version = “ABAP for Cloud Development” for ABAP Cloud. This ABAP language version defines the set of supported ABAP statements (e.g, no CALL SCREEN) and launches syntax- or runtime errors if for example, a non-public SAP API is used.

  • ABAP authorization checks: We redefined the authorizations in the ABAP Cloud developer role. For example, no authorization to change SAP objects.


The ABAP Cloud development model is mandatory for:

  • ABAP apps and extensions built on SAP BTP (Steampunk)

  • ABAP extensions built on SAP S/4HANA public Cloud edition (Embedded Steampunk)


This explains the term Embedded Steampunk. The ABAP Cloud development model of Steampunk is now available “embedded” in SAP S/4HANA Cloud.

SAP plans to support the ABAP Cloud development model (Embedded Steampunk) in the SAP S/4HANA private Cloud and on-premise edition as well. Private Cloud and on-premise customers can decide on ABAP object level whether they want to use ABAP Cloud (Embedded Steampunk) or stay with Classic ABAP extensibility.

ABAP Cloud will provide ONE common and future-proof ABAP development model for side-by-side extension on SAP BTP and for extensions running directly on the SAP S/4HANA stack:

  • Steampunk: Build ABAP Cloud apps and extensions on SAP BTP (side-by-side to SAP S/4HANA)

  • Embedded Steampunk: Build ABAP Cloud extensions on SAP S/4HANA (all editions)


Added value of ABAP Cloud development (Embedded Steampunk):

  • Public Cloud: ABAP Cloud (Embedded Steampunk) is the only option* to develop extensions that should run on the SAP S/4HANA public Cloud edition stack - e.g. because the extension needs proximity or coupling to SAP data, SAP transactions, or SAP apps.
    For all other loosely coupled apps and extensions SAP BTP is the default choice. Here, developers can choose their preferred programming environment (Java, Node.js, ABAP…). ABAP Cloud added the option to build ABAP based apps or extensions on SAP BTP (Steampunk)

  • SAP S/4HANA private Cloud and on-premise edition: ABAP Cloud will be a new option to build upgrade-stable extensions on SAP S/4HANA (Embedded Steampunk) that are ready for the next cloud transformation steps. This complements the SAP BTP extensibility offering and helps to reach a Clean Core.


 *Embedded Steampunk is often combined with Key user extensibility - for details and a comprehensive example please read this nice blog post.

 

Examples and a glimpse into the system


ABAP extension on Steampunk or on SAP S/4HANA public Cloud edition (Embedded Steampunk)


In the public cloud, the ABAP Cloud development model is mandatory for ABAP extensions. The ABAP language version is automatically set to "ABAP for Cloud development" for all custom ABAP objects and cannot be changed. (Here for the custom ABAP class ZCL_BGTEST)


In the public cloud ABAP Cloud development is mandatory



ABAP Cloud development (Embedded Steampunk) on SAP S/4HANA private Cloud or on-premise edition (planned innovation)


In SAP S/4HANA private Cloud and on-premise, ABAP Cloud development will be a recommended option - especially for new ABAP development projects. The ABAP language version of custom ABAP objects  (e.g., an ABAP class) can be changed one by one from Classic ABAP  (= Standard ABAP) to ABAP Cloud (= ABAP for Cloud Development)


In private cloud and on-premise ABAP Cloud development will be a new recommended option



Example for a local public SAP API released by SAP for ABAP Cloud development


The SAP CDS (Core Data Services) view i_product allows to read data (e.g. via a SELECT) from the SAP table MARA (material master). SAP released this SAP CDS view as a local public SAP API for ABAP Cloud development (ABAP language version “ABAP for Cloud development”). The direct access to SAP tables is not allowed in the ABAP Cloud development model.


The released public SAP CDS view i_product



ABAP Cloud development (Embedded Steampunk) – Get syntax errors when trying to use non-public SAP APIs


The ABAP class ZCL_BGTEST in the screenshot underneath uses the ABAP Cloud development model (ABAP language version “ABAP for Cloud development”). The class cannot be compiled because of two ABAP statements containing syntax-errors:

  • Line 23: The SAP function module “POPUP_TO_CONFIRM” is used in the classic Dynpro/SAP GUI world and is no public SAP API in the ABAP Cloud development model.

  • Line 24: Direct access to SAP table MARA is not allowed (use public CDS view i_product – see line 27).



ABAP Cloud development - Syntax errors for non-public API usage

56 Comments
Orsolya
Explorer
0 Kudos
Hello Thomas,

I added a custom field to R_SalesOrderTP with Custom Fields app, but I can't use it in my BDEF extension. (Embedded steampunk, on-prem, 7.57)

What are the restrictions here?


Best regards,

Orsolya

ThomasSchneider
Product and Topic Expert
Product and Topic Expert
Hi Orsolya,

this is a gap, that is on our roadmap to close. Please see the following documentation (section Key User Extensibility and Developer Extensibility) to see the details of which features can be used between key user and developer extensibility).

Best regards,

Thomas

.

 
Jaman
Participant
Hi Experts.

We use S4H On-Prem 2020 version and "I_PRODUCT" is not released here. How do we consume this cds view in abap cloud environment.



Thanks,

Ahamed
krishnakbhat
Explorer

For customers on RISE private edition or on-Prem, what are some key factors to decide where to develop ABAP extensions ?

If customers can develop upgrade stable extensions on embedded steampunk in RISE / On-Prem, any compelling reasons to consider BTP Steampunk for developing extensions?

edit: I already read chapter 3 of the Extensibility guide, but it’s pretty lean in terms of recommendations. From what I see, loosely coupled extensions can also be built in embedded steampunk. 

Frank1
Participant
0 Kudos
Great blog and good to know what's embedded steampunk eventhoug still has no customer project experience for it.
Vivek1982
Explorer
0 Kudos

Hi Boris,

I facing an issue when trying to create RAP artifacts using Generate ABAP repository Objects option on a custom table saved in an ABAP on cloud package created on an On Premise system. This option works in SAP BTP ABAP environment but not working in an on Premise system 2023. I am getting following error - SAP object DDLS R_ZAONLINESHOP cannot be assigned to package ZCUSTOM_DEV_CLOUD. 

Is this option not enabled in S4HANA on premise system or i am missing any other setting?? 

 

Thanks,

Vivek