SampleSampletypeA worked example you read or clone. Evidence: it demonstrates, it never provides.See every one →What this type is →by a community orgby a community orgoriginPublished by a community organisation, so it outlives any one maintainer.See every one →Reference

abap2UI5 samples

129 abap2UI5 sample apps, one ABAP class each, pulled into a system with abapGit 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

Last pushLicenceMIT

Where it sits

Lives in
Part of
abap2UI5abap2UI5artifactOne 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.
Requires
abap2UI5abap2UI5artifactThe framework that renders the samples; this repository ships the app classes only.abapGitabapGitartifactPulling the samples into the system, on the branch that matches it: main for on-premise NW 7.50+ and ABAP Cloud, 702 for NW 7.02 – 7.4x.

Who is behind it

abap2UI5abap2UI5OrganisationMaintains this
In the atlas: maintains 18
@abap2UI5
maintainerabapsheepPersonContributes to this
In the atlas: contributes to 6
@abapsheep
axelmohnenPersonContributes to this
In the atlas: contributes to 4
@axelmohnen
Sven TreutlerPersonContributes to this
In the atlas: contributes to 3
@bibber0612
choper725PersonContributes to this
In the atlas: contributes to 3
@choper725
Christian GünterPersonContributes to this
In the atlas: maintains 1, contributes to 12
@christianguenter2
Christian WildtPersonContributes to this
In the atlas: contributes to 8
@cwildt
DigitalBizWhizPersonContributes to this
In the atlas: contributes to 1
@DigitalBizWhiz
Francisco MilánPersonContributes to this
In the atlas: contributes to 5
@francisco-milan
Josh ElliottPersonContributes to this
In the atlas: contributes to 9
@jelliottp
Jan LadwigPersonContributes to this
In the atlas: contributes to 2
@LadwigDev
19 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

Connections3

README

quoted from abap2UI5/samples under MIT, read
abap2UI5/samples/README.mdOn GitHub

ABAP NW 7.02 to ABAP Cloud namespace abap2UI5 AI-ready: llms.txt · skills · MCP

abap-standard abap-cloud abap-702
check-abap2UI5 check-app-rules check-rename
check-docs check-docs-links check-keywords
publish-702

abap2UI5 — 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
  1. Install abap2UI5 — this repository ships apps, not the framework.

  2. Pull this repository with abapGit, using the branch that matches your system:

    BranchSystemContent
    mainon-premise NW 7.50+ and ABAP Cloud, BTP, S/4HANA Cloudeverything
    702NW 7.02 – 7.4xportable set, downported
  3. 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:

RepositoryWhat you learnWhere to start
1️⃣samples — 📍 you are herethe abap2UI5 basics — bindings, events, popups, navigation, complete appsrun Z2UI5_CL_SMP_APP_000, or follow the sample catalogue
2️⃣samples-controlshow to use every UI5 control — the UI5 Demo Kit rebuilt with abap2UI5run z2ui5_cl_smpc_app_000
3️⃣samples-stackhow abap2UI5 plays with your stack — OData, RAP, WebSockets, the Fiori Launchpad and morepick 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.

MIT, read

History

Latest

v1.142.0-cloud

  1. v1.142.0-702

  2. v1.142.0

  3. v1.141.0-cloud

  4. v1.141.0-702

  5. v1.139.0

  6. v1.138.0

  7. v1.137.0

  8. v1.136.0

  9. v1.135.0

  10. v1.134.0

  11. v1.133.0

  12. v1.132.0

  13. v1.131.0

  14. v1.130.0

  15. v1.129.0

  16. v1.128.0

  17. v1.127.0

  18. v1.126.0

  19. v1.125.0

  20. v1.124.0

  21. v1.123.0

  22. v1.122.0

  23. v1.121.0

  24. v1.120.0

  25. v1.119.0

  26. v1.118.0

  27. v1.117.0

  28. v1.116.0

  29. v1.115.0

  30. v1.114.0

  31. v1.113.0

Details

Sources3
GitHub APIdiscovered herechecked
github.com/abap2UI5/samplestree, pushes, contributors, CIchecked
README.mdquoted, and what the entry declareschecked

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
discovered viaGitHub API
first seen in the atlas
ecosystem and domainabap, learning-and-reference
abaplint
issues under its own abaplint configuration0
lines24,316
statements10,146
objects143
files285
analysed, main
abaplint version2.120.84
Flavors2
Standard ABAP
“`main` is the default branch and is checked against both ABAP Standard and ABAP Cloud on every pull request” — abap2UI5/samples — READMEchecked
ABAP Cloud
“Every sample runs on ABAP Cloud — that is why `main` needs no cloud-specific branch.” — abap2UI5/samples — READMEchecked
Contributors19
History in the atlas1
  1. First seen.
For your agent
Ref
artifact:abap2ui5-samples
JSON
/artifacts/abap2ui5-samples.json
MCP
Connecting an agent