11.6 Extensibility in SAP S/4HANA Cloud Private Edition: Key User, Developer, and Side-by-Side
Key Takeaways
Key user extensibility uses SAP Fiori apps in the customizing tenant (client 100); developer extensibility uses ABAP Cloud with released APIs in the development tenant (client 080).
Side-by-side extensions run on SAP BTP and are built with SAP Build (low-code) or SAP Business Application Studio (code).
Tier 1 extensions are the default, Tier 2 wraps unreleased SAP objects temporarily, and Tier 3 classic ABAP should be modernized.
Key user extensions are transported with the Adaptation Transport Organizer through the Configure Software Packages and Register Extensions for Transport apps.
After a conversion, SPDD, SPAU, and SPAU_ENH adjust modifications, and the ABAP Test Cockpit with quick fixes helps adapt custom code.
Extensibility in SAP S/4HANA Cloud Private Edition: Key User, Developer, and Side-by-Side
Section 10.4 explained why a clean core matters. This section covers the tools from the S4C03 unit Customizing Applications: what each extensibility option is for, how key user extensions are created and transported, and what happens to custom code in a system conversion.
The Extensibility Options
Extensibility covers changes that go beyond configuration: data model extensions, data exposure, changes to UIs, forms, and reports, and new UIs or applications. Extensions made with the built-in tools are separated from the core, so SAP can upgrade the system without breaking them. Whatever cannot be done in-app should be decoupled to SAP Business Technology Platform (SAP BTP).
| Option | Where | Who | Tools |
|---|---|---|---|
| Key user extensibility (in-app) | Customizing tenant (client 100) | Key users and LoB consultants without coding skills | SAP Fiori extensibility apps |
| Developer extensibility (in-app) | Development tenant (client 080) | ABAP developers | ABAP Cloud: released APIs, BAdIs, and extension points only |
| Classic extensibility | Development tenant | ABAP developers | Any SAP object can be changed; still available but not recommended |
| Side-by-side extensibility | SAP BTP | Low-code builders or developers | SAP Build (Build Apps, Build Process Automation, Build Work Zone) or SAP Business Application Studio (Java, JavaScript, or Python with the Cloud Application Programming model; extra license) |
In ABAP Development Tools, choosing the language version ABAP for Cloud Development switches on the strict ABAP Cloud syntax check and limits custom code to released APIs, such as the CDS view I_PRODUCT. Custom database tables have no default security, and Information Lifecycle Management and the Information Retrieval Framework cannot be used for them, so data access must be tested carefully.
The Three-Tier Model
- Tier 1: key user extensions and ABAP Cloud developments. They are upgrade-stable and the default for every new extension, in converted and in new systems.
- Tier 2: custom wrappers around SAP objects that are not released yet; replace them with Tier 1 once SAP releases an API.
- Tier 3: classic ABAP that does not follow the ABAP Cloud rules; it should be modernized after a conversion.
Resources: the SAP Extensibility Explorer for sample scenarios and patterns, and the SAP Business Accelerator Hub for APIs, events, CDS views, and integration content, with a dedicated SAP S/4HANA Cloud Private Edition tile. LoB configuration experts are not expected to develop with SAP Build or SAP Business Application Studio; requirements that key user tools cannot meet are escalated to the project managers, who bring in an ABAP developer or a BTP resource from the partner or the customer.
Key User Extensibility Apps
First check whether an app supports extensibility: in the SAP Fiori Apps Reference Library, open the app documentation and look for the App Extensibility section, which lists the business contexts, the UI elements for custom fields, and the BAdIs for custom logic.
| App | Purpose |
|---|---|
| Adapt UI (runtime authoring) | Move, hide, or combine fields and create variants for countries, organizational units, or user groups; requires the Administrator or an extensibility specialist role. Activate a new version (wand icon) and publish it to the transport (truck icon). |
| Custom Fields | Create a field once and enable it for related apps, reports, form and email templates, and APIs; publishing runs as a job that can take up to 30 minutes. Custom fields are not covered by read access logging or by data protection blocking and deletion. |
| Custom Logic | Implement released BAdIs with generated ABAP code, sample code, and a controlled code editor. |
| Custom Tiles | Add tiles that open external URLs; assign them to a business catalog with Custom Catalog Extensions and add them to a page. |
| Custom Business Objects | Create objects with nodes and fields, optionally with a generated UI and the option to associate them with custom fields; assign the UI to a business catalog. |
| Custom CDS Views | Build views for analytical scenarios or for APIs. |
| Extensibility Inventory | Master list of all extensions: who changed them last, their export and import status, and dependencies. |
A sales example: a new field on the sales order that also flows to the delivery and the invoice is created in Custom Fields with the sales business context and its business scenarios, and then placed on the screen with Adapt UI (section 10.4).
Forms and Email Templates
Output parameters such as channel, recipient, and form template come from the Output Parameter Determination app (section 9.7), and sent emails can be checked in Display Email Transmissions. Templates are changed by copying the standard ones: Maintain Email Templates for emails, Manage Logos and Manage Texts for the content of master forms, and Maintain Form Templates for forms. XDP files are edited in Adobe LiveCycle Designer; XSD files can be changed with any text editor when only texts change. There are three types of form templates: master forms (page layout, logo, sender address, and footer), application forms (the business content, placed in a master form layout), and standalone forms (content and layout in one). Only print forms are supported; interactive forms need the SAP Forms Service by Adobe on SAP BTP. Customized templates are created in the customizing tenant and transported.
Transporting Key User Extensions
Key user extensions start as local objects. The Adaptation Transport Organizer (ATO) must be set up. In Configure Software Packages, a software package is assigned to a transport request and task so that changes are recorded; in Register Extensions for Transport, the extension items are assigned to that package. An administrator then releases the transport requests in SE09 to move them to quality and production.
Custom Code in a System Conversion
- The Simplification Database lists the simplification items; each refers to an SAP Note that explains the impact and how related custom code can be adapted.
- Custom code scoping with the Custom Code Migration app, run in the ERP system or on SAP BTP, finds the code that is used and must be adapted and the unused code that can be deleted with deletion transports during the conversion. Its results can be uploaded to the SAP Readiness Check.
- During the conversion, ABAP Dictionary modifications are adjusted with
SPDD; after SUM, repository modifications are adjusted withSPAUandSPAU_ENH. - Then the ABAP Test Cockpit (ATC) with SAP S/4HANA checks lists the findings, each linked to SAP Notes. Quick fixes in ABAP Development Tools resolve frequent findings such as
ORDER BYissues and data model changes, for example aroundKONVandBSEG. Apply them in portions, fix syntax errors first, and run ATC again, because ATC checks only syntactically correct objects. - Finally, modernize Tier 3 code toward Tier 1 or Tier 2, and use the SQL performance tuning worklist together with the SQL Monitor to find and prioritize performance hot spots.
| Situation | Tool |
|---|---|
| Add a field to a sales app | Custom Fields plus Adapt UI |
| Trigger extra logic when a document is saved | Custom Logic (released BAdI) |
| Rearrange or hide fields for a user group | Adapt UI with a variant |
| New application on another platform | SAP Build or SAP Business Application Studio on SAP BTP |
| Find custom code affected by a conversion | Custom Code Migration app and ATC |
Tip
The pattern behind most extensibility questions: in-app and key user first, ABAP Cloud second, side-by-side on SAP BTP third, and classic modifications only as documented technical debt.
A key user wants a new field on the sales order that also appears in the delivery and the billing document. Which tool creates the field?
Transaction SPAU (modification adjustment)
The Custom Tiles app
The Custom Fields app
The Launchpad Content Manager
How are key user extensions moved from the development system to the quality and production systems?
They are transported automatically when they are published
They are recreated manually in each target system
They are moved with the SAP S/4HANA Migration Cockpit
Via a software package and a transport request released in SE09
Which statement describes Tier 2 in the three-tier extensibility model?
Key user extensions made in the customizing tenant
Custom wrappers around SAP objects that are not released yet
Classic ABAP modifications of SAP standard code
Side-by-side apps built with SAP Build on SAP BTP
Sections you finish are checked off in the contents.