Measuring SAP Clean Core involves a choice:
This article will help you decide which path is right for your team's Clean Core journey.
SAP's answer on how to measure clean core is based on two standard tools: The ABAP Test Cockpit (ATC) (and its newly released checks as from SAP Note 3565942) and the RISE with SAP Methodology Dashboard in SAP Cloud ALM.
The process begins with the ATC, which analyzes your custom code against a well-defined set of rules. The key to this analysis is the classification of your custom extensions based on the official release status of the standard SAP objects they utilize. This release information is transparently published by SAP in the Cloudification Repository (Viewer).
As described in more detail in the Clean Core Extensibility Whitepaper (see chapter 3.3), the ATC assigns your extension a level based on the most critical SAP object it utilizes:
The results of this structured analysis can then be uploaded to SAP Cloud ALM, populating the Clean Core Extensibility KPIs in the RISE with SAP Methodology Dashboard. Recently, the dashboard was enhanced with a display of the Clean Core Levels. This gives organizations a high-level, standardized view of their extensibility landscape, which is perfect for assessing their current situation and tracking progress. For the near future (Q1/2026) it is moreover planned to offer a deep dive dashboard that provides further details about the results.
Project Kernseife is an open-source custom ATC Check for ABAP systems that enables you to flexibly score the usage of SAP objects in your system, e.g. to score the technical debt regarding clean core based on a custom, adjustable classification. More details on the parts and approach can be found in the blog "Project Kernseife - improving the measurement of Clean Core in ABAP".
While SAP delivers thousands of released and classic APIs, it might still be not the perfect fit for your individual project and scope. Kernseife allows you to customly classify objects as "acceptable for your project", dramatically reducing noise and the need for mass ATC exemptions. Let's look into two different scenarios, to show you the benefits of custom classification:
Within the standard classification, a direct read with a SELECT from any SAP table is considered as "Level C", which leads to warnings in ABAP Test Cockpit. In your project, you want to enforce the usage of ABAP cloud, you maybe have (see next point) identified many successor objects (custom and standard) and want to push developers to the successors objects (e.g., famous I_Product instead of MARA) by showing these as an error.
Remark: In standard ATC, you can adjust the priority of a check message in general (for example "Reading from DDIC database tables or DDIC table views is not recommended (successor available)", but not based on specific SAP objects you refer to.
Now let's imagine you are working in a "clean core" project, but you need to extend processes around the Outbound Delivery Orders in EWM. After talking to experts, finding blog posts and even an "official" SAP Note, you identified the right interface: /SCWM/IF_API_WHR_OUTBOUND. Unfortunately, this is not yet listed as released or classic API. This would result in "warnings" in ATC and a classification as Level C ("Internal Objects" are used), although you did the best you can do. With Kernseife, you can now mark this SAP object as "recommended", which results in only "information" messages in ATC and leads to a "Level B" assessment of the custom code object / extension.
Based on these two examples, you can see: this is the power of a custom classification. You can overrule the SAP standard, be it because of timing (as you need the announced adjustments from the blog IMMEDIATELY) or scope (because SAP might not generally classify everything that you identify as "acceptable for your project" as "Classic API").
The possibility to "accept" usage of certain SAP objects will increase your governance quality, as your exemption approvers will not be flooded with hundreds of "false" exemption requests for objects that you generally accept in your project.
While SAP is already delivering hundreds of the most important successor classifications (famous MARA -> I_Product), there might still be potential to guide your developers more precisely. Project Kernseife allows you to maintain a successor object in your classification, that will also be visible in the result of your ATC check - this makes it actionable for your developer!
There are some more tables in the system, that have no successor mentioned officially, but where you can find (released!) CDS views as an alternative. To not flood you with details here, I simply refer to another blog based on the idea of @AndreasGraeber. But also for Function Modules or classes , there might be clear successors (e.g. not all READ_<table> might be having the successor information. There might be a lot of areas, where you want to decide in your project "don't use this, but use that!"
What happens if you create a wrapper for a standard SAP object, but your colleagues are not aware of it? They might re-create the same wrapper. With the possibility to also add Custom Objects (e.g. Z_WRAPPER_ABC) as a successor, you can also push your developers to harmonize the usage of wrappers.
In several projects, we have already seen custom dashboards to track the current state of clean core. With the combination of the level concept and the "Technical Debt Score", you can assess systems and drill down into packages or even single objects.
Project Kernseife offers you direct access (e.g. with CDS-View ZKNSF_I_SCORING) to the data from ATC check runs to build these dashboards. You can use the Kernseife BTP Application to analyze your score - or create your own dashboard, for example with SAP Analytics Cloud, reflecting your custom rules to assign custom objects to business units (e.g. ZBR* is always Brasil).
The scoring is based on your configuration in the Kernseife classification, which allows you to own the definition of your clean core levels and deviate from SAP's standard definition - by this you own the definition of your clean core levels! To stick with the examples above, the usage of /SCWM/IF_API_WHR_OUTBOUND will impact your score in a limited way.
After an analysis, you often face a daunting list of findings. The biggest challenge isn’t just identifying the issues, but knowing where to start the cleanup. This is where Kernseife's scoring mechanism becomes a powerful prioritization engine by providing two key metrics for each finding: a Score and a Potential Score.
Let's use our familiar example:
SELECT on table MARA.I_Product, has a "clean" score of 0. Therefore, the finding's Potential Score is 0.This creates a clear, quantifiable "improvement gap." An object with a Score of 10 and a Potential Score of 0 is a high-impact cleanup opportunity. In contrast, a finding with a Score of 2 and no defined successor (meaning its Potential Score is also 2) is a lower priority for immediate refactoring.
By sorting your findings based on the largest gap between the Score and Potential Score, you can instantly identify the "low-hanging fruits" and the refactoring tasks with the biggest impact. Let's be clear, this is just one piece of information, and maybe you shouldn't have any custom code in this area based on a process analysis, but I still believe it is important to have data to drive your decisions - and Project Kernseife offers you data for the technical insights.
The main reason to use a Project Kernseife is typically the power of the custom classification (as the last chapter pointed out). You can adjust the classification of SAP objects based on your project reality and support your clean core journey with tailored data.
In addition, there might be a temporary, tactical benefit: As of today, Kernseife's dashboards can fill a gap until SAP's "Extensibility Deep Dive" dashboard is generally available.
At the same time, I want to be very clear: Project Kernseife is not needed in every company and project.
Project Kernseife is not for everyone. It is for organizations that find the standard clean core measurement too rigid and are ready to invest the effort to build a more nuanced, context-aware governance model. If you have the capacity and the architectural vision, it can transform your clean core initiative from a technical cleanup exercise into a strategic management of your system's extensibility.
Interested in more? Check out Project Kernseife: our open-source project where you can join the community, contribute, and support us with a GitHub star in the repository!
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
| User | Count |
|---|---|
| 28 | |
| 14 | |
| 11 | |
| 9 | |
| 9 | |
| 9 | |
| 9 | |
| 9 | |
| 8 | |
| 8 |