Skip to Content
Personal Insights
Author's profile photo Aman Garg

Embedded Steampunk – What’s under the hood? Part I

Steampunk is now officially ABAP Cloud, as announced in SAP TechEd 2022.

Does this mean Embedded Steampunk is now Embedded ABAP Cloud? Not sure? Me too πŸ˜€ so let’s call it Embedded Steampunk for now.

Update: The term Embedded Steampunk is now replaced with “The SAP S/4HANA Cloud ABAP Environment”, as suggested in this blog

I was lucky to get an opportunity to try my hands on SAP S/4 HANA 2022 on premise system recently. I tried out different new features in the new system, but what I focused on most was Embedded Steampunk.

Welcome to this series of blog posts, where I will try to share the learnings and findings from my hands on experience with Embedded Steampunk (hyperlinks to topics #3,4 will be updated here once they are published):

  1. How to use Embedded Steampunk in S/4 HANA 2022 on premise system(current topic),
  2. RAP as the programming model of choice in Embedded Steampunk,
  3. Restricted ABAP in Embedded Steampunk with tried out examples,
  4. ADT tips which might be useful.

For the people who are alien to the term Embedded Steampunk (just like I was few months back πŸ˜€ ), I would recommend to go through below blogs, which are very helpful in understanding what exactly Embedded Steampunk is. Since there are already detailed blog explaining what Embedded steampunk is, I will keep this blog series focused on findings

Embedded Steampunk – Some more details for ABAP developers

Steampunk is going all-in

How to use Embedded Steampunk in SAP S/4 HANA 2022 on premise system

Step 1:

Open/create an object in ADT which you want to build on Embedded Steampunk. Let’s consider a simple CDS in our example.

Step 2:

Click Properties icon in ADT to open properties of the selected object

Object%20Properties%20in%20ADT

Object Properties in ADT

Step 3:

Go to General tab in the properties to see the ABAP language version

ABAP%20Language%20version

ABAP Language version

Step 4:

Click Browse, and select ABAP Language version as ABAP for Cloud Development.

Note: The language version ABAP for Cloud Development was called with different names in past, however, this is the latest name as of now.

ABAP%20for%20Cloud%20development

ABAP for Cloud development

That’s it. The object is now enabled for ABAP for Cloud Development

What does this mean?

This means:

1. Strict syntax and runtime checks for this object,

2. You won’t be allowed to use tables directly in this object,

3. You won’t be allowed to use non-released APIs in this object,

A list of all the released APIs can be found at below link:

Released APIs

Unreleased and Released objects within same software components(set of packages) can be used.

For ex: Under a Cloud enabled package P1, you have 2 unreleased CDS C1, C2. You can still associate C1 in C2 or use C1 as data source in C2 etc, since they are in same package,

4. If this is an oData exposure, then RAP should be your programming model of choice,

5. ABAP Development Tools(ADT) to be used for ABAP Cloud developments,

6. Not all repository objects can be used in ABAP for Cloud Development. A list of all the repository objects allowed in restricted language version can be found at below link:

Allowed Repository Objects in Restricted ABAP

7. Not all ABAP language elements are supported in ABAP for Cloud development. A list of all the supported language elements can be found at below link:

Language Elements in ABAP Versions

 

Findings:

  • You can mark ABAP Language version while creating an object, or also later on change the language version after the object has been created. It’s not mandatory to select language version only during creation.
  • You can also try changing ABAP language version for the object multiple times and see syntax errors would appear/disappear in run time(without even saving the object), so the checks are indeed really strict πŸ˜€
  • You can assign ABAP language version at an object level, or also at the package level. When you assign language version ABAP for Cloud Development at the package, strict checks would apply to all the objects in that package.
  • ATC check variant ABAP_CLOUD_READINESS comes pre-configured and can be used to check if ABAP Cloud development protocols are followed.
  • Syntax error points to the successor object to be used, which is really very handy for developers.

In the next blog, I would highlight how does Embedded Steampunk enforce RAP as the programming model of choice. So stay tuned πŸ˜‰

Hope you liked the post. Please share your suggestions/feedbacks.

 

Thanks,

Aman Garg

LinkedIn

Assigned Tags

      12 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Michael Umlauff
      Michael Umlauff

      Hello Aman,

      I had similar problems when I searched for the announced Embedded Steampunk in S/4HANA on-premise 2022. Only late I realized it apparently has been renamed to ABAP Cloud.

      There is a second new termΒ Developer Extensiblity describing the new cloud-ready On-Stack extension development. In the help on it it is described how to set it up. https://help.sap.com/docs/ABAP_PLATFORM_NEW/b5670aaaa2364a29935f40b16499972d/31367ef6c3e947059e0d7c1cbfcaae93.html

      In short, you create a software component and choose theΒ  ABAP language version ABAP for Cloud. Then you create a structure package and assign it to the software component. Next you create sub packages for your development objects. They all will be automatically assigned to ABAP language version ABAP for Cloud Development, and you can't change this later on to Standard ABAP.Β 

      This is quite similar to what I expected from "Embedded Steampunk".

      Kind regards
      Michael

      Author's profile photo Aman Garg
      Aman Garg
      Blog Post Author

      Hello Michael, thanks for your comment and sharing the link. Yes, this looks indeed synonymous to Embedded Steampunk, and is also available on the same platform (S/4H 2022 On Premise), so would be really interesting to know how is it different from Embedded Steampunk.

      Author's profile photo Aman Garg
      Aman Garg
      Blog Post Author

      Hi Michael,

      The two terms are indeed same, just found this in a document

      Embedded%20Steampunk

      Embedded Steampunk

      Β 

      Thanks,

      Aman Garg

      Author's profile photo Jelena Perfiljeva
      Jelena Perfiljeva

      Quick Google search discovers this recent SAP Community blog post that says "The SAP S/4HANA Cloud ABAP Environment (Embedded Steampunk) is available for new customers." SAP got rid of both "Embedded" and "Steampunk" nomenclatures.

      That blog also kind of explains "what's under the hood" already... I'd encourage you to search for existing posts and to use current product names when sharing on SAP Community.

      Author's profile photo Andrew Fordham
      Andrew Fordham

      If SAP kept the nomenclature consistent and varied from other products (Googling for ABAP, Cloud and Environment is going to bring back more than you want), then I’d agree. I quite like the phrase (Embedded) Steampunk as it’s unlikely to throw up a lot of other stuff to wade through. It’s also remained consistent since whatever-it-was-being-called-back-in-2019 was first released (it might have been 2018)

      Author's profile photo Jelena Perfiljeva
      Jelena Perfiljeva

      I can't wait when people start googling SAP Build and find all the old posts about the previous product (also called SAP Build) and then it's being sunset. πŸ™‚

      You bring up a good point that SEO is important for educational blogs as much as for marketing. However, there is no reason to use only the old product name. The author also makes a joke at the very beginning like "what's the new name, ha-ha". I like jokes but it ain't hard to look up the accurate new name and then include both. That would seem like a win-win for search and education purposes.

      Personally, I wish SAP could seek treatment for their renaming addiction (although in case of ABAP Cloud it actually made sense). But unless a name becomes as ubiquitous as "Basis", for example, there is no point to keep using old names because this will make it difficult to look up the official SAP information. So might as well just get on with the program. For example, it would be confusing if someone posted about SAP Cloud Platform (SCP) right now. (For those out of the loop it was renamed to SAP BTP.) See what I just did? πŸ™‚

      Author's profile photo Aman Garg
      Aman Garg
      Blog Post Author

      Hello Jelena, thanks for your comment. If we rely on google search and not official SAP documentations to conclude what's correct and what's not, then I don't think we are moving in right direction. If it is actually renamed, then it should be part of official documentation. Moreover, I clarified in the blog that I am not sure about the new term so would call it Embedded Steampunk for now. Hope this clarifies πŸ™‚

      Author's profile photo Sandra Rossi
      Sandra Rossi

      It has been actually renamed.

      I guess you can believe the official communication ofΒ Karl Kessler in https://blogs.sap.com/2022/09/01/evolution-of-abap/:

      evolution of ABAP towards what it is today: the technology foundation for SAP S/4HANA and S/4HANA Cloud and an extensibility platform to build side-by-side extensions with SAP BTP ABAP Environment (Steampunk) and on-stack extensions on top of the SAP S/4HANA Cloud Stack with SAP S/4HANA Cloud ABAP Environment (embedded Steampunk).

      I advise that you add a link at the top of your blog post so that people get less confused about the names πŸ˜‰

      Author's profile photo Jelena Perfiljeva
      Jelena Perfiljeva

      Anything with "Steampunk" has always been an internal SAP name, therefore you will not find any references to such names in the official documents. https://blogs.sap.com/2019/08/20/its-steampunk-now/

      If someone was searching "what's the new name for Embedded Steampunk", they would likely find nothing outside of SAP Community posts for simple reason that the old name was never an official one. Again, it's not difficult to find current names, I'm really not sure why you were unable to...

      Author's profile photo Aman Garg
      Aman Garg
      Blog Post Author

      Hello, I have updated the blog with new name and reference to blog as well πŸ™‚

      Author's profile photo Thomas Madsen Nielsen
      Thomas Madsen Nielsen

      Thanks Aman Garg, this is an interesting blok and I look forward to next blog.

      Maybe you could also blog about why we should use Embedded Steampunk On Premise?

      I mean with all the limitations, why should we not just use Standard ABAP without the limitations?

      I totally understand the need for limitations in a public shared cloud. I also understand the principal of clean code, but at the end of the day we must accept that the core reason why ABAP developers exits outside SAP AG is that SAP does not deliver systems that are perfect for all and they do not deliver systems that are without errors, so we have to continuously improve and extend. For that, first priority is to deliver the business functionality. If we don't deliver the required business functionality, then clean code, performance etc. doesn't matter.

      So with a on-prem system where we have options for both Standard ABAP and the very restricted Steampunk, why should we choose Embedded Steampunk?

      The only credible argument I have seen so far is the option to build upgrade-stable extensions, but we have been doing that for 30+ years without Steampunk and every rare occasion we made a development that at next upgrade popped up in SPDD/SPAU, we did it with open eyes knowing exactly what the consequence was and included that in our cost/benefit.

      Author's profile photo Aman Garg
      Aman Garg
      Blog Post Author

      Hello Thomas,

      Thanks for sharing your views πŸ™‚ I partially agree with your point of view. I leave this to product owners from SAP to blog about why to use Embedded Steampunk, as I am not qualified enough to blog on this topic πŸ˜€

      However, I think keeping the core clean really matters and this is different from what we used to do from 30+ years as we didn't need cloud-ready solutions back then. Here's what SAP has to say on benefits and use-case of Developer Extensibility (Embedded Steampunk)

      Thanks,

      Aman Garg