Learn the abap2UI5 basics — 104 ready-to-run apps, from a two-line 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.
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.
-
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 below, 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 path 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.
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 path |
| 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 |
src/01"samples" — 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. Present on both branches.src/00"system" — no demo category:00/97holds the experimental samples and00/98the test and scaffolding apps. Both are stripped from702. 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.
Pull requests are welcome, see CONTRIBUTING.md. For bug reports or feature requests, please open an issue in the abap2UI5 repository.