ABAP Cloud - Clean Core (Scenarios)
In this article, let's take another look at the Clean Core architecture with ABAP Cloud, where it is used and where you can build your applications.
Table of contents
In this article we take a look at Clean Core in relation to ABAP Cloud and see where you can build your applications and extension scenarios in the future. The article was written in collaboration with Michael Keller, Volodymyr "Volo" Vashchenko and Dominik Panzer.
Introduction
There is currently a rumor going around that you can only become Clean Core if you use the BTP for your extensions and to develop your add-ons. When SAP started with the topic of Clean Core, this was also the case, because due to a lack of alternatives, the expansion options of the core system were zero. In principle, you could already ask yourself the question back then: How can I develop Clean Core? The answer would be: If I develop and use my own development with no points of contact with the standard. So only use released and documented function modules.
Clean Core
In this section we want to discuss the topic of Clean Core and how it is handled on the different platforms.
Overview
Over the last few years, there has been a lot of work being done on new options for companies that wanted to embark on the journey to Clean Core. This gave rise to the idea of ABAP Cloud, the development model for Clean Core. In this article, we will look at ABAP Cloud as a development model, leaving out Cloud Application Programming (CAP) and SAP Build. Let's take a closer look at the familiar overview.
ABAP Cloud is the standard when it comes to development on the SAP BTP ABAP Environment and S/4HANA Cloud. There you can only use this model to develop extensions. ABAP Cloud is now also available for S/4HANA 2022 On-Premise and that is the crucial point.
Cloud
The cloud includes the S/4HANA Cloud and the ABAP Environment. The S/4HANA Cloud is a system provided by SAP with the core modules and standard processes. Here you have the option of adapting the system to your requirements using customization. If that is not enough, easy and simple adjustments can be made using Key User Extensibility. If you have developers on hand, you can also use Developer Extensibility to make extensions to the system, implement BADIs and make applications available with RAP. The system receives a major update every six months.
The ABAP Environment is a second option for extending the core system. The system only has the necessary basic modules, no specialist modules. Development on the system is called side-by-side development. Basically, you develop here like on the S/4HANA Cloud System, except that you first have to read the data from another system via an interface. The system receives an update every three months.
The advantage of cloud systems is that they are operated by SAP. As a customer, you do not have to worry about upgrading your systems and all extensions are automatically Clean Core. However, you should also test your applications after the updates, as changes or innovations can also affect your existing code, but that should not happen so often.
On-Premise
If you are on-premise, you have had the opportunity to test the first ABAP Cloud features since the S/4HANA 2022 release and can use most of the features with S/4HANA 2023. This gives you the opportunity to develop On-Premise Clean Core. Basically, you have the same resources at your disposal as in an S/4HANA cloud system.
Since you will probably still have a lot of classic ABAP developments in your system, this is where your journey towards Clean Core begins. Since we don't know what will happen after the promised end of maintenance in 2040, one idea could be to move your system towards Clean Core in order to be fit for the public cloud and not to start migrating the existing coding then.
Selection
With On-Stack and Side-by-Side Extensibility, you have two options for extending your core system. In this section we will look at when which scenario makes sense and when you should not use it.
Note
Before you think about the two scenarios, you should consider whether they make sense in your context or whether implementation is not 100% possible using ABAP Cloud On-Stack. When it comes to licenses and costs, it can also be worth taking a look at BTP, as certain scenarios could be cheaper.
In principle, the following points should be read in such a way that, if the points apply, you are in good hands in this scenario (positive list).
On-Stack
In this case we will look at implementation in the on-premise system. We should definitely look at scenarios that are closely coupled, as these are difficult to implement side-by-side.
Scenario | Description |
---|---|
Number of read accesses | If a large amount of data (> 50,000 data records*) is to be read, then it is worth implementing it on the same system in order to reduce transfer. Otherwise a lot of data would always have to be transferred to the BTP, which slows the process. |
Number of changes | If a lot of changes are to be made to the system, the extension should be in the core (mass update of data). Connection interruptions could lead to problems here. Individual updates via an API should not be a problem, however. |
Current LUW | If the extension is to be in the same "Logical Unit of Work" (LUW) and cannot be carried out decoupled via event? |
BADI | If a BADI has to be implemented, then only on the associated system. Remote BADIs are not available and make the process unstable if another system has to be called during processing. |
Importance | How critical and important is the process for the company? Currently, the ABAP Environment is not a high-availability system and if there is a failure, the process threatens to come to a standstill (system, connection, cloud connector). |
Standard | If many standard interfaces and functions are used, a shell as an interface makes little sense and only increases the complexity. |
Costs | If all users are already equipped with licenses, the additional costs for an additional system can be avoided. |
Side-by-Side
In this case, we look at the side-by-side scenario with the ABAP Environment. The applications can be built decoupled here and do not necessarily have to be created and operated in the core system.
Scenario | Description |
---|---|
Own data model | If the application has its own data model and only needs to read information from it from time to time to enrich the data, then this can be implemented in a separate system. |
Innovations | You want to work with the latest ABAP framework and features, such as Joule. There are improvements and extensions in the ABAP environment every 3 months. |
Licenses | No S/4HANA user licenses are required per user on the ABAP environment. The users are included in the basic price and on-premise data can be accessed via a technical user. |
Processes | Do you need extra computing power for your processes? With scaling, you can outsource intensive processes to the BTP in order to use the additional computing power and relieve the core. |
Interfaces | There are many standard interfaces (OData, web services) available. With little in-house development on the core, side-by-side scenarios can be easily implemented. |
Central scenario | If you have a scenario in which you connect many different systems, then a non-technical system can be helpful as a node (monitoring, distribution, hub). |
Other points
In addition to the two scenarios, you should look at the other points; here we will look at infrastructure and architecture points.
Scenario | Description |
---|---|
Know How | Basically, you should look at the know-how of ABAP development. Are the appropriate skills for ABAP Cloud already there? Upskilling developers will become increasingly important in the next few years if you want to move towards Clean Core. |
ADS | Do you need the Adobe Document Service to create documents? The service is also available in BTP, but it works differently and the costs will probably be higher. Here you should look at how the company wants to position itself here from an architectural point of view. |
Security | The systems are operated by SAP to the best of its knowledge and belief, but they can be accessed directly via the Internet. If zero-day exploits exist, the system could be attacked accordingly. This risk generally exists with cloud applications. |
ALM | Find the right application lifecycle management tool for your landscape. How do you want to manage your scenarios and put them into production together? |
Middleware | Do you want to use middleware for communication? In principle, the connection via the Communication System or the Destination Service of the BTP works without any problems. |
Central access | If you want to have central access to the apps that were developed on-stack and side-by-side, you can integrate them into a launchpad using a deep link or you need the BTP service SAP Build Work Zone (Standard Edition). |
Further information
Here is some more information on the topic of ABAP Cloud and side-by-side development.
ABAP Cloud
ABAP Cloud consists of different components. If you would like further details, we recommend the introduction to ABAP Cloud. On the overview page you will find further information on ABAP Cloud, but also on many other topics.
Side-by-Side
When it comes to side-by-side development, we limited ourselves to the relevant ABAP topics in this article. When it comes to development in the BTP, CAP and SAP Build are also part of the portfolio. Here you should look within the organization to see how you want to build your extensions in the BTP. You should look at the following topics: skills, costs, availability and effort in order to come to a decision.
Conclusion
If you want to achieve Clean Core these days, you no longer necessarily need the BTP. The BTP provides services that can generate added value and that you can implement in your applications. When implementing, you should therefore look at which requirements your application should meet.
Further information:
(*) There is no exact number for the number of data sets; this is an estimate based on our own experience. This describes the read access per minute or by a request.