abap2UI5 samples
129 abap2UI5abap2UI5One ABAP class implementing z2ui5_if_app is the whole app: the browser loads a generic UI5 shell once, and every interaction after that is an HTTP roundtrip back into ABAP.community org, abap sample apps, one ABAP class each, pulled into a system with abapGitabapGitA Git client written in ABAP that runs inside the system, so objects are cloned, pulled and pushed without leaving it; with no package manager in ABAP, a cloned repository is how code is distributed.community org, abap and read in the order the catalogue lists them.
Learning abap2UI5 means reading apps, and this is the collection the project publishes for that: every sample is one class directly in a flat src/ package, self-contained with no shared helper classes, so it can be read on its own and copied out. Each one adds one idea — a binding, an event, a table, a popup; the classes are named Z2UI5_CL_SMP_APP_<no>, started with ?app_start=z2ui5_cl_smp_app_<no>, and Z2UI5_CL_SMP_APP_000 is the generated overview app that links the rest. A class belongs in src/ only if it is ABAP Cloud ready, downports to 7.02 and runs on plain OpenUI5 1.71, which is what lets one main branch serve on-premise NW 7.50+ and ABAP Cloud while 702 is generated from it. It stops where the system comes in: a sample that needs an OData service, a RAP business object, a stateful session or the Fiori launchpad lives in samples-stack, and a 1:1 rebuild of a UI5 Demo Kit original in samples-controls. Without a system, the same catalogue is a page: every card opens the source or starts the class in the playground.
Facts
Where it sits
Who is behind it
In the atlas: maintains 18@abap2UI5maintainerabapsheepContributes to this
In the atlas: contributes to 6@abapsheepaxelmohnenContributes to this
In the atlas: contributes to 4@axelmohnenSven TreutlerContributes to this
In the atlas: contributes to 3@bibber0612choper725Contributes to this
In the atlas: contributes to 3@choper725Christian GünterContributes to this
In the atlas: maintains 1, contributes to 12@christianguenter2Christian WildtContributes to this
In the atlas: contributes to 8@cwildtDigitalBizWhizContributes to this
In the atlas: contributes to 1@DigitalBizWhizFrancisco MilánContributes to this
In the atlas: contributes to 5@francisco-milanJosh ElliottContributes to this
In the atlas: contributes to 9@jelliottpJan LadwigContributes to this
In the atlas: contributes to 2@LadwigDev19 contributors
Before choosing this
Conditions
PracticalFunctional boundary
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.
What it declares
Every artifact
- Type
- Sample
- Origin
- By a community org
- Use as
- A reference
As a sample
- Form
- does not say
Connections
UI5 apps written as one ABAP class, rendered by a generic shell
Git client written in ABAP that runs inside the system
UI5 apps written as one ABAP class, rendered by a generic shell
Download
README
quoted from abap2UI5/samples under MIT, readabap2UI5 — samples
Learn the abap2UI5 basics — 130 ready-to-run samples, from a one-class Hello World to complete applications.
Install them, click through, read the source: every sample adds one idea — a binding, an event, a table, a popup — so the collection reads like a course. It is the fastest way to learn abap2UI5 development.
Your first app
CLASS zcl_my_app DEFINITION PUBLIC.
PUBLIC SECTION.
INTERFACES z2ui5_if_app.
ENDCLASS.
CLASS zcl_my_app IMPLEMENTATION.
METHOD z2ui5_if_app~main.
client->message_box_display( `Hello World` ).
ENDMETHOD.
ENDCLASS.
That is a complete UI5 app — one interface, one method, and abap2UI5 renders the rest. Everything in this repository grows from this pattern.
Try it in 60 seconds
-
Install abap2UI5 — this repository ships apps, not the framework.
-
Pull this repository with abapGit, using the branch that matches your system:
Branch System Content mainon-premise NW 7.50+ and ABAP Cloud, BTP, S/4HANA Cloud everything 702NW 7.02 – 7.4x portable set, downported -
Run
Z2UI5_CL_SMP_APP_000— the overview app linking every sample of the portable set.
Every sample is Z2UI5_CL_SMP_APP_<no>, and you start it with
?app_start=z2ui5_cl_smp_app_<no>. The number alone does not name a sample:
each of the three repositories numbers from its own sequence, and the class
prefix is what says which one you mean — Z2UI5_CL_SMP_APP_493 is the Hello
World here, while Z2UI5_CL_SMPS_APP_493 in
samples-stack is a FilterBar with
variant management. So the catalogue always gives you the class, not a number.
No system at hand? The sample catalogue is
this catalogue as a page — the samples in the order they are meant to be read
in, six stages from the smallest app that runs to files, devices and custom
CSS. Every card opens the source, or starts the class in the
playground with nothing installed at
all. SAMPLES.md is the same catalogue to scroll and Ctrl+F.
Both are generated from the tree, so both are what is actually here.
Building with an AI coding agent? The
AI page of the
documentation sets up the skills and the
MCP server — whose sample search
covers every sample here:
claude mcp add abap2ui5 -- npx --yes -p @abap2ui5/mcp-server abap2ui5-mcp.
The Claude Code plugin is two commands:
/plugin marketplace add abap2UI5/abap2UI5, then
/plugin install abap2ui5@abap2ui5.
The learning path
This repository is step 1 of 3. When the basics feel familiar, the other two sample repositories take you further:
| Repository | What you learn | Where to start | |
|---|---|---|---|
| 1️⃣ | samples — 📍 you are here | the abap2UI5 basics — bindings, events, popups, navigation, complete apps | run Z2UI5_CL_SMP_APP_000, or follow the sample catalogue |
| 2️⃣ | samples-controls | how to use every UI5 control — the UI5 Demo Kit rebuilt with abap2UI5 | run z2ui5_cl_smpc_app_000 |
| 3️⃣ | samples-stack | how abap2UI5 plays with your stack — OData, RAP, WebSockets, the Fiori Launchpad and more | pick your technology in its package table |
What's inside
src/— one flat package, one class per sample: cloud-ready, downportable and plain OpenUI5 1.71. The sample catalog (bindings, events, popups, framework actions, custom controls and use cases) plus a small curated set of control demos — the complete control reference lives in samples-controls.- Everything here is on both branches: nothing is stripped from
702, and there are no shared helper classes — every sample is self-contained.
Every sample runs on ABAP Cloud — that is why main needs no cloud-specific
branch. main is the default branch and is checked against both ABAP Standard
and ABAP Cloud on every pull request; 702 is generated from main on every
push — never commit to it directly.
Layout, naming and code conventions are documented in AGENTS.md — read it before contributing.
Every pull request is linted against ABAP Standard (v750), ABAP Cloud and
7.02 (after the downport), checked with the
abap2UI5-linter, and the overview
catalog, SAMPLES.md and the docs are verified against the folder
tree.
Contributing & Issues
Pull requests are welcome, see CONTRIBUTING.md. For bug reports or feature requests, please open an issue in the abap2UI5 repository.
History
Details
Sources
Sources are graph entities: the same page may back several entries, and an unreachable source flags every row that rests on it.
Compatibility and provenance
abaplint
Flavors
“`main` is the default branch and is checked against both ABAP Standard and ABAP Cloud on every pull request” — abap2UI5/samples — README
“Every sample runs on ABAP Cloud — that is why `main` needs no cloud-specific branch.” — abap2UI5/samples — README
Contributors
History in the atlas
- First seen.
For your agent
- Ref
artifact:abap2ui5-samples- JSON
- /artifacts/abap2ui5-samples.json
- MCP
- Connecting an agent