Lesson 2 of 5
Clean core principles
10 min
Listen to this lesson
Dimensions describe where clean core applies. Principles tell people what to do when they face a decision. A good set of principles is short, specific enough to settle arguments and written so that a developer, a process owner and a tester all understand it. This lesson builds Contoso's principles from SAP's guidance.
Standard first
The first principle is about processes, not code: adopt the standard unless there is a business reason not to. In SAP Activate this is the fit-to-standard approach, and SAP's clean core guidance asks for a standard-first mindset, few process variants and SAP Best Practices where they fit. Every gap that the standard closes is an extension nobody has to build, test or upgrade.
Released interfaces, at the highest level possible
When an extension is needed, it should use released interfaces. SAP's clean core level concept grades extensions: level A uses only publicly released, stable interfaces; level B also uses classic APIs that SAP documents as generally upgrade-stable; level C reaches into SAP internal objects for legacy scenarios; level D uses techniques SAP does not recommend, such as modifications, write access to SAP tables and implicit enhancements. SAP's guidance is to aim for A, accept B, use C only for specific needs, and avoid D. An extension is rated by its weakest component.
- ConfigureCan configuration or a standard app meet the need?
- Key userCustom fields, custom logic or custom business objects in released extension points
- Developer on-stackABAP Cloud with released APIs when logic must sit close to the data
- Side-by-sideAn app on SAP BTP using released APIs and events when it needs its own lifecycle
- ExceptionClassic or internal techniques only with a recorded design authority decision
Integration and data principles
For integration, SAP's guidance is to use standard integration scenarios and released APIs published in the SAP Business Accelerator Hub, using OData, SOAP or events, and to make every integration monitorable with clear error handling. For data, the principle is completeness, correctness and compliance: avoid incomplete, corrupted and unused data, set data quality rules, fix violations promptly and keep monitoring.
Contoso's principles, as published
- Standard first: a process variant needs a named business owner and a measurable benefit.
- Extend at the highest clean core level possible; level D is not accepted for new work.
- New ABAP code is written in ABAP Cloud unless the design authority approves an exception.
- Interfaces use released APIs or events from the SAP Business Accelerator Hub; file interfaces need a reason.
- Every interface and background job has a monitoring owner from day one.
- Every extension has an owner, a clean core level, test cases and a retirement review date.
- Master data has a data owner and quality rules; unused data is archived on a schedule.
- The system stays current: stacks are applied on a planned rhythm, not when something breaks.
| Principle | Decision it settles | Who checks it |
|---|---|---|
| Standard first | Whether to build a variant at all | Process owner and design authority |
| Highest level possible | Which technique and interface to use | Kenji's developers, ATC, code review |
| Released integration | File, IDoc or API for a new interface | Integration lead |
| Monitoring owner | Whether an interface may go live | Sam and the operations team |
| Stay current | When to apply the next stack | Program and run organization |
On-stack or side-by-side
Principles should also say where an extension lives. SAP describes three broad options: key user extensions built by business experts with low-code tools, developer extensions on-stack in ABAP Cloud when logic must sit close to the data and run in the same transaction, and side-by-side extensions on SAP BTP when an app needs its own lifecycle, other BTP services or data from several systems. Contoso's rule of thumb is simple: if the extension must validate or change an SAP document while it is being saved, it belongs on-stack; if it serves a different user group, combines data from several systems or changes on its own schedule, it belongs side-by-side. Both can be level A.
What would you do?
Maria, the order-to-cash key user, asks for a custom sales order report because the standard app "shows too many columns". What does Contoso's first principle suggest?
- Principles turn clean core into decisions people can make consistently.
- Standard first comes before any extension technique.
- Extend at the highest clean core level possible; the weakest component sets the level.
- Integration uses released APIs and events and must be monitorable; data needs owners and quality rules.
- Write principles so a reviewer can check them for a given object.
Check your understanding · not graded
Lesson check
1. What does the standard-first principle ask before any extension is built?
2. Where does SAP publish released APIs and events for integration?
3. Which principle is written so a reviewer can check it?
4. Which clean core level does SAP describe as acceptable only for specific needs?