Producing a web interface is UI written in ABAPUI written in ABAPProducing a web user interface from ABAP code, with the application’s backend language also defining what the user sees and how it behaves.Community only; operating an existing screen programmatically is GUI automationDriving the SAP GUIOperating the SAP GUI programmatically to perform tasks or test interactions through the actual screen. Agent access to your code works with development objects instead of the user interface.Community only.
UI & Frontend Bridge
Where the service meets a screen: annotations and data binding, the launchpad, theming and localization, and what a UI needs from the backend to render.
Capabilities
Compare the concerns mapped here and open an ecosystem for its assessment. Artifact counts show providers; content counts show items linked directly to the capability.
Each ecosystem hexagon shows its own coverage assessment. Coverage is never combined across ecosystems.
Artifacts
Providers, examples and other artifacts mapped to this domain, from SAP and the community. Each artifact appears once.
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.
No published releases; repository quiet for 52 months.
Not in a project whose dependencies must all carry an open-source licence: KAEV is proprietary software, its licence page states that downloading or viewing the npm package does not by itself grant permission to use, copy, modify, redistribute, sublicense, sell, host or create derivative works, and the LICENSE file shipped with the package carries the controlling terms. Not as the last word on whether a UI5 application is secure: its rule reference states that a heuristic finding is not proof of a vulnerability, and its documentation puts professional security review beside it rather than under it.
The declared repository is archived.
Not where the UI library itself is expected to bind data: the documentation leaves binding a component's content and events to the host framework. Not from a CDN script tag: the project publishes none, so it assumes a build step.
No published releases; repository quiet for 32 months.
No published releases; repository quiet for 28 months.
No published releases; repository quiet for 54 months.
The declared repository is archived.
No published releases; repository quiet for 28 months.
No published releases; repository quiet for 43 months.
Not a way to run existing reports unchanged: a report is rewritten as a class, and `CALL SCREEN`, dynpro modules, batch input, `SUBMIT` and native SQL are refused by the converter rather than mapped. Not an SAP GUI in the browser either: the programming model is classic and the screens are UI5, and the README points at abap2UI5-addons/sapgui for SE16N or SM37. Output has gaps the README names — ALV cells show dates and times as the model carries them rather than in the user's format, print is a text file because ABAP Cloud has no spool, and value tables for F4 are read on premise only.
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.
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.
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.
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.
The value-help and search-help popups read whichever DDIC check table the user selects without an authorisation check of their own, so the README asks for your own checks and a restriction on which tables may be browsed before they are used beyond a development system. The transport-request popup works only on-premise, and the search help does not yet run on the Cloud stack.
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.
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.
No published releases; repository quiet for 79 months.
Neither the package manifest nor the repository tree declares a licence.
Neither the package manifest nor the repository tree declares a licence.
Neither the package manifest nor the repository tree declares a licence.
Neither the package manifest nor the repository tree declares a licence.
Neither the package manifest nor the repository tree declares a licence.
The maintainer marks this under active development; public APIs, annotation names and OData contracts may still change.
Not behind a managed approuter: SAP Build Work Zone does not expose the `/$companion/**` routes, so Companion never reaches CAP, and the README names managed approuter and Work Zone as out of scope for v1. Not where help has to be authored in a browser, since the editor, the producer and writes are absent and content lives in files the plugin compiles.
Neither the package manifest nor the repository tree declares a licence.
Nothing about it is readable from outside the package: there is no repository, no issue tracker, and the npm page carries no readme, so the README, the examples and the changelog can be read only from the tarball or a CDN mirror, and a bug has nowhere to be filed. Provider URLs are called from the plugin with API keys taken from environment variables in a .env file, so on BTP no call resolves through a destination and the keys live in the environment. The npm line stops at 1.0.1 on 3 November 2025; the changelog shipped inside that version is headed v2.1, so the version npm shows and the version the author counts are not the same.
Neither the package manifest nor the repository tree declares a licence.
No license Neither the package manifest nor the repository tree declares a licence.
Functional boundary Not a descriptor to deploy as it stands: the approuter's `sessionSecret` is written out in `mta.yaml`.
No license Neither the package manifest nor the repository tree declares a licence.
Functional boundary The subaccount destination's url names the us10 trial's repository runtime, so another region or subaccount needs it rewritten before the descriptor deploys.
For a deployed application's UI. The README adds it with `npm add cds-plugin-ui5 -D`, a development dependency of the CDS server, and states nothing about a build or a deployment.
No license Neither the package manifest nor the repository tree declares a licence.
Functional boundary The proxy URL is a widget property the browser calls, so the [EdgeFlow Proxy API](external:cogniac-edgeflow-proxy) has to be reachable from the SAP DM client itself, on a local network and over HTTPS: its own repository asks for a certificate the browser trusts and documents generating one for the Pi's LAN IP. NC logging needs an SFC selected in the work list: without one the request is rejected with an error message.
Needs Standard ABAP 7.50 or higher, and an abap2UI5 whose frontend reserves the resourceRoot `z2ui5_cci`: a frontend predating that rename reserves `z2ui5ccc` and cannot resolve the controls. Frontend artefacts only one company needs, such as an in-house reuse library, a corporate icon font or company CSS, are what [abap2UI5-addons/custom-controls-customer](https://github.com/abap2UI5-addons/custom-controls-customer) is for, the same mechanism under the second reserved root `z2ui5_ccc`. ExportSpreadsheet needs SAPUI5: under OpenUI5 `sap.ui.export` is missing and the button renders disabled.
Neither the package manifest nor the repository tree declares a licence.
Neither the package manifest nor the repository tree declares a licence.
Neither the package manifest nor the repository tree declares a licence.
Neither the package manifest nor the repository tree declares a licence.
No published releases; repository quiet for 93 months.
Stateful apps do not work through it: an app calling `client->set_session_stateful( )` needs the ICF session of the system it runs on, and the consumer opens a new HTTP connection per request without forwarding the `sap-contextid` header that addresses that session. Request headers do not cross either, and a user exit on the source system sees the path of the node `/sap/bc/z2ui5_http_srv` rather than the consumer's. For ABAP Cloud there is only the `cloud` branch, which the README describes as an unmaintained prototype from 2025-11, consumer side only and with no CI.
There is nothing here for ABAP for Cloud: the requirements name Standard ABAP releases only, and a CDS/SADL based OData service for `ABAP for Cloud` compatibility stands under Limitations & Todo.
The layout is rendered into an [abap2UI5](artifact:abap2ui5-abap2ui5) view and its events are passed on from the app's `main` method, so there is nothing here for a UI outside an abap2UI5 app. Shared layouts stay denied until a class implementing `z2ui5_if_layo_auth` exists in the system, so an installation whose key users are to maintain shared layouts has that class and its authorization object to write first.
LISA does the translation step only: it does not discover objects or manage transports, and its README pairs it with [an ADT MCP server](artifact:sap-adt-mcp-server) for those. Every write needs a transport request, and which object types it can write differs between public cloud or [the SAP BTP ABAP environment](artifact:btp-abap-environment) and on-premise or private cloud, and by release. Running it locally is meant for development and testing, not production.
Release and repository quiet for 28 months.
Release and repository quiet for 50 months.
Not the whole addon in ABAP Cloud: the DDIC annotation service is not released there, so the annotations come through XCO instead, a database table is read-only, the DDL source is not read, and the cloud path was written without a cloud system to run it on. Not for a plain internal table, since it renders from CDS annotations; the README points at `z2ui5_cl_ui5_view_builder` for that case. As of 2026-10 the maintainer states that none of it has been clicked through in an SAP system: the RAP write path and the reading of metadata extensions were written from documentation and pass the three offline gates only.
SAP's own guidance is narrower than the service's reach: it names standalone, single-tenant applications that do not connect to other applications as the fit, and says to stay on [the HTML5 Application Repository](artifact:btp-html5-application-repository) and the application router where those meet your needs better. Four hard limits decide it before taste does — 300 requests per second per subaccount, ten retained versions per application, 100 MB per application and 400 MB for the deployment archive.
2 of 8 plans deprecated.
Three of its five reference corpora are not shipped: without an api.sap.com key and session cookie, a tenant bearer token and a local SAPUI5 fetch, the REST, MDO and UI5 tools return a message naming the preparation step that is missing. The HTTP transport has no authentication until `MCP_AUTH_TOKEN` is set, so anything past localhost needs that or an authenticating reverse proxy. Packing the ZIP, uploading it through Manage POD 2.0 Extensions and placing the widget in the POD Designer stay manual steps outside the agent, and the SAPUI5 fetch defaults to the SDK's newest version, which the README says is not the version a tenant runs. Node.js 22 or newer.
The `PARAMETERS`-style selection screen with event blocks is not here: `z2ui5_cl_sel_screen` and `z2ui5_cl_sel_screen_sel` are a skeleton whose methods are still empty, and the README points at [abap-cloud-gui](artifact:abap2ui5-addons-abap-cloud-gui) for a full report-style screen.
Release and repository quiet for 26 months.
Neither the package manifest nor the repository tree declares a licence.
No license Neither the package manifest nor the repository tree declares a licence.
Functional boundary As a deployment template it stops at the service: the `mta.yaml` has one module, `gen/srv` on the Node.js buildpack, and no HTML5 repository or router module for the app.
On the UI5 path what comes back is an XML view or fragment with the data already substituted, streamed as the entity's media content, rather than an HTML page — the README calls this pre-rendering, and only the Vue path produces markup. The view kept under `srv/` has its UI5 bindings replaced by Handlebars expressions, so it is a second copy of the view, separate from the one the application ships. Version 1.0.8 declares `@sap/cds` `>=8` as its peer dependency, which puts a project on CAP 7 outside its stated range.
Release and repository quiet for 38 months.
Quiet Release and repository quiet for 41 months.
Functional boundary The case it is written for is a document that has not been uploaded; anything already served from a URL is what the framework's own PDF control takes. Passing a document as a data URI means holding it in the page as a string first, which is a different cost from streaming it from a server.
Release and repository quiet for 29 months.
Release and repository quiet for 39 months.
On the second installation path there is no dependency to upgrade: the README states that for option b) all manual steps must be repeated every time the library version is updated.
The README states that UI5X is in early development and that APIs may change before version 1.0. Styling covers the `sap_horizon` and `sap_fiori_3` families with their dark and high-contrast variants; any other theme falls back to the base theme.
The declared repository is github.com/your-username/urp-vocab, an unedited placeholder. Three releases, September 2025.
Texts that must not leave the organisation: the file is uploaded to the site to be translated, and neither the tool's page nor the site's data protection notice says where it is processed or how long it is kept.
No published releases; repository quiet for 88 months.
Related capabilities
Producing a web interface is UI written in ABAPUI written in ABAPProducing a web user interface from ABAP code, with the application’s backend language also defining what the user sees and how it behaves.Community only; operating an existing screen programmatically is GUI automationDriving the SAP GUIOperating the SAP GUI programmatically to perform tasks or test interactions through the actual screen. Agent access to your code works with development objects instead of the user interface.Community only.
Target size for a finger is touch operationTouch operationOperating an app with a finger, a stylus or a gloved hand on a tablet, kiosk or shop-floor terminal: targets large enough to hit, and input that does not assume a hardware keyboard. Distinct from responsive layout, which is about the width of the screen rather than what touches it.SAP and community, unassessed.
Getting a build onto one is deploymentDeploymentGetting an application onto a runtime and keeping it there: build descriptors, deployment topology, service bindings and lifecycle operations. The target runtime determines how the application is packaged and configured.SAP and community, narrow by design; serving a frontend’s built static files is app hostingApp hostingWhere a built frontend lives and what serves it — the static files of a frontend application after the build, reachable behind a login and beside the API it talks to, without a web server of your own.SAP only.
Distinct from query profilingQuery profilingFinding which application queries are slow and why, at the application query layer rather than in database traces — attributing cost back to the service, entity and handler that caused it.Unmapped, which starts at the service and the database rather than at the browser's network log.
Serving the application’s files is app hostingApp hostingWhere a built frontend lives and what serves it — the static files of a frontend application after the build, reachable behind a login and beside the API it talks to, without a web server of your own.SAP only; extending the surrounding shell is launchpad pluginsLaunchpad pluginsExtending an application launchpad’s shell rather than an individual app: adding header buttons, user-menu entries, frame areas or background behaviour shared across the apps it hosts. A development sandbox for launching an app is a separate concern.SAP and community, unassessed.
Serving the application’s files is app hostingApp hostingWhere a built frontend lives and what serves it — the static files of a frontend application after the build, reachable behind a login and beside the API it talks to, without a web server of your own.SAP only; extending the surrounding shell is launchpad pluginsLaunchpad pluginsExtending an application launchpad’s shell rather than an individual app: adding header buttons, user-menu entries, frame areas or background behaviour shared across the apps it hosts. A development sandbox for launching an app is a separate concern.SAP and community, unassessed.
Starting a coded project from a template is generatorsGeneratorsGetting from nothing to a project that runs, and from a project that runs to one that has the piece you just decided you need. Two different moments: the first is a one-time decision about layout, the second recurs for the life of the project.SAP and community, narrow by design, and building a native mobile client is mobile appsMobile appsBuilding a native iOS or Android app over business data: onboarding, offline sync against an OData service, device features, and the client that runs on the phone. Distinct from a web app opened in a phone's browser; operating a web app with a finger is touch operation.SAP and community, unassessed.
Distinct from a web app opened in a phone's browser; operating a web app with a finger is touch operationTouch operationOperating an app with a finger, a stylus or a gloved hand on a tablet, kiosk or shop-floor terminal: targets large enough to hit, and input that does not assume a hardware keyboard. Distinct from responsive layout, which is about the width of the screen rather than what touches it.SAP and community, unassessed.
Distinct from launchpad pluginsLaunchpad pluginsExtending an application launchpad’s shell rather than an individual app: adding header buttons, user-menu entries, frame areas or background behaviour shared across the apps it hosts. A development sandbox for launching an app is a separate concern.SAP and community, unassessed, which extend a launchpad's shell around many apps.
Starting a process from an application and reacting to it is workflow integrationWorkflow integrationDriving an external workflow or automation engine from an application and reacting to what it emits — triggering runs transactionally and importing the engine’s shape as a typed model.SAP and community, core adopted it, and the screen a person approves a task on is task and approval UIsTask and approval UIsThe screen a person approves something on — a workflow or process task rendered as a form, embedded in an inbox that supplies its context. Distinct from workflow integration, which is about driving the engine: this is the half a human touches, and its hard part is that it cannot run without the engine that normally feeds it.SAP only.
Running the process itself is process automationProcess automationModelling and running a business process: the process flow, the forms people fill in, decision tables, bots for repetitive steps, and dashboards over the instances that run. Starting a process from an application and reacting to it is workflow integration, and the screen a person approves a task on is task and approval UIs.SAP only; the screen the responsible person acts on is task and approval UIsTask and approval UIsThe screen a person approves something on — a workflow or process task rendered as a form, embedded in an inbox that supplies its context. Distinct from workflow integration, which is about driving the engine: this is the half a human touches, and its hard part is that it cannot run without the engine that normally feeds it.SAP only.
Distinct from Web Components interopWeb Components interopUsing standards-based custom elements inside an app, and the question of which control set an app should be built from at all, two concerns that are often answered as one.SAP and community, narrow by design, which brings in standard custom elements, and from generatorsGeneratorsGetting from nothing to a project that runs, and from a project that runs to one that has the piece you just decided you need. Two different moments: the first is a one-time decision about layout, the second recurs for the life of the project.SAP and community, narrow by design, which scaffold a control project rather than being one.
Distinct from Web Components interopWeb Components interopUsing standards-based custom elements inside an app, and the question of which control set an app should be built from at all, two concerns that are often answered as one.SAP and community, narrow by design, which brings in standard custom elements, and from generatorsGeneratorsGetting from nothing to a project that runs, and from a project that runs to one that has the piece you just decided you need. Two different moments: the first is a one-time decision about layout, the second recurs for the life of the project.SAP and community, narrow by design, which scaffold a control project rather than being one.
Content
Content includes reference architectures. Each item appears once; filter by type to narrow the list.
Recent changes
- App hostingcore coverage revised
Reassessed against the graph (check:capabilities): names the SAP application router package the sentence already relied on.
- App hostingcoverage by ecosystem revised
Reassessed against the graph (check:capabilities): removed the absence claim about ui5 artifacts.
- App hostingcoverage by ecosystem revised
Reassessed against the graph (check:capabilities): removed the count of services.
- App hostingcoverage by ecosystem revised
Reassessed against the graph (check:capabilities): removed the count of services and linked the application router package.
- Custom controls and librariescore coverage revised
Reassessed against the graph (check:capabilities): independent maintainers, the abap2UI5 controls and a generator now shape the answer.
- Data bindingcore coverage revised
Reassessed against the graph (check:capabilities): independent packages now provide this capability on the UI5 door beside the framework's own binding.
- Data bindingcore coverage revised
Reassessed against the graph (check:capabilities): states the kinds the independent providers add; the option list names every provider.
- Frontend boundarycore coverage revised
Reassessed against the graph (check:capabilities): both providers of this capability are sap-official, so no artifact of another origin is present behind the door; the schema allows relationship only on a core-and-community block.
- Integrated frontend dev servercoverage by ecosystem revised
Reassessed against the graph (check:capabilities): the only provider of the capability that counts is cds-plugin-ui5, which sits on the CAP door and does not serve the UI5 door, so no provider of another origin counts there. The core stays present on the sourced what_core_does. The middlewares the removed sentence named are not providers of this capability.
- Launchpad and site contentcoverage by ecosystem revised
Reassessed against the graph (check:capabilities): a community-org package for UI5 launchpad tiles now provides this capability, so the community is present.