Custom Apps (Z-Apps)
Custom apps, or Z-apps, are applications and extensions that a customer builds in the customer namespace, where object names start with Z or Y, such as freestyle SAPUI5 apps, SAP Fiori elements apps on custom CDS views or copies of SAP apps. Custom apps belong to the customer, who tests and maintains them across every upgrade.
Quick facts
- Type
- Customer-owned development (UI, services and logic)
- Layer
- UI applications; services & APIs; business logic & data model
- Namespace
- Customer namespace Z* or Y*, or a registered prefix namespace /…/
- Typical stack
- SAPUI5 or SAP Fiori elements UI, OData service, CDS and ABAP logic
- Launchpad wiring
- Technical catalog, target mapping, business catalog, role
- Who works with it
- Customer developers, partners, CoE, application owners
- Applies to
- SAP S/4HANA on-premise and Private Edition, SAP BTP; developer extensibility in Public Edition
Layer: UI applicationsWhere it sits ▾
Layer: UI applications
Also touches: Services & APIs, Business logic & data model
Open the architecture map →What counts as a Z-app?
The name comes from the ABAP naming rule: without a registered prefix namespace, repository objects created in customer systems must start with Y or Z. "Z-app" has become shorthand for any application the customer builds and owns, whatever its technology:
- freestyle SAPUI5 apps for tasks no standard app covers;
- SAP Fiori elements apps on custom CDS views and services;
- copies of SAP-delivered apps, renamed into the Z namespace and changed;
- custom transactions, reports or Web Dynpro ABAP applications launched from the launchpad;
- side-by-side apps on SAP BTP that extend SAP S/4HANA processes.
Some organizations register their own prefix namespace instead of using Z or Y, which avoids name clashes between projects. The defining trait is ownership, not the letter: a Z-app is any application whose lifecycle the customer, not SAP, is responsible for.
How is a custom SAP Fiori app built and delivered?
A typical on-stack custom app touches every layer below the launchpad:
- Data and logic: CDS views and, for transactional apps, a business object built with the ABAP RESTful application programming model; older apps use classic ABAP.
- Service: an OData service, published through a RAP service binding or, in older apps, built in the Gateway Service Builder (SEGW) and activated in /IWFND/MAINT_SERVICE.
- UI: a SAP Fiori elements or freestyle SAPUI5 app, deployed to the SAPUI5 ABAP repository, where each app is stored as a BSP application with a Z or Y name.
- Launchpad content: a tile and target mapping in a technical catalog created with the launchpad app manager (/UI2/FLPAM), referenced in a business catalog and assigned through a role in PFCG.
- Transport: all objects travel through the transport landscape together.
Each of the five steps creates an object the customer must keep consistent later. A custom SAP Fiori app is therefore a small product with several moving parts, not a single file.
What are the strengths of custom apps?
- Exact fit: a custom app can model a process step the way the business actually works, including steps SAP does not deliver.
- Differentiation: processes that set a company apart are the ones least likely to be covered by standard apps.
- Same user experience: built with SAP Fiori elements or SAPUI5, a custom app looks and behaves like SAP apps and uses the same launchpad, roles and navigation.
- Modern, upgrade-friendly options: apps built with ABAP Cloud on released APIs, or side-by-side on SAP BTP, can stay stable across upgrades.
Example: Alder Manufacturing builds a small app for its buyers to confirm Bright Freight delivery slots, a step no standard app offers, and links it from the purchase order. Where the standard ends and the process does not, a custom app is often the most direct way to close the gap.
Where do custom apps stop?
- Ownership never ends. Every SAPUI5 upgrade, back-end release and security review touches the app. Someone must test it, fix it and know why it exists.
- Dependencies decide the cost. Apps that use unreleased SAP objects fall into the lower clean core levels and may break during upgrades; apps on released APIs carry far less risk.
- Knowledge leaves with people. Many custom apps were built by one developer or partner; when they leave, the app's purpose and logic often become hard to reconstruct.
- Copies drift. A copied SAP app does not receive SAP's fixes and enhancements, and the gap widens with each release.
- Inventory gaps. Organizations frequently cannot say how many custom apps they run or who uses them, which is a frequent complaint in practitioner communities.
These limits are not technical flaws; they are the price of owning software that SAP does not maintain.
When should you build a custom app instead of extending?
Work down the extension ladder and stop at the first step that fits:
- Standard: check the SAP Fiori Apps Reference Library for an app or successor that covers the need.
- Key user extensibility: a missing field, check or default value belongs here, not in a new app.
- App variant instead of a copy: to change an SAP-delivered app, an SAPUI5 adaptation project creates a variant that keeps receiving SAP updates; SAP supports this in Public Edition since release 2402.
- On-stack developer extensibility: a new app on released APIs with ABAP Cloud.
- Side-by-side on SAP BTP: when the app spans systems, needs its own data or has a different lifecycle.
A common mistake is to copy a standard app to change two fields; the fix is an adaptation project or key user extensibility. A custom app is justified when the process step itself is missing, not when a field is.
What changes between SAP S/4HANA deployment options?
- On-premise and Private Edition: both classic ABAP and ABAP Cloud are available, so custom apps range from fully clean core to deep modifications. Governance, not the system, sets the limits.
- SAP S/4HANA Cloud Public Edition: developer extensibility lets customers build custom SAP Fiori apps in a cloud-optimized subset of ABAP on released APIs only; classic Z development with unrestricted access is not possible.
- SAP BTP: side-by-side apps live in their own subaccount and lifecycle and reach SAP S/4HANA only through APIs.
The ownership question is the same in every option; what differs is how much the platform restricts what a custom app may depend on.
Custom apps vs. key user extensibility: what is the difference?
| Custom app (Z-app) | Key user extensibility | |
|---|---|---|
| What it is | A new application or a changed copy, owned by the customer | Changes at SAP-released extension points of standard apps |
| Who builds it | Developers or partners | Trained key users in SAP Fiori apps |
| Typical scope | A missing process step or a whole new task | A field, a check, a default value, a UI adaptation |
| Upgrade behavior | Depends on what the app uses; customer tests every release | Upgrade-stable by design at released extension points |
| Who maintains it | The customer, for the app's whole life | SAP maintains the app; the customer maintains the extension |
Key user extensibility adapts what SAP delivers; a custom app adds what SAP does not deliver and makes the customer its permanent owner.
FAQ
What does the Z in Z-app mean?
The Z refers to the customer namespace in the ABAP repository. Without a registered prefix namespace, objects created in customer systems must start with Z or Y, so customer-built programs, services and apps carry those letters. Z-app has become shorthand for any customer-owned SAP application.
Are Z-apps against the clean core principle?
Not in themselves. Clean core is about dependencies: a custom app built with ABAP Cloud on released APIs, or side-by-side on SAP BTP, can be fully clean. Custom apps that use unreleased SAP objects or modify SAP code are the ones that fall into the lower clean core levels.
Should I copy a standard SAP Fiori app to change it?
Usually not. A copy stops receiving SAP's fixes and enhancements. For small changes, use key user extensibility or an SAPUI5 adaptation project, which creates an app variant on top of the SAP app. Copy only when the changes are so deep that the original no longer serves as a base.
Who should own a custom SAP Fiori app?
A named application owner on the business side plus a technical owner in IT or a partner. The business owner decides whether the app is still needed; the technical owner keeps it compatible with each SAPUI5 and SAP S/4HANA release. Apps without both owners tend to become unmaintained.
Can I build custom apps in SAP S/4HANA Cloud Public Edition?
Yes, through developer extensibility. Customers build custom SAP Fiori apps in a cloud-optimized subset of ABAP that only uses released APIs, or build side-by-side apps on SAP BTP. Classic Z development with unrestricted access to SAP objects is not available in Public Edition.
Sources
- SAP Help Portal: Names of Repository Objects — customer namespace Y and Z (ABAP programming guidelines)
- SAP Help Portal: The SAPUI5 ABAP Repository and the ABAP Back-End Infrastructure
- SAP Help Portal: Developer Extensibility (SAP S/4HANA Cloud Public Edition)
- SAP Help Portal: Develop an SAPUI5 Adaptation Project (SAP S/4HANA Cloud Public Edition)
- Applies to
- SAP S/4HANA on-premise · SAP S/4HANA Cloud Private Edition · SAP S/4HANA Cloud Public Edition · SAP BTP
- Last reviewed