SAP Extensions
A structured guide to all SAP S/4HANA extension patterns — from no-code key user tools through developer BAdI/RAP extensions to fully decoupled side-by-side BTP applications — all aligned with Clean Core principles.
Overview
SAP S/4HANA provides a structured extensibility framework that enables businesses to adapt and extend standard SAP functionality without modifying SAP-delivered source code. Extensions are classified by where they run (in-system or side-by-side), who can create them (key user, developer, or architect), and how they interact with SAP processes (configuration, logic extension, or new application).
The extensibility framework maps directly to the 3-tier Clean Core model: Tier 2 covers in-system extensions accessible to key users and developers through released SAP APIs. Tier 3 covers side-by-side extensions deployed on BTP that communicate exclusively through released OData V4 or REST APIs. Both tiers ensure that S/4HANA upgrades proceed without regression risk.
Extension Patterns Matrix
| Pattern | Tier | Who | Clean Core | Tooling | Upgrade Impact |
|---|---|---|---|---|---|
| Custom Fields & Logic | Tier 2 | Key User | Yes | F1481 Fiori app | None |
| Custom Business Objects | Tier 2 | Key User | Yes | F1731 Fiori app | None |
| Released BAdI Implementation | Tier 2 | Developer | Yes | ABAP Cloud / ADT | Low |
| RAP BO Extension Node | Tier 2 | Developer | Yes | ABAP Cloud / ADT | Low |
| Fiori App Variant | Tier 2 | Key User/Dev | Yes | Fiori Tools / BAS | None |
| SAPUI5 Adaptation Project | Tier 2 | Developer | Partial | Fiori Tools / BAS | Medium |
| CAP Side-by-Side App | Tier 3 | Developer | Yes | CAP + BAS + BTP | None |
| SAP Build Apps | Tier 3 | Key User/Dev | Yes | SAP Build Apps | None |
| Classic ABAP Enhancement | Tier 1 | Developer | NO | SE80 / Enhancement WB | HIGH |
Key User Extensions (Tier 2)
Add custom fields to business objects (Sales Order header/item, Purchase Order, etc.) without ABAP. Fields are immediately available in Fiori apps, CDS views, and extensible APIs.
Attach field validation, default-value derivation, or determination logic to custom fields using a formula editor or simple condition statements.
Create standalone transactional objects (master data, approval objects) with a generated Fiori UI, OData V4 API, and number range — fully transport-enabled.
Decision-table driven rules maintained by business users. Triggered from standard processes (e.g., pricing, routing) via released rule service APIs.