Technical Articles
Planning for ABAP Cloud 1 – What is included in ABAP Cloud?
In this series of blog posts, I want to help developers, architects have a high level overview of SAP Cloud Platform ABAP Environment and help you figure out how to use ABAP Cloud to create value for your project and how to run your ABAP Cloud project.
1.Introduction of ABAP Cloud
SAP Cloud Platform ABAP Environment, is a platform as a service offering that allow developers to create modern applications (API based, Cloud deployment, CI/CD enabled) with documented enterprise level technology. It helps us bring the enterprise quality to API based modern application with very low effort.
ABAP Cloud can help developers focus more on business logic instead of technical detail by creating technical standard independent objects and generate technical artifacts for you, as ABAP always did.
ABAP Cloud is running only by SAP, an instance can be created in a couple of hours instead of days, SAP takes care of all the patching, maintenance and supporting.
2.Major components in ABAP Cloud
ABAP Cloud logically runs within the SAP Cloud Platform, Cloud Foundry environment, due to it shows as a service instance within a space in a cloud foundry sub account. But in lots of SAP’s document, SAP uses ABAP Environment in parallel with Cloud Foundry environment. So ABAP Cloud is a bit different than other PaaS or SaaS on CF, it is much bigger and much more complex. ABAP Cloud itself is a platform and will include many different services. I think that is why SAP see ABAP Cloud is at the same level as Cloud Foundry environment, even logically it looks like a part within CF.
At the backend, as a user, we don’t know it is running on a physical server, or AWS EC2 instance, or a docker image, that is what SAP will take care.In the most public material on community, the major focus is on
(1) What feature in ABAP will not be supported in the ABAP Cloud
(2) RAP.
But here I will majorly talk about what ABAP Cloud includes. I categorized all functions in the ABAP Cloud into 7 categories. As the list below
- Identity and Access Management ( IAM )
- ABAP Restful Application Programming Model ( RAP )
- ABAP Based Service*
- SCP ABAP SDK*
- ABAP Core*
- DevOps*
- Connectivity*
*All categories with * are not SAP’s official names
3.Identity and Access Management
IAM include everything about authentication and authorization. From creating user, creating authorization and the end to end process of giving user access and of course restricting user access.
It derives the classical ABAP authorization concept, but made it more API facing. Authorization will not assign to a user directly. As a developer, you need to create an ‘App’ at the backend, which consists of APIs and Authorization objects the ‘App’ need. Then assign access to this App to the user through Catalog and Roles.
The new approach better fits modern concept and more secure, it makes sure each API access is authenticated and authorized. It also has a better separation of duty between developers and administrators. Developers can fully decide what an ‘App’ can do and administrators only decides which ‘App’ can be accessed by which users.
4.ABAP Restful Application Programming Model (RAP)
There is already a lot of blog posts and learning materials regard to RAP, the new programming model. As we know RAP can help you create a business object and generate OData API within minutes. But from my perspective the best part of RAP is the flexibility. In real scenario, there are many cases that managed mode not working, RAP provide unlimited possibility that you can use the most of RAP’s convenient with your legacy code , or legacy service.
For example, you can create an OData service using CDS, but you can also easily create one using unmanaged query if it is not possible with CDS, and when CDS works for 80% fields, you can create virtual elements, which can leverage CDS’s convenient and customizable as well.
When you are saving data, you can mix the managed mode, and abap code together, or only using abap code , or not using RAP at all ( only read using RAP ).
There is also option that you can combine RAP based logic and other OData entities from other systems together without a lot of code. And you can also create generic restful service when OData service is not the best choice.
Overall RAP is a broad topic, it may have broader scope in the future. I will category all routes which will generate a RESTFul API into RAP. I believe that is better fit the name.
5.ABAP Based Services
There are a lot good ABAP function modules in old ABAP world, lots of them, was not created for customer, they were just something SAP build internally for better building their solution. But used a lot by smart developers. A lot of those function are good but didn’t have a perfect API design, I guess SAP haven’t thought those services will be sold as a product back to when they design them. As a fact, a lot of custom ABAP application today are rely on those unofficial services.
In ABAP Cloud, SAP starting create many of those powerful ABAP services as a standard service in ABAP Cloud gradually, with a resigned API and modern concept. Some of those are not very technical but should be considered as a foundation of any enterprise application. And I also think this is a big advantage of ABAP.
Currently ABAP Based services available in ABAP Cloud are
- Number range service
- Application Job service ( successor of SM36/37)
- Application Log service ( successor of SLG1?)
- Current/Unit conversion service
- Factory Calendar
- Change Document
6.SAP Cloud Platform ABAP SDK
Since ABAP Cloud is connect to SAP Cloud Platform closely. There is ( and probably will be alot ) services that help ABAP developers consume SAP’s cloud services easier than using other technologies.
Currently, there is only one component, which is a set of ABAP class , helping developers consume APIs from SAP Cloud Platform Business Rules.
But I still believe it deserve a category, because I see values and more opportunities for ABAP cloud integrating with other services on SAP Cloud Platform.
7.ABAP Core
ABAP Core is the core of ABAP, DDIC, ABAP Language, ABAP OO, CDS, and so on. It is a more restricted ABAP, but most statements SAP deleted are announced as obsolete many years ago. So, syntax vise, there shouldn’t have any issue if you always not use obsoleted syntax in ABAP. But you need to aware that most of SAP’s standard table, function module and class, especially those from a specific module ( like MM, FI ) will disappear on ABAP Cloud.
Beyond that, there are new opportunities as well
- New syntax, There is a lot of cool stuffs in ABAP happening. Like you can join internal tables using OPEN SQL now. Because ABAP Cloud will always use newest version, it is a good time to open ABAP Docu and check how much new and cool stuffs you missed while keeping working on the older release
- A new set of ABAP Classes , with good naming convention, most of them start from cl_abap, or cl_system help you talk with the system and provide you fundamental functions.
- A new set of APIS called XCO api, is a fast growing library providing you fully access to the system, or providing much more powerful function. Like dynamically generate ABAP repository objects, access ABAP service, JSON conversion. Although there is not alot API yet, SAP has really big ambition of XCO API, they have a good API design to make sure this approach can be easily scale up and giving developers a unified experience when using the library.
8.DevOps
DevOps including Ci/CD, system monitoring and documenting.
ABAP Cloud using gCTS as the CI/CD solution, now developers can working on different projects in one system in parallel without affecting each other and push/pull the whole component by one click, or by API. The new CI/CD solution is much easier than before but with some limitations.
Fiori based report is provided to help administrators analysis the system statics without a professional basis training.
The new document system ( Knowledge Transfer Document ) help developers create documents within ABAP repository and link your document to repository objects with MarkDown.
9.Connectivity
ABAP Cloud support both inbound and outbound connection via HTTP or RFC, to cloud orย on premise. Connectivity is all about setting up connection, SSO and setup authorization for each connection. It uses destination service in SAP Cloud Platform.
Now it is the end of this post. Hope this can help you have a big picture of ABAP Cloud, it is much more than a new programming model and it is powerful potentially more and more powerful.
From my next blog post, I will try to give you more detailed insight for each topic from architecture level, hope you like it ๐
Thanks for the nice overview and I'm looking forward already to the next blogs.
If I'm allowed to nitpick:ย RAP > ABAP RESTful Application Programming Model (based on the SAP Help Portal, but I admit just as easily that I've been heard replacing 'Application' with 'ABAP' in the past)
The only part I'm really wondering about is this section:
Now, I'm not sure your referring to function modules that are flagged as 'not released'.ย But if that is the case, and after doing my share of upgrades and conversions, I'm not sure I'd qualify developers that use these function modules as 'smart'. In upgrade and/or conversion scenario's there is no guarantee that these function modules will continue to work.
But getting back on topic, that is in my eyes the great thing about these 'allow-listed' api's. Theoretically that would make code easier to maintain, and upgrades/conversions easier.
Hi Patrick
Thank you for reply ๐
1.I updated the RAP name, thank you for pick it ๐
2.About the old function modules, yes you are right. But if you ask any of ABAP developers, they all have a list of useful function modules can do magic. Yes there is risk that they will be changed when upgrade, but they are rarely changed. So it is not ideal but the fact today. So I am really happy that SAP start building more official ABAP based service API and officially support some of the most important functions. And it will be more and more.
I'm afraid there wasn't any official strategy and/or consistency of "released" objects.
FM REUSE_ALV_GRID_DISPLAY, for example, has never been officially released,
nor the edit functionality in CL_GUI_ALV_GRID (Note 695910 - ALV Grid: Grid that can be edited and unreleased methods).
I guess you happened to use at least one of them in the past.
Hi Shai
You are right!
I think that is because SAP never treat ABAP as a standalone product before.
Now ABAP itself is a product, I can see all the released services are quite clearly documented.
Just to emphasize the comments about the released objects:
I also like the very nice overview ๐