S/4HANA Clean Core
Architect / Cross-trackIntermediate

Clean Core Extension Decision Framework

Learn how to choose between configuration, key-user extensibility, developer extensibility, BAdI, API and side-by-side extension.

Explanation

Clean Core is not a single tool. It is a decision framework. Before writing ABAP code, first check whether the requirement can be solved using standard configuration. If not, check key-user extensibility for custom fields, logic and UI adaptation. If the requirement needs ABAP development inside S/4HANA, check developer extensibility options such as released BAdIs, released CDS views, RAP behavior extensions or released APIs. If the logic is loosely coupled, integration-heavy or should not sit inside the core, side-by-side extension on SAP BTP may be better. A senior consultant must justify the extension choice, not just implement the first available enhancement.

Code example

ABAP Code
* Clean Core decision checklist:* 1. Can standard configuration solve it?* 2. Can key-user extensibility solve it?* 3. Is there a released BAdI or released API?* 4. Is the requirement better as side-by-side BTP extension?* 5. Only then consider tightly coupled in-core custom logic. * Example pseudo-decision in ABAP design documentation:* Requirement: Validate sales order before save.* Decision: Use released BAdI because validation must happen inside save process.* Reason: Side-by-side app would be too late for blocking save.* Risk control: Logic kept in service class and enabled by configuration.

Real project scenario

A business wanted a custom approval check during sales order processing. Instead of adding an implicit enhancement, the team first checked configuration, then released BAdIs and finally implemented a controlled BAdI-based validation with a reusable service class.

Common mistakes

- Jumping directly to implicit enhancement. - Ignoring configuration option. - Not checking released BAdIs or APIs. - Using BTP for logic that must run synchronously inside save.

Best practices

- Start with configuration. - Prefer released extension points. - Use side-by-side extension for loosely coupled scenarios. - Document extension decision and risk.

Interview angle

A strong answer should explain Clean Core as an extension decision model, not just a slogan.