Lately, the term Clean Core is on everyone’s lips, or at least on many people’s lips.
But… what does it really mean? Here we try to give a simple explanation, designed for non-technicians (and for technicians who want to explain it in an easy way to others).
What is Clean Core?
The idea is simple: keep the SAP S/4HANA core clean, with no direct modifications. Instead of lifelong zetas, any customization to the standard would be done with SAP-approved extensions. Why?
- So that upgrades don’t break anything.
- To be able to adopt innovations faster.
- To reduce maintenance costs and technical risks.
Where does it apply?
- S/4HANA Public Cloud ®Cannot be set as a standard.
- S/4HANA Private Cloud (RISE)® code is still allowed, but SAP is pushing to clean it up.
- S/4HANA On-Premise ® optional, but highly recommended so as not to have a ‘heavy and old’ system.
How are extensions made then?
Here we find two very different forms:
- In-App Extensibility (within SAP)
- Custom Fields & Logic: add Z fields and lightweight logic.
- UI Adaptation: customize Fiori screens without code.
- Workflows and BRF+: configurable approval rules.
- Custom Business Objects: your own ‘Z tables’ but clean.
- Embedded Analytics: customized reports and KPIs.
Ideal for quick and easy changes.
- Side-by-Side Extensibility (outside, in SAP BTP)
APIs and events are used to connect S/4HANA with external applications in SAP BTP.
Example: an app that analyzes suppliers with AI and connects via API to the purchasing module.
Ideal for complex logic, integrations or new apps.
What about the famous BAdIs?
- Classic ABAP BAdIs (from ECC) They are not Clean Core, they mess up the core.
- Key User BAdIs (exposed in Fiori / Custom Fields & Logic) Yes they are part of the In-App extensibility and are Clean Core friendly.
In short: not all BAdIs are valid. Only the ones that SAP has ‘cleaned up’ and put in the extensibility framework.
Examples in Purchasing (MM)
In the purchasing module, for example, Clean Core could be applied as follows:
- No Clean Core: modifying a standard program to validate amounts in a
- Clean Core: use the BAdI MM_PUR_S4_PO_MODIFY_ITEM to add a validation to the creation of a
Other examples of In-App BAdIs available:
- MM_PUR_S4_PR_MODIFY_ITEM: logic in purchase requisitions.
- MM_PUR_S4_PO_RELEASE: customize order release.
- MM_PUR_S4_RFQ_MODIFY_HEADER/ITEM: validate RFQs.
- MM_PUR_S4_PO_OUTPUT: control order output (email, printing, etc.).
Advantages and risks of Clean Core
Advantages:
- Easier to upgrade.
- Less technical debt.
- Cloud-ready.
- Lower maintenance costs.
Risks/Challenges:
- Initial cost of migrating old developments.
- Need to learn new tools.
- Some limitations with respect to the ‘free code’ of
Clean Core is not a fad, it is a necessity.
SAP wants all customers to have an easy-to-upgrade, cloud-ready system.
The golden rule is simple: Don’t touch the standard. If you need to change something, use the In-App or Side-by-Side tools.’
This way you will have a modern, clean system ready to grow without headaches.