abap2UI5
Entries
The page and the [abap2UI5](artifact:abap2ui5-abap2ui5) service have to share an origin: an `endpoint` that resolves to another origin is refused, and abap2UI5 rejects a POST whose `Origin` names another host. A host that routes by the URL hash, such as a Fiori elements app or an app with a UI5 router, needs abap2UI5 1.146.0 or later, because 1.145.0 clears the host's hash after every roundtrip. One frontend per page: the first control that starts decides which endpoint the frontend comes from.
UI5 custom control that runs an abap2UI5 app inside a host app
Event roundtrips and visual fidelity stay with a live run: the documentation leaves those to the project's MCP server and to [abap2UI5 for VS Code](artifact:abap2ui5-vscode-extension). A class that builds view parts in helper methods without the handle idiom cannot be statically reconstructed, and the render gate is then skipped with a notice while the property gate runs on what was reconstructed. A screenshot is not a preview of the app: nothing round-trips, no event reaches ABAP, and a table filled by a SELECT photographs empty unless a mock JSON file sits beside the source.
Command-line checker for abap2UI5 app classes and their views
Every gate here runs off-system, so what the class does on a real system and what the view does on the oldest UI5 release it has to serve are what the `pitfalls` catalogues carry and no local run can see. It runs abap2UI5 app classes, so ABAP that is not one has nothing here to deploy into. In system mode the sandbox tools are not offered, and an `app_act` event runs on the system as the configured user.
MCP server for the abap2UI5 check, deploy and run loop
UI5 apps written as one ABAP class, rendered by a generic shell
The embedded preview needs a system that accepts basic auth: the documentation states that pure SSO or SAML without a basic-auth fallback is not supported, and points at `external` mode, which opens the app in the normal browser with the existing SAP session. On the web only the language half runs; the preview with its proxy, traffic log and screenshot, Ctrl+F3 activation, the render gate, the workspace-wide check and the MCP servers are desktop-only. The agent app tools send nothing until `abap2ui5.agent.enableAppTools` is switched on in User settings, because an event they fire runs as the configured user and changes data on the system for real.
VS Code extension to preview, activate and lint abap2UI5 apps
The frontend is optional: where abap2UI5 apps are reached through the framework's own HTTP service, nothing from here is installed. In S/4 Public Cloud that endpoint needs `S_DEVELOP` authorisation, which the installation guide states makes it unfit for production, and the separate frontend app with an extra tile is what it names for business users. The `cloud_new` and `standard_new` branches need an abap2UI5 newer than 1.146.0 on the system.
abap2UI5 frontend as ABAP artefacts installed with abapGit
Not for views built from controls outside the portable profile: sap.ui.table, sap.f, sap.uxap, sap.ui.comp and z2ui5.cc custom controls render as a visible unsupported-control box and are listed in the diagnostics, and `CONTROL_BY_ID` and `BINDING_CALL` stay unsupported. Nine frontend actions the profile allows, `DOWNLOAD_B64_FILE` and `SYSTEM_LOGOUT` among them, are skipped and reported rather than run, and formatters other than the profile's `Formatter.Date*` render a placeholder.
abap2UI5 frontend rendering with UI5 Web Components
There is no control tree: visibility and enablement are not evaluated, and `set_value( )` is not checked against the bound paths. The frontend `CONFIG` (device, UI5 version, focus, scroll) is not sent at all, so an app that branches on device or theme sees initial values. It drives `z2ui5_cl_ui5_handler` and the draft service, which the README states are not part of abap2UI5's released API in `src/02`, so a core change there can require a change here.
Drives abap2UI5 app classes from ABAP Unit tests
The class has to be moved by hand: an abapGit pull of the exported ZIP, or a paste into ADT or SE24. The palette is held to the 121 controls of UI5 1.71, and a control inserted by its class name instead comes from whatever UI5 the canvas has loaded, with nothing checking it against 1.71 - *Checks* reports that. An app class that builds no view, or more than one, is refused.
Drag-and-drop UI5 view editor that writes an abap2UI5 app class
A `SELECT` from a business table has nothing to select from: the database in the page holds the framework's own tables, and nothing can reach outside the browser, so an app that reads a system's data cannot be tried here. Only the UI5 libraries built in are available and a control from anywhere else will not load; what the transpiler cannot compile is reported in the output panel rather than run. State lives in the tab — a reload, and a press of Run, starts over on a fresh database.
In-browser ABAP editor beside the abap2UI5 app it builds
Not where the framework code itself has to change: `input/` and the three installable branches are overwritten by the workflows on every upstream push, and a framework change is a pull request to abap2UI5. Bug reports and feature requests also go to the abap2UI5 repository rather than this one.
abap2UI5 folded into the local classes of one HTTP handler
It is not the framework and takes no framework fixes: those belong upstream in abap2UI5, and nothing under `src/`, `downport/`, `output/` and `build/` here is a source file. The build is frozen on pinned commits with no scheduled rebuild, so it does not show what abap2UI5 main does today, samples in subfolders of the samples repository are excluded because they require a real SAP system, and a known upstream transpiler issue leaves `check_on_init( )` always false, so backend-built view XML may not be returned.
abap2UI5 transpiled to JavaScript and run in a browser tab
Native iOS and Android shell for one abap2UI5 endpoint
Neither suite has been run against an ABAP system: the reference backends are the framework transpiled to Node and cap2UI5 on CAP, so what a check does on a real system is open. The portable profile is a subset of 61 controls, filled from a census of 247 core apps of which 64.8 % run unchanged, so an app outside it renders placeholders in the terminal and Adaptive Cards renderers.
Versioned specification of the abap2UI5 roundtrip protocol
A sample that needs something the system provides is not here — the samples-stack repository holds the OData, RAP, WebSocket and launchpad demos, and samples-controls the rebuilds of the UI5 Demo Kit originals. Every class in `src/` keeps to controls and properties available since UI5 1.71 and not deprecated, apart from two clipboard samples marked `(UI5 1.119+)`, so a newer control is not demonstrated here. Numbers are handed out per repository and reused across the three, so `493` alone does not name a sample: `Z2UI5_CL_SMP_APP_493` is the Hello World here.
129 abap2UI5 sample apps, one ABAP class each
The 221 ports under `src/02` need a UI5 runtime newer than 1.71: they install and activate on any release, and on an older UI5 the newer control does not render. The `src/03` collection is hand-written for SAPUI5-only controls and needs a SAPUI5 bootstrap. There are no per-library branches, so pulling the whole repository is the one way in and the activation takes a few minutes.
UI5 Demo Kit samples rebuilt as abap2UI5 apps
Not the place to learn abap2UI5 itself: every package starts from a technology the system already provides, and the framework basics and the control gallery are the other two sample repositories, abap2UI5/samples and abap2UI5/samples-controls. Three packages are out of reach on ABAP Cloud, and `05` needs the 2021 release that carries RAP business events.
abap2UI5 apps in front of OData, RAP, events and other technology
Starter repository for an abap2UI5 app with CI and agent setup
Details
History
- First entry seenDiscovered via Added by hand, GitHub API.
Profile
For your agent
- Ref
actor:abap2ui5- JSON
- /actors/abap2ui5.json
- MCP
- Connecting an agent