This is a test message to test the length of the message box.
ABAP Clean Core
Created by Software-Heroes

ABAP Quick - Clean Core


In this article something about Clean Core, what does it mean for the developer, what are the requirements and what do you have to pay attention to.

The Clean Core topic is currently haunting the aisles of many companies, but what does it actually mean and how can you achieve it? In this article we want to answer the question of what exactly is behind it and how you can implement it in your own life today.


Explanation of terms

As the term suggests, we want to keep our core system clean, i.e. the system on which our main processes run. But what does clean mean? This is about the proportion of in-house development and the influence on the system. There is a wide range of enhancement techniques for an SAP system, such as: BADI, enhancement or user exit. In the end, however, there is also the possibility for modifications, that means we change the delivered standard.

And this is exactly where the problem lies, we change standard coding, copy functions or use non-approved APIs from SAP. This creates a certain amount of effort during the upgrade, since we have to compare the standard with our changes and then also have to completely test our own developments. Because non-released objects also mean that they can change or be deleted.

All of this delays a system upgrade and means a lot of effort for the customer. In the meantime, SAP also delivers new releases every 3 months to bring new features and eliminate errors.



For you as a developer, this now means that you should only extend the system via approved extension points and use released objects. Especially with your own developments, you then have to think about the use and creation of new data elements, since most data elements are not released. Why shouldn't you use elements from SAP that aren't approved? Quite simply, since these can change as well as the standard. This doesn't happen that often with data elements, but each time requires a corresponding amount of testing.


Cloud Ready

We should also take a look at the second term, which is called Cloud Ready. This condition refers to an S/4 cloud system, which is provided as a SaaS solution and only offers a very spartan approach to expansion. The system is upgraded by SAP, so such a system is automatically Clean Core, but does not offer the full scope for expansion.

In the cloud-ready context, there are no more SAP GUIs and transactions, everything is based on Fiori as the front end, which the classic transactions work at most via GUI for HTML.



Everything that is an in-house development represents an extension of the system and is not clean core at first glance. SAP provides three different extension models that you can use:

  • Keyuser Extensibility - Is it possible to make extensions to the system via Fiori Apps, e.g. to create Z-fields in the data model and bring them to the UI, to express BADIs or to create your own CDS views on released views and make them available as an API.
  • Side-by-Side Extensibility - Creation of your own applications in the Z and Y area on your own system, mostly in the cloud (ABAP Environment aka Steampunk). It consumes core system APIs to get data and functionality.
  • Embedded Steambunk - Also called developer extensibility, since the on-stack developer is given the opportunity to expand the system according to Clean Core Pattern.


The last two methods are based on the ABAP RESTful Programming Model (RAP for short), which is developed in ABAP and ultimately provides a Fiori application.


Released Objects

You can find released objects using the ABAP Development Tools using the search function or using your own tree that you can create in the Project Explorer. Using the Project Explorer it would look like this:


If you have an object and you are not sure if it is released, then you can call the "Properties" view and get the corresponding information about the API status of the object. Here is an example of a core data service for the business partner:


The C1 contract is important here, whether and where the object can be used. If such a contract exists, the object is released and can be used. The C0 Contract is a brand new status and means that the object is also approved for expansion.



The new world sounds logical in itself and seems to bring some advantages. But if you then look at the possibilities of customer-specific extensions, you will quickly realize that many features that you actually need are still missing. APIs for providing the data are not yet available for all modules, and Core Data Services are not yet available for all tables.

With Embedded Steampunk, there is already a first approach to building your own APIs and doing a lot directly in the system, but it will still take a few years before all customer requests are covered.



You should now have learned what Clean Core actually means and what it is needed for. SAP still has a long way to go to provide customers with everything they need to cleanly expand a system. But the foundations have been laid and you can use them today to steer your system in the right direction.

Included topics:
QuickClean CoreFaster Updates
Comments (2)

And further ...

Are you satisfied with the content of the article? We post new content in the ABAP area every Friday and irregularly in all other areas. Take a look at our tools and apps, we provide them free of charge.

ABAP Quick - RFC Error handling

Category - ABAP

How do you actually handle errors when communicating via a destination in the function module? More about this in our tip.


ABAP Quick - CLEAR right

Category - ABAP

Delete correctly? In this article we want to take a look at when it makes sense to delete and how you can do it effectively.


ABAP Quick - Performance chained statements

Category - ABAP

Let's take a look at the performance when creating chained statements with DATA and FIELD-SYMBOL. Which variant will be ahead in terms of performance?


ABAP - ALV still relevant in 2022?

Category - ABAP

Today the joking question, do we still need reports that generate ALV outputs in 2022? In this article, we want to look into this question.


ABAP in Change

Category - ABAP

The programming language ABAP has been changing for years and is being modernized in various concepts. In this article, we'll look at it in detail.