SAP BTP & Extensibility

Clean Core

Clean core is SAP's principle for keeping an SAP S/4HANA system close to standard so that upgrades stay predictable: extensions use released APIs and stable extension points, run on-stack with ABAP Cloud or side-by-side on SAP BTP, and avoid modifying SAP code. Clean core is a governance target measured over time, not a product.

Quick facts

Type
Architecture and governance principle
Layer
Business logic & data model; SAP BTP
Extension options
Key user extensibility, developer extensibility (ABAP Cloud), side-by-side on SAP BTP
Measured with
ABAP Test Cockpit checks; clean core levels A–D in SAP Cloud ALM
Who owns it
Enterprise architects, development leads, SAP CoE
Applies to
Public Edition (enforced by design); Private Edition and on-premise (by governance)
Layer: Business logic & data modelWhere it sits ▾
Where it sits: L5 · Business logic & data modelLayer: Business logic & data model. Also touches: SAP BTP.L1L2L3L4L5L6BTP

Layer: Business logic & data model

Also touches: SAP BTP

Open the architecture map →

What does clean core mean in practice?

Clean core is often reduced to "no custom code", which is not what SAP describes. The principle concerns how a system deviates from standard, not whether it does:

  • Extensions use released APIs and extension points, so SAP can change internals without breaking them.
  • Configuration is preferred over code wherever the standard offers a setting.
  • Integration runs through released, documented interfaces rather than direct table access.
  • Data and operations follow current standards, so the system stays supportable.

A system can carry many extensions and still be clean, as long as each one depends only on what SAP has committed to keep stable. Clean core is therefore a rule about dependencies, not a ban on differentiation.

How do the clean core levels work?

SAP's current guidance classifies custom objects into four levels, which SAP Cloud ALM uses to report a clean core share:

LevelWhat the object usesClassification
AABAP Cloud and released APIs onlyClean core
BReleased APIs plus classic APIs that SAP classifies for customer useClean core
CSAP internal objects not classified or intended for customer useConditionally clean; needs change monitoring
DModifications and other patterns SAP does not support for extensionsNot clean core

Earlier SAP material describes a three-tier extensibility model with comparable intent, and both vocabularies still appear in SAP documentation. The clean core levels turn the principle into something a team can measure object by object.

What are the strengths of the clean core principle?

  • Predictable upgrades: extensions that use only released APIs keep working across releases, which reduces regression testing and upgrade projects.
  • Cloud compatibility: the same rules apply in SAP S/4HANA Cloud Public Edition, so an on-premise team following them keeps its options open.
  • A shared decision ladder: standard first, then key user extensibility, then developer extensibility, then side-by-side gives architects and consultants a common language.
  • Measurability: ABAP Test Cockpit checks and the level classification make progress visible instead of anecdotal.
  • Lower long-term cost: fewer modifications mean fewer adjustments during support package and release changes.

For any organization that wants to stay on current SAP releases, clean core is the extension policy that SAP's own tools and guidance are built to support.

Where does clean core stop?

  • It does not decide what to build. Clean core governs how an extension depends on SAP, not whether the requirement behind it is worth building.
  • It moves complexity rather than removing it. A side-by-side extension is clean for the core, but it adds integration, identity, monitoring and a second lifecycle.
  • API coverage is uneven. Where no released API exists, teams fall back to level C or wait, and that gap is a frequent complaint in practitioner communities.
  • Legacy code takes years. Large ECC-era code bases move level by level; the measurement shows the distance, not the path.
  • Ownership is outside the scope. An extension can be perfectly clean and still lack an owner, documentation or a link to the process it supports.

Clean core keeps the ERP upgradeable; ownership, process design and the cost of the surrounding landscape remain separate questions.

How do you decide where an extension goes?

Work down this ladder and stop at the first option that meets the requirement:

  1. Standard or configuration. Can a setting, a business role or a delivered app cover it?
  2. Key user extensibility. Is it a custom field, a check, a default value or a UI adaptation? Alder Manufacturing's need for a supplier rating field on purchase orders ends here.
  3. Developer extensibility. Does it need custom ABAP close to SAP S/4HANA data and transactions? Build it with ABAP Cloud on-stack.
  4. Side-by-side on SAP BTP. Does it serve external users, combine several systems or need its own lifecycle? A self-service portal for Cedar Office Supply belongs here.
  5. Classic extension. Only with a documented exception, an owner and a plan to move up the levels.

The clean core decision is made per requirement, and the reason for each choice should be recorded where architects can find it later.

What are common mistakes with clean core?

  1. Treating it as a one-time cleanup. Without checks in the development process, new level C and D objects appear after the project ends.
  2. Banning level C outright. Some requirements have no released API yet; a monitored level C object can be the honest choice.
  3. Counting objects instead of risk. One modification in a central posting routine weighs more than many unused reports.
  4. Moving everything to SAP BTP. Side-by-side is not automatically cleaner if the extension still needs unreleased interfaces.
  5. Forgetting the UI layer. Copied and modified SAP Fiori apps carry their own upgrade risk; SAP's UI extension mechanisms, such as adaptation projects, are the safer route.

Most clean core failures are governance failures that show up later as upgrade effort.

Clean core vs. ABAP Cloud: what is the difference?

Clean coreABAP Cloud
What it isA principle and governance targetA development model and ABAP language version
ScopeExtensions, configuration, integration, data and operationsCustom ABAP code on-stack or in the SAP BTP ABAP environment
Enforced byPolicy, ABAP Test Cockpit checks, clean core levelsThe compiler: only released APIs are allowed
RelationshipThe goalOne of the main ways to reach the goal for ABAP code

Clean core is the target state; ABAP Cloud is the development model that makes custom ABAP code meet that target by construction.

FAQ

Is clean core only relevant for SAP S/4HANA Cloud Public Edition?

No. Public Edition enforces clean core by design, because customers cannot modify SAP code there. Private Edition and on-premise allow modifications, so clean core becomes a governance decision. SAP's guidance and ABAP Test Cockpit checks apply to all three deployment options.

Does clean core mean no custom code?

No. Clean core allows extensive custom code, provided it depends only on released APIs and extension points. A system with many well-built ABAP Cloud extensions and side-by-side apps can be cleaner than a system with a few direct modifications.

How do you measure clean core?

ABAP Test Cockpit runs clean core checks against custom code, and SAP provides a dedicated check variant for clean core readiness. SAP Cloud ALM classifies objects into levels A to D and reports a clean core share, which makes progress visible over time.

What is the difference between clean core and ABAP Cloud?

Clean core is the principle of keeping the ERP close to standard. ABAP Cloud is the development model that restricts ABAP code to released APIs and cloud-ready language features. ABAP Cloud is one way to achieve clean core; key user and side-by-side extensibility are others.

Can a system with modifications still be called clean core?

Not for the modified objects. Modifications are classified at the lowest level, outside clean core. The rest of the system can still be clean, and many organizations track the remaining modifications as technical debt with a plan to replace them over time.

Sources

Applies to
SAP S/4HANA on-premise · SAP S/4HANA Cloud Private Edition · SAP S/4HANA Cloud Public Edition
Last reviewed

SAP, SAP Fiori, SAPUI5, SAP S/4HANA, SAP BTP and other SAP products and services mentioned are trademarks or registered trademarks of SAP SE (or an SAP affiliate company) in Germany and other countries. This guide is independent and is not affiliated with, sponsored or endorsed by SAP SE.