Skip to Content
Product Information
Author's profile photo Boris Gebhardt

Embedded Steampunk – Some more details for ABAP developers

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%20ABAP%20extensibility

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%20public%20cloud%20ABAP%20Cloud%20is%20mandatory

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%20private%20cloud%20and%20on-premise%20ABAP%20Cloud%20is%20a%20recommended%20option

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%20released%20public%20SAP%20CDS%20view%20i_product

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%20Cloud%20development

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

Assigned Tags

      54 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Lars Hvam
      Lars Hvam

      As a developer without access to a system with Embedded Steampunk, how is it possible to identify the objects that are released?

      I would like to use released objects on lower releases, if they exist, so the code I'm writing today is compatible with Embedded Steampunk.

      Author's profile photo Wolfgang Janzen
      Wolfgang Janzen

      For "SAP BTP ABAP Environment" (aka "Steampunk") there's the option to use a trial system.

      Starting point: https://developers.sap.com/trials-downloads.html resp. https://account.hanatrial.ondemand.com/trial/#/home/trial

      There's even a tutorial provided.

      Author's profile photo Lars Hvam
      Lars Hvam

      For Steampunk, most released objects are listed at https://abapedia.org/steampunk-2208-api/

      But I don't know of a way to list released objects in Embedded Steampunk(SAP S/4HANA Cloud) without access to a system. I find it important that already today, all developers in lower releases starts aligning towards the released objects.

      Will there be a free public trial for Embedded Steampunk in the last SAP S/4HANA Cloud ?

      Author's profile photo Alexander Rother
      Alexander Rother

      Hi Lars,

      the public local APIs for Embedded Steampunk can be inspected on the SAP API Business Hub > S/4HANA Cloud > Developer Extensibility (https://api.sap.com/products/SAPS4HANACloud/developerextensibility/bointerface). There you currently find RAP Business Object Interfaces and BAdIs. Likewise, released CDS views can be found under SAP API Business Hub > S/4HANA Cloud > CDS Views (https://api.sap.com/products/SAPS4HANACloud/cdsviews/cdsviews)

      These sections will be extended continuously with newly released objects.

      Please also have a look at the product documentation on SAP Help to get more information about CDS Views and Developer Extensibility in SAP S/4HANA Cloud.

      Best regards,
      Alexander

      Author's profile photo Lars Hvam
      Lars Hvam

      Classic Steampunk have released objects of types(and more?):

      • Classes
      • Interfaces
      • Table Types
      • Data Elements
      • Domains
      • Structures (TABL)
      • Type Pool(ABAP)
      • and a few XSLT

      does none of these object types have released objects in Embedded Steampunk on SAP S/4HANA Cloud ? I would expect the released objects on S/4 to be a superset of classic steampunk?

      Author's profile photo Alexander Rother
      Alexander Rother

      Hi Lars,

      very good point, of course the objects that are released on Steampunk are also available in Embedded Steampunk in SAP S/4HANA Cloud. You can find more information in the corresponding section of the SAP Help documentation.

      The focus of the released objects listed on the SAP API Business Hub is on business object-related object types.

      Best regards,
      Alexander

      Author's profile photo Thomas Fiedler
      Thomas Fiedler

      As an interim solution you can check the content of note: https://launchpad.support.sap.com/#/notes/3088062

      This includes a table of successor informations ("old API" -> released API),
      e.g. MARA -> I_PRODUCT

      Our goal is to provide this information in a human and machine readable format in near future.

      Regards,

      Thomas.

      Author's profile photo Lars Hvam
      Lars Hvam

      Thanks, I've noted that 150+ BAPIs are mentioned in the "old API" column, does SAP consider BAPIs to be deprecated/obsolete?

       

      https://help.sap.com/docs/ABAP_PLATFORM_NEW/166400f6be7b46e8adc6b90fd20f3516/4dd3d01ec1b964dfe10000000a42189e.html mentions

      Once a BAPI has been developed and released by SAP, its interface definition and parameters remain stable in the long term. This ensures that an application program is not affected by changes in the underlying SAP software and data.

      If BAPIs need to be enhanced, for example by adding optional parameters, SAP can do this without affecting the stability of existing applications. At the same time new applications can benefit from the enhanced functions.

      Author's profile photo Thomas Fiedler
      Thomas Fiedler

      BAPIs will most likely not be released for ABAP for Cloud development. Read access to business data will be available via CDS views. Updates via RAP facades.

       

      Author's profile photo Radoslaw Chudziak
      Radoslaw Chudziak

      "Updates via RAP facades" - is this mentioned somewhere in documentations or any of the learning courses?

      I understand that USING BAPis won't be possible to do it in the cloud version, but in the on premise we may still need to be required to use a BAPI as I don't think all available BAPIs have been replaced by RAP facades.

      When working with RAP I noticed it is not the best tool to work with BAPIs, especially where you have a Parent->child relationship and have to pass them to the BAPI at the same time e.g. BAPI_PO_CREAT1. There is still no example how to do it. BOPF FIORI apps would be using a draft table and then converting it to an active instance on 'SAVE'  (although this is not released to customers - so it is a hack!).

      Still not sure how this would be done in RAP. An example would be much appreciated.

      And maybe a quick blog post comparing the on premise to cloud world e.g.

      Data reads

      Before: SELECT FROM DB TABLE

      Cloud: CDS Views

      Data updates

      Before: BAPIs,

      Cloud: RAP facades

      Enhancements

      Before: User exits, Customer Exits, BTEs, BADIs

      Cloud: BADIs implemented in Eclipse ADT or via a "Custom Logic" FIORI app

      Author's profile photo Wolfgang Röckelein
      Wolfgang Röckelein

      Hi Thomas,

      weil, this note is better than nothing, but for anything non-obvious it is not helpful.

      eg kbed is also used in maintenance orders and not only in production orders which is completly ignored in the table from the note.

      eg currently I am searching for a method to parse an ISO timestamp string into a timestamp (like cl_xlf_date_time->parse offers) - does anybody here has a suggestion for this (besides manual implementation) in steampunk?

      Otherwise we are looking forward to S/4HANA Cloud ABAP Environment!

      Regards,

      Wolfgang

      Author's profile photo Lars Hvam
      Lars Hvam

      I typically search via https://github.com/abapedia/steampunk-2208-api/search?q=iso&type=code

      https://github.com/abapedia/steampunk-2208-api/blob/d9046cfb3a88f05e1c8cedfc9328c677e0db76ea/src/cl_abap_utclong.clas.abap#L36 might work for you

      Author's profile photo Wolfgang Röckelein
      Wolfgang Röckelein

      Thanks, great idea, I wasn't really aware that I could search abapedia.

      yes,

          cl_abap_utclong=>read_iso_format( EXPORTING string = '' IMPORTING value = DATA(val) ).
          DATA(test) = cl_abap_tstmp=>utclong2tstmp( val ).

      should work.

      Author's profile photo Sören Schlegel
      Sören Schlegel

      Hi Lars,

      if the note 2923223 is back, you'll find there a list of public released and also deprecated APIs like classes, Views and BDEFs and so on...

      Regards

      Sören

      Author's profile photo B. Meijs
      B. Meijs

      I created a new ABAP repository Tree in Eclipse ADT for released objects.

       

      ABAP%20Repository%20Tree%20for%20released%20objects

      ABAP Repository Tree for released objects

      Author's profile photo Vijay Chintarlapalli
      Vijay Chintarlapalli

      Boris Gebhardt

      Can we use BADIs,User Exits BTEs in embedded steam punk ?
      Which classical SAP features SAP is trying to bring in Embedded Steam punk ?
      Thanks,
      Vijay
      Author's profile photo Karl Kessler
      Karl Kessler

      Hi Vijay,

      BADIs are fully supported in Embedded Steampunk. BADIs belong to the public extensions points and therefore are upgrade-stable.

      User exits and BTEs belong to classical extension techniques and are not supported for ABAP Cloud development following the Embedded Steampunk rules. They still occur in private Cloud deployments, though, and can be implemented using the classic extension approach.

      Best regards,
      Karl

      Author's profile photo Vijay Chintarlapalli
      Vijay Chintarlapalli

      Thanks Karl Kessler  : This is very helpful , How to handle the background job reports and SE11 tables using embedded steam , Is there any roadmaps planned for this using embedded steampunk ?

      Author's profile photo Thomas Fiedler
      Thomas Fiedler

      There is a list of all released BADIs available as attachment to OSS note: OSS Note mit Successor Excel

      --> badidefinitions_catalog_s4core.zip

      Author's profile photo Vijay Chintarlapalli
      Vijay Chintarlapalli

      Thomas Fiedler  : Really help SAP Note 🙂 I am able get most of the new BADIs and hopefully these will be available in the on-premise version of 2208 as well ?

      Author's profile photo Thomas Fiedler
      Thomas Fiedler

      Yes, this is our goal to provide the same list of released BAdis also for on-premise with the 2022 release.

      Author's profile photo Ian Stubbings
      Ian Stubbings

      Hi Boris and Thomas

      Are there replacements for BTEs? Perhaps in the same way that VOFM has a replacement in ES_SD_SLS_EXTEND? (see this blog post by Vijay Sharma)

      Thanks

      Ian

      Author's profile photo Wolfgang Röckelein
      Wolfgang Röckelein

      Hi all,

      BTE sucessor should be the newly released RAP Events AFAIK, but the question remains, how fast this will be adopted in the individual areas...

      Regards,

      Wolfgang

      Author's profile photo Gaurav Karkara
      Gaurav Karkara

      Thanks for this very informative blog.

      What is the difference between 'ABAP for Cloud Development' and 'ABAP for Key Users'?

      Gaurav

      Author's profile photo Thomas Schneider
      Thomas Schneider

      Hi,

      'ABAP for Cloud Development' and 'ABAP for Key Users' are explained in detail in the following blog posts:

      S/4HANA Extensibility Concept Details: Restricted ABAP | SAP Blogs -> general concept of ABAP Language versions and ABAP for Key Users.

      Restricted ABAP for SAP BTP ABAP Environment | SAP Blogs -> 'ABAP for Cloud Development'. In this blog the name of the language version is still referred to as "ABAP for SAP BTP", it has been recently renamed to 'ABAP for Cloud Development' . It is available in SAP BTP (therfore the original name) and - as of 2208 - in SAP S/4HANA Cloud, and in S/4HANA on-premise.

      Best regards,

      Thomas

       

      Author's profile photo Mark Wagener
      Mark Wagener

      So if I want to use it in a S/4HANA private Cloud system can I do this once the 2022 OP release is available? And in a greenfield scenario (where the realize phase has not yet started) it is SAP's recommendation to do so?!

      In SAP S/4HANA private Cloud and on-premise, ABAP Cloud development will be a recommended option – especially for new ABAP development projects.

      Author's profile photo Gaurav Karkara
      Gaurav Karkara

      Thanks Thomas.

       

      I would assume that 'ABAP for Cloud Development' and 'ABAP for BTP' will have some differences. Embedded steampunk should have less restrictions, i believe, as it will be closer to S/4HANA. ABAP for BTP won't have any BAdI implementations or direct access to back-end released CDS views. As per my understanding, Embedded steampunk ABAP should be closer to ABAP for Key users. No?

      Author's profile photo Thomas Schneider
      Thomas Schneider

      Hi Gaurav,

      there is no difference between the language versions 'ABAP for Cloud Development' and 'ABAP for BTP'. 'ABAP for Cloud Development' is just the new name for 'ABAP for BTP'.

      But there is of course a difference in the amount of APIs and extension points that you can use. In SAP BTP ABAP Environment, you can use the (local) APIs (and extension points) from the ABAP platform only. In SAP S/4HANA Cloud ABAP Environment, you can use the (local) APIs from ABAP platform and from the S/4HANA Cloud layer. This is visualized nicely in Harald Kucks blog  https://blogs.sap.com/2021/09/30/steampunk-is-going-all-in/ in the pictures.

      It is important to distinguish between the language version (= which ABAP language elements are allowed) and the APIs (and extension points) that are available in a particular product. The language version 'ABAP for Cloud Development' is exactly the same in SAP BTP and in S/4HANA Cloud. The APIs (and extension points) are different.

      For 'ABAP for Cloud Development' and 'ABAP for Key Users', the language versions are different. 'ABAP for Cloud Development' is much richer. See details in the my blog Restricted ABAP for SAP BTP ABAP Environment | SAP Blogs . The APIs are also different.

      I hope this clarifies your question.

      Best regards, Thomas.

       

      Author's profile photo Thomas Schneider
      Thomas Schneider

      For some detailed questions on ABAP language versions, the following FAQ might be useful:

      ABAP Language Versions – FAQs

      Author's profile photo Boris Gebhardt
      Boris Gebhardt
      Blog Post Author

      The promised SAP community landing page for SAP S/4HANA Cloud ABAP Environment (Embedded Steampunk) is now available:

      SAP S/4HANA Cloud ABAP Environment | SAP Community

      Use this community to ask questions or to find more information about Embedded Steampunk.

      Author's profile photo Carine Tchoutouo Djomo
      Carine Tchoutouo Djomo

      [SAP Devtoberfest]

      Watch the replay of Developer Extensibility and Business Events with RAP on SAP S/4HANA Cloud ABAP Environment (incl. demos of SalesOrder scenarios).

       

      Author's profile photo Christian Braukmüller
      Christian Braukmüller

      Hi Boris Gebhardt

      the term "ABAP Cloud" was announced by Jürgen Müller in the keynote
      and we got the hint that your blog explains the term.

      Unfortunately I still don't get it.

      In your blog these terms are used:
      - ABAP Steampunk
      - ABAP Cloud development model
      - ABAP Cloud development
      - ABAP for Cloud development
      - ABAP Cloud

      (The term "ABAP Cloud" is rarely used in the blog .. and not even used once in https://blogs.sap.com/2022/09/09/abap-language-versions-faqs/ )

      Question:  Are all these terms synonyms so far?
      If yes:    Can we now reduce it to just "ABAP Cloud" starting with SAPTechEd 2022?

      Remark:
      Anyhow it will give us a hard to time calling the ABAP engine
      in an OnPrem S/4HANA system:
      "ABAP Cloud"   .. without any Cloud involved.

      Christian

      Author's profile photo Boris Gebhardt
      Boris Gebhardt
      Blog Post Author

      Hi Christian

      Yes, now we can start to clean up all the names/terms and use those consistently. Concerning your list - only ABAP Cloud will survive this cleanup.

      Naming

      ABAP Cloud = The new ABAP development model (IDE, services, development model, ABAP language) leading to state-of-the-art, cloud-ready and upgrade-stable extensions and solutions.

      ABAP Cloud is supported in the following products (+ links to the recommended blogs):

      ABAP Cloud includes everything you need to build state-of-the art apps and services:

      • public SAP APIs (local or remote) to access SAP functionality and SAP data
      • public SAP extension points to extend SAP objects
      • ADT (ABAP Development Tools) as your ABAP IDE
      • RAP (ABAP RESTful Application Programming Model) to build Fiori apps and services.
      • Integrated support to consume and expose services
      • An ABAP Cloud language version that enforces the ABAP Cloud rules via syntax- and runtime checks (in the system the name is still “ABAP for Cloud Development” – one of the necessary clean-up steps)

      So, we use the term ABAP Cloud for the entire development model and for the ABAP language version. This is consistent with the use of the term “ABAP”.
      ABAP has always been more than the pure ABAP language.

      The term ABAP Cloud in SAP S/4HANA Cloud, private edition and in on-premise

      Many of the SAP S/4HANA Cloud, private edition and on-premise customers want to go for a Clean Core to have smoother SAP upgrades and to build future-safe extensions that are ready for their next cloud transformation steps.
      For ABAP extensions this means that they follow whenever possible the cloud extensibility rules and switch step by step from classic ABAP to ABAP Cloud.

      Next steps

      Please read the new ABAP extensibility guide to get more details about ABAP Cloud.

      Additionally, we plan to release a blog explaining ABAP Cloud in more detail.

      Regards

      Boris

      Author's profile photo Alejandro Sensejl
      Alejandro Sensejl

      Hi Boris Gebhardt , I was led here from Teched Keynote and would like to share some doubts regarding new Clean Core API.

      We are coming from ABAP addon partner (in a own registered namespace) and have only used BTP apps as side-by-side extensions.

      For on-prem system we developing our addon in S/4HANA system but have ERP EHP8 system in our system track (as per SAP ICC suggestion for ABAP addons!) adopting one codeline approach. That being sad we are using the same released BAPIs for both S/4 and ERP.

      Following new ABAP Cloud world suggesting to use new released APIs with new ABAP language version we cannot use BAPIs anymore. We also cannot use new RAP fascades as they are not available in ERP. So we will now have to implement some additional layer to split delivery components for ERP and S/4HANA and leave one codeline way, right?

      My question to you: Can you provide a compability layer for ERP in SAP standard that uses BAPI or RAP depending on current system? Otherwise many many many manpower will be utilized at many development partners and probably also customers to implement such a compability layer, which will be very un-sustainable.

      Cheers,
      Alej

      Author's profile photo Lars Hvam
      Lars Hvam

      few examples, for code that runs on classic ABAP and ABAP cloud,

      1: converting hex to utf, https://github.com/open-abap/open-table-maintenance/blob/main/src/zcl_otm_table_maintenance.clas.abap#L132-L161

      2: listing key fields of a database table, https://github.com/open-abap/open-table-maintenance/blob/main/src/zcl_otm_table_maintenance.clas.abap#L239-L280

      Its quite a lot of work

      Also created https://github.com/open-abap/cross-http-client some time ago, pull requests welcome

      Author's profile photo Alejandro Sensejl
      Alejandro Sensejl

      Hi Lars, yeah, that dynamic aproach is what we have started doing in cases we need it (ERP vs. S/4HANA) and maybe many other SAP customers/partners need to do. As we are providing our applications as add-on, which required use of only our registered namespace, we cannot rely on open source projects outside of our namespace.

      But while you show examples for fascading ABAP tooling, I am asking more about APIs for SAP processes for both read (many many CDS views are already available, but no chance to use them on ERP) and write access (hardly any fascades for BAPIs available) to documents.

      Edit: And while I have the chance here - THANKS a lot for your great efforts abapGit and ABAPLint! 🙂

      Author's profile photo Lars Hvam
      Lars Hvam

      we cannot rely on open source projects outside of our namespace

      Just automatically rename it and copy into your namespace

      Author's profile photo Michael W Nicholls
      Michael W Nicholls

      I’ve only just found this blog and was interested if the BC flight model, such as SCARR, SPFLI etc are available? Thanks

      Author's profile photo Volker Drees
      Volker Drees

      Hello Michael,

      it's technically there - but it's not released. Instead we offer a new reference scenario that can be imported from github. See: https://github.com/SAP-samples/abap-platform-refscen-flight

      Best Regards, Volker

      Author's profile photo Freddie Oliva
      Freddie Oliva

      Hi,

      What are the specific (1) Advantages and (2) Limitations of Embedded Steampunk/Developer On-Stack extensibility as compared to Side-by-Side extensibility?

       

      Regards,

      Freddie

      Author's profile photo Boris Gebhardt
      Boris Gebhardt
      Blog Post Author

      Hello Freddie

      Please check chapter 3 "When to use which cloud extensibility option" of the new ABAP extensibility guide . Here you find the answers when to use on-stack and when to use side-by-side extensibility.

      Regards

      Boris

      Author's profile photo Felix Ortiz
      Felix Ortiz

      Olga Dolinskaja     Will there be an ABAP Test Cockpit (ATC) check we can leverage to check the ABAP for Cloud Development status of development objects already created in the landscape?

      Author's profile photo Olga Dolinskaja
      Olga Dolinskaja

      Hi Felix,

      see please this blog: https://blogs.sap.com/2022/10/26/how-to-make-your-custom-code-cloud-ready-and-upgrade-stable/

      The new functionality with regard to the ATC check for ABAP cloud development will come in the upcoming weeks (will be described in the new blog), stay tuned!

      Best Regards,

      Olga.

      Author's profile photo Hassan Saeed
      Hassan Saeed

      Hi Team,,

      I need to extend standard App such as Sales order by additional fields in addition to add custom logic for some validations (that's implemented already in customer exits or BADI).

      To keep the core clean, I need to do this using the BTP side by side extension, is this applicable? If not, what alternatives do you suggest?

      Regards

      Hasan

      Author's profile photo Boris Gebhardt
      Boris Gebhardt
      Blog Post Author

      Hi Hasan

      To keep the clore clean you can use the on-stack cloud extensibility options based on key-user extensibility or Embedded Steampunk, or you build the extension side-by-side on SAP BTP.

      On-stack extensibility is used for extensions which are tightly coupled to the extended SAP S/4HANA apps, transaction or data. For loosely coupled extensions SAP BTP is the default choice.

      For details please refer to chapter 3 "When to use which cloud extensibility option" of the ABAP extensibility guide.

      Your example (add a custom field to the SAP sales order app, implement a BADI in the SAP business logic) sounds like a very tightly coupled extension and therefore I would first check key-user extensibility or Embedded Steampunk.

      Regards

      Boris

      Author's profile photo Hassan Saeed
      Hassan Saeed

      Thanks a lot Boris for your reply.

      Author's profile photo Saptarshi Sen
      Saptarshi Sen

      Hi Boris Gebhardt

       

      Thank you for sharing valuable information.

      With regards to developer/on-stack extensibility, we see a list of legacy objects that have 'released' successor (substitution) object recommendations, as seen in Note#3088062. While this list is helpful for on-stack developments, however most of those substitution objects are 'non-extensible' in context of Developer Extensibility.

      For example, there are many traditional BAPIs that are recommended to be substituted with released BDEF or DDLS objects; (example - I_JOURNALENTRYTP for BAPI_ACC_DOCUMENT_POST) but they are mostly non-extensible, meaning any custom field extensions to the legacy object, cannot be handled via the released successor/substitution objects. Also checked in the SAP data sources like ARS_ADT_API_FLTR in latest S/4HANA 2022 system - which says there are only 20 released objects that are extensible (tagged - EXTEND_IN_CLOUD_DEVELOPMENT).

      As custom field extensions are quite common customer use-cases, wanted to understand what is the recommended alternative for such scenarios?  Is the 'Tier-2' approach suggested here until more released APIs are enabled for custom extensions in Developer Extensibility? Kindly advise.

       

      Warm Regards,

      Saptarshi Sen

      Author's profile photo Thomas Schneider
      Thomas Schneider

      Hi Saptarshi Sen,

      the "golden path" is to create your custom fields  and add it to the BO interface with key user extensibility using the Custom Fields app. Many BO interfaces are already enabled, for example I_SalesOrderTP, I_PurchaseOrderTP, I_EnterpriseProjectTP, and many more.

      You can use the custom fields created in key user extensibility in your code in developer extensibility.

      If the extensibility enablement for a particular BO interface is missing, I would recommend to create a request on the S/4 API influence channel: https://influence.sap.com/sap/ino/#/campaign/2759

      Best regards,

      Thomas

      .

      Author's profile photo Saptarshi Sen
      Saptarshi Sen

      Ok. We can adapt a hybrid approach in terms of extensibility types based on API/BO properties. Thanks for your response Thomas Schneider.

      Author's profile photo Orsolya Mihaly
      Orsolya Mihaly

      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?

      so

      Best regards,

      Orsolya

      Author's profile photo Thomas Schneider
      Thomas Schneider

      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

      .

       

      Author's profile photo Avijit Majumdar
      Avijit Majumdar

      Hi Experts,

      We are transforming our systems to public cloud. We need to extend PR creation application by using SAP Released BADI for follow on processes post creation of Purchase requisition. But we are unable to see any BADI from ADT. Is there any configuration required in BTP? Please see the screen shot bellow for reference.

      Author's profile photo Ahamed Kalikul Jaman
      Ahamed Kalikul Jaman

      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

      Author's profile photo Krishna K Bhat
      Krishna K Bhat

      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?