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):
- How to use Embedded Steampunk in S/4 HANA 2022 on premise system(current topic),
- RAP as the programming model of choice in Embedded Steampunk,
- Restricted ABAP in Embedded Steampunk with tried out examples,
- 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 Properties in ADT
Step 3:
Go to General tab in the properties to see the ABAP language version
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 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