S/4 Public Cloud
Use abap2UI5 for on-stack extension scenarios in S/4 Public Cloud. It uses only released APIs and is fully compatible with the ABAP Cloud language version, satisfying SAP's "clean core" cloud extension requirements.
To install abap2UI5 on S/4 Public Cloud, follow these steps:
1. Install abap2UI5 with abapGit
S/4 Public Cloud supports only the ADT abapGit version. abap2UI5 contains only classes, interfaces, and tables, so you can pull it without issues.
Use the standard installation process with abapGit for Eclipse.
Two choices you cannot change later without relinking
Folder logic must be PREFIX. It is what .abapgit.xml declares, and the repository's package tree is built for it.
Keep the target package name short. abap2UI5 ships sub-packages two levels deep (src/00/01, src/01/04, …), and with PREFIX logic every derived sub-package name starts with the name you pick here. ABAP caps a package name at 30 characters, so a long root leaves the deeper ones no room — the pull then fails and the repository has to be unlinked and linked again against a shorter package. Something like ZABAP2UI5 is plenty.
A status bar shows the progress of the pull operation:
After a moment, the installation completes:
2. Mass Activate the Imported Artifacts
When installing repositories with ADT abapGit, all artifacts arrive inactive. Activate them manually. The simplest approach: create a dedicated inactive/active folder tree for the abap2UI5 project:
Trigger the mass activation for all inactive artifacts. Some objects may refuse to activate on the first pass because something they depend on is still inactive — repeat the mass activation, or force it, until the list is empty:
When activation completes, refresh the folder tree:
Now you'll see that all artifacts are active:
3. Set Up the HTTP Service
Build an HTTP handler manually or use the cloud branch of the frontend repository.
Important: In S/4 Public Cloud, accessing the HTTP endpoint needs S_DEVELOP authorization. This is the quickest way to test in development environments, but makes the scenario unfit for production.
For production, finish the frontend deployment and tile configuration in the steps below.
4. Deploy the UI5 App (Optional)
Up to here the HTTP service is enough — you can open it and use abap2UI5 with a developer role. Deploying the app is what makes it reachable for business users, through a Launchpad tile.
ADT abapGit cannot import a UI5 app (BSP), so this step runs from VS Code with the SAP Fiori Tools extension pack instead.
Clone the branch that matches your stack —
cloud_v2for the current UI5 runtime:shgit clone --branch cloud_v2 --single-branch https://github.com/abap2UI5/frontend.gitIn the
appfolder, open the Fiori Application Info page and add a deployment configuration pointing at your system. Keep the target package name short here too.Add a Launchpad configuration in the same place. It writes the descriptors that let a tile start the app; pick the semantic object and action that suit your scenario.
Deploy.
Where the deployed app sends its requests
Only the separately deployed app needs this — when the backend serves the page itself, it tells the frontend to post back to the same URL.
The cloud and cloud_v2 branches ship sap.app.dataSources.http.uri as /sap/bc/http/sap/z2ui5, the path an HTTP service with ID Z2UI5 is published under. If you created the service under a different ID, change that entry in manifest.json to match — otherwise the POSTs go to a service that does not exist and the app fails with a 403 ICFEUCONFORBIDDEN (UCON) error, which does not say which URL it was.
The on-premise branches (standard, standard_v2) use the SICF path /sap/bc/z2ui5 instead.
5. Give Business Users Access (Optional)
Opening the HTTP service directly works because a developer has S_DEVELOP. A business user has not, so the app has to be reached through a tile — which means one chain of objects, each published locally before the next one can see it:
LADI → IAM App → Business Catalog → Business Role → Space, Page, Tile
Launchpad App Descriptor Item (LADI) — create it and add the navigation parameters naming the app to start.
The
idhas to be UPPERCASEA lower-case
idis rejected, and the form editor may refuse to save without making clear why. Use Open With → Source Editor to edit the descriptor directly.IAM App — create one, include the HTTP service, add the LADI from step 1, and publish locally.
Business Catalog — link the IAM App to it and publish locally.
Business Role — add the business catalog to a role in the ABAP Launchpad.
Space and page — create them and place the tile, so the user has somewhere to click.
SAP's Launchpad configuration guide covers the generic mechanics of these objects.
A walkthrough with screenshots
Warren Eiserman documented a full first install of this scenario, step by step and with screenshots of every dialog: UI5 in ABAP Cloud (without RAP or Fiori Elements). Several of the warnings on this page come from that write-up.
BTP ABAP Environment
BTP ABAP Environment shares the same technical base as S/4 Public Cloud. The instructions above work for both systems.
