Product Information
SAP BTP ABAP Environment – Release 2202
The year 2022 is already in full swing and this means that it is also time for a new SAP BTP ABAP Environment release (version 2202). Highlights of this years’ first release are, among others, a reduction of the minimum SAP HANA database size, new reuse services as well as enhancements to the debugger tooling.
Please enjoy the following condensed overview of the latest features. Please refer to our official release notes page for full details.
Reduced Minimal Size for SAP HANA database
With the internal enablement of ABAP environment for SAP HANA Cloud (for new instances only, formerly SAP HANA Service) the minimal database size could be reduced from 4 to 2 “HANA Compute Units”, consisting of 15 GB memory per unit. This means that a minimum ABAP environment instance now has 16 GB of ABAP memory and 30 GB of SAP HANA memory, lowering the technical and commercial entry barrier for smaller use cases.
Enhanced Reuse Services
You can now use new apps to display and maintain factory calendars, holiday calendars and holidays (details here, here and here). The Maintain Translations app has been enhanced to allow translation of IAM business catalogs (details). And the XCO Library has been enriched with new features such as the new Transport Read APIs, the Call Stack module, the Character module and the I18N module (details).
New Debugger Features
In the ABAP debugger, you can now change own variables while debugging. This counts for static variables which are declared in the own ABAP code as well as dynamically created (data) objects of own classes and types. Furthermore, the function “Jump to Line” is now available for your own ABAP source code.
ABAP Development Tools
- Support for new filter values for released and deprecated objects (details)
- Support for maintaining business configuration registrations as objects in ADT with a JSON-based editor and creation of knowledge transfer documents for these objects (details)
- Support for generation of ABAP value statements for e.g. internal tables or structures from the Data Preview or via the ABAP Debugger (details)
- Support for message breakpoints in the ABAP Debugger to stop the debugger at a certain message (details)
- Support for ATC exemption functionalities (details and blog)
- Support for comments related to ATC Quick Fixes using the Recommended Quick Fixes wizard (details)
- Support for creation of API snapshots of components which can be used in compatibility checks as part of the ATC check API_COMPATIBILITY
- Support for own ABAP Test Cockpit checks with an implementation of the interface IF_CI_ATC_CHECK (details)
- Support for setting the handling of pseudo comments and pragmas in the ABAP Test Cockpit Configurator app
- Support for editing number ranges objects via the new form-based Number Range Object editor (details)
- Support for comparing Knowledge Transfer Documents via the History View
- Enhancements in the Relation Explorer with more details about actions and their behavior
- Support for sub-nodes of associations shown in the Relation Explorer now being visible also in the Element Info
ABAP RESTful Application Programming Model
- Support for business object interfaces which can be used to introduce an additional abstraction layer between a RAP base BO and its business service projection layer (details)
- Support for creation of a CDS entity buffer using a creation wizard (details)
- Support for new analytical annotations to include or exclude certain dimensions from exposure at runtime (details)
- Support for retrieval of easily parsable filter conditions in an unmanaged query via a the method get_as_tree (details)
Administration
- Enhancements to the Technical Monitoring Cockpit including improved user experience for work process analysis, new screens for resource consumption and support for query parameters in SQL trace records in the SQL Trace Analysis screen
- Enablement of the new Maintain User Sessions app which displays sessions containing locks and lets you display further information and delete respective sessions (details)
Continuous Integration & Delivery
- Support for merging different transport requests in one request and creating a copy of an exported request (details)
- Enablement of an object restriction check during deployment of an SAP Fiori UI which ensures that only system-internal services in language version “ABAP for Cloud” or those from the same software component are contained
- Support for a new tag_name parameter for the Clone endpoint in the MANAGE_GIT_REPOSITORY WebAPI which can be used to import a specific tag into the system
- Support for rollback of failed pulls in productive systems to ensure a consistent code state of a software component
- Support for transport of spaces and pages between development and productive systems
Extensibility
- Support for releasing database tables, ABAP structures, data definitions and service definitions for the Extend (C0) contract as stable APIs for extensibility use cases (details)
Integration & Security
- Enablement of the new app Display Publishing Process to monitor publishing processes for custom communication scenarios and business catalog extensions (details)
- Enablement of new classes and enhancement of existing classes for HTTP request and response handling for e.g. managing URLs and deleting header fields (details)
- Support for a new API to customize SOAP headers by adding custom XML-fragments to the SOAP header of a web service call
In addition, we have released a new tutorial for development and deployment of a SAP Fiori app using a SAP-managed app router (accessible here) and updated the existing “Integrate List Report into ABAP Fiori Launchpad” tutorial by adding transport processes.
I hope you enjoyed this little overview. Please let us know if you have questions.
Stay healthy and take care!
Thanks!
Any news about Free Tier BTP ABAP Environment?
Hi Stephan,
ABAP Environment is already available as part of the Free Tier offering.
Best regards,
Florian
Regarding "Support for rollback of failed pulls in productive systems", the changelog says
Which, to me, sounds very different than "support", according to the changelog the default behavior of failed imports has been changed? To something different than how its worked for the last 20+ years(?).
In https://help.sap.com/viewer/4a368c163b08418890a406d413933ba7/202110.000/en-US/fb77f07bb9644979be357b701a4a441f.html, SAP recommends
How does this relate? Has SAP solved the import issues, so now its okay to import failing transports into production without impacting business? This has been a 20+ year old problem, eg. if removing a column => import fails => its rolled back, and business transactions are consistent?
Thanks for spotting the difference, Lars!
First of all a disclaimer: No, we did not solve the problem of rolling back DB changes after failed imports. That means if your to-be-imported commit contains DDic changes and runs into issues, there is still no automatic way to restore the old DB state. That means, as before, you can only "fail forward" by adding changes on top of the altered DB state. Agreed, the documentation should be more explicit on this point.
Next thing to note is the difference between gCTS as you can use it today in S/4HANA on-premise and the way it is used in SAP BTP ABAP Environment (a.k.a. Steampunk). In the later case, customers can only use the Manage Software Component app to pull commits into their Steampunk systems. There was already an implicit rollback of failed commits so far, which only reverted the local git state without transporting these changes into the ABAP repository. This could lead to inconsistent states that customers could only resolve with SAP's help. The new roll-back introduced with 2202 however also imports the reverted state from git to ABAP, which leaves the system in a consistent state that customers can repair on their own by adding commits on top.
Last and probably most important is the "garbage in, garbage out" principle, i.e., customers are responsible for the quality of changes they pull into any system and the consequences that follow. They should prevent that such faulty commits are pulled to their productive system in the first place, for instance by CI/CD tools and pipelines that qualify changes released from dev in test systems first before pulling them into production.
Hope to help,
Christoph
Thanks for the clarification
Customers come from a "garbage in, crash" situation, and with the automated rollback SAP takes customers into a "garbage in, garbage out" situation.
Note that "garbage out" might mean commit'ing business transactions based on data from ddic(database) tables that have lost data due to ddic changes(changing key fields, changing decimal places etc.) possibly resulting in products being produced to wrong spec, invoices issues with bad data. So, personally I'd much rather end up in a crash situation.
Dear Florian Wahl thank you for the blog!
I hope you can answer one question: We have several custom UI5 Apps developed on BTP and then deployed to the S/4HANA Cloud backend (public cloud tenant). This worked fine for the past 2 years.
Now, suddenly with 2202, we are unable to deploy UI5 apps to the backend.
So far, SAP support could not provide meaningful answers.
Do you know if this is true, that it is from now on impossible to deploy to the backend? Do we have to deploy to BTP now?
In your blog I find this passage, maybe it is related:
Thank you for your support,
Johannes
Hello Johannes,
could you kindly let us know the incident number, so we can check the exact symptom and how to reproduce it?
Thanks a lot and best regards, Oliver
Hello Oliver,
thank you for looking into this.
Incident: 114332 / 2022 Unable to deploy custom UI5 application to S/4HANA Cloud system
We have several custom UI5 Apps deployed to the backend (S4HANA public cloud).
Suddenly it's impossible. It looks as if as long as we are not using any API calls in an app, it can be deployed. But as soon as we do call APIs (from S/4HANA Cloud), deployment isn't possible.
Kind regards,
Johannes
Hello Johannes,
to ensure that external consumers of the API view continue to work after an upgrade, SAP ensures stability rules. I understand an Object Restriction Check has been introduced to handle the Stability Contract for Remote API Use. The logic should depend on which API is used.
Thanks for your understanding.
Best regards,
Oliver
Thank you for these updates - I hope you can clarify an issue for me regarding "released" objects and "release contracts".
We are currently in the middle a migration project from ECC to S/4 Hana and would like to build some custom reports (in BTP ABAP environment) on top of the CDS data model used by the Custom Code Migration UI5 app (package SYCM_APS). However, we are not able to create CDSes on top of the SAP CDSes ("The use CDS XXX is not permitted"), and also we are not allowed to add release contracts to the CDSes ("Object CDS Entity XXX must not be changed due to system configuration").
I suppose the problem is that the objects are not "whitelisted" - but is there really no way we can get around this, by adding a release contract, changing system configuration, or giving ourselves more authorization?
Thanks!
Frank
Hi Frank,
one of the basic principles of ABAP development in the cloud is that customers can only use APIs which are explicitly released by SAP. There is no possibility to customers to by-pass the API layer.
There is the possibility to request new APIs via the customer influence program for SAP BTP ABAP Environment:
https://influence.sap.com/sap/ino/#campaign/2911
Please choose the category "Reuse services"
Regards,
Thomas.
Thanks for your reply Thomas. It is certainly frustrating in this particular case as it is not obvious why these APIs are not released, but it is good to know that I don't need to waste more time circumventing this restriction. I will submit a request as you propose,
Cheers,
Frank
And here is my submission:
https://influence.sap.com/sap/ino/#/idea/285691
Please vote!