Skip to content

Repository files navigation

abap version namespace dependency

abap-standard check-abap2UI5

abap2UI5 — samples-ext

abap2UI5 in company with other technologies.

abap2UI5 is more than a standalone framework for building apps. At its core it is deliberately agnostic: it makes no assumption about where your data comes from, which model backs your UI, or which stack you have already invested in. That neutrality is what makes it flexible — whenever it is useful, abap2UI5 plugs into what your system already offers.

This repository shows exactly that. OData, Smart Controls, RAP with and without draft, RAP business events, stateful sessions and ABAP locks, WebSockets via AMC/APC, the MIME repository — abap2UI5 works alongside each of them, and each one keeps doing what it is good at. Nothing here replaces an existing technology; everything here complements one. Whether you use any of it is entirely up to you — everything is possible, nothing is required.

The samples live in their own repository simply because they reach beyond a plain abap2UI5 installation: they use something the system provides, so the basic samples in abap2UI5/samples stay install-and-run.

Every area is self-contained and brings its own README. Pick the one you came for and try it out — the others can wait until you need them.

What is in here

Package Topic Plays together with
src/01 OData — bind a table to an OData V2 model an activated OData V2 service
src/02 Smart Controlssap.ui.comp driven by OData metadata SAPUI5 + an activated Gateway service
src/03 RAP — consume a business object with EML ABAP Platform >= 1909; the BO ships with this repo
src/04 RAP with Draft — use draft handling as above
src/05 Business Events — react to RAP events, log them, show them as above
src/06 Stateful Sessions / Locks — sticky session, ENQUEUE ABAP Standard (on-premise), the table Z2UI5_T_SMPE_01
src/07 AMC/APC — a news feed over WebSocket on-premise APC/AMC, the ICF node Z2UI5_APC_SMP_2
src/08 MIME Play Audio — play a sound from the MIME repository the ICF service /SAP/PUBLIC/BC/ABAP/mime_demo

The numbering is a reading order, not a dependency chain: 01 starts where most systems already are — an activated OData service — and each package from there reaches a little deeper into the stack. Enter wherever your system is today.

Setup

  1. Install abap2UI5.
  2. Pull this repository with abapGit. It runs on ABAP Platform >= 1909 or a BTP ABAP Environment — that is what EML asks for, which is why it is the one sample repository without a 7.02 downport.
  3. Set up whatever the package you picked builds on — its README says so in one short section.
  4. Start an app with ?app_start=<class name>.

Every sample of the abap2UI5 sample scheme is called Z2UI5_CL_SMPE_APP_<no>, and the tables in the package READMEs give you the number, so sample 487 is ?app_start=z2ui5_cl_smpe_app_487. The RAP packages additionally come with an overview app that lists and launches their samples: ?app_start=z2ui5_cl_smpe_app_00.

Namespace

Every object carries the token SMPE behind its type token — the scheme the samples repository uses with its SMP token:

Z2UI5_CL_SMPE_<object>    classes, including the behavior pools and event handlers
Z2UI5_T_SMPE_<object>     persistent tables
Z2UI5_D_SMPE_<object>     draft tables
Z2UI5_E_SMPE_<object>     data elements
Z2UI5_R_SMPE_<object>     CDS entities and their behavior definitions
Z2UI5_SD_SMPE_<object>    service definitions
Z2UI5_SB_SMPE_<object>    service bindings

Runnable samples are Z2UI5_CL_SMPE_APP_<no>, so the class name is what you pass to ?app_start=.

Class names are capped at 25 characters, tables at 16. Both limits and the patterns themselves are enforced by the object_naming rule in abaplint.jsonc; the comment there explains where the numbers come from. The other object types have no object_naming key in abaplint, so for those the scheme is convention only.

One group sits outside the scheme: the objects abaplint cannot name-check at all — the AMC channel, the APC push channel with its ICF node, and the two MIME objects. They carry the older SMP token (Z2UI5_AMC_SMP_2, Z2UI5_APC_SMP_2, z2ui5_smp_error.mp3, z2ui5_smp_success.mp3).

Checks

Workflow What it does
abap-standard abaplint ./abaplint.jsonc — syntax v757, the on-premise release
check-abap2UI5 abap2ui5lint — the app class and the view it produces, together

There is no abap-702 counterpart and no derived branch: EML runs from ABAP Platform 1909 onwards, so unlike the other sample repositories this one needs no downport. There is no abap-cloud counterpart either — several packages here are on-premise by design (src/06 ENQUEUE, src/07 APC/AMC), so a cloud syntax check over the whole tree would report expected errors rather than useful ones.

Two things to know when you read the badges:

  • abaplint parses EML but does not resolve behavior definitions, so entity, alias and action names inside EML statements are not checked, and neither are the .asbdef files — the samples themselves are the reference here.
  • RAISE ENTITY EVENT and FOR ENTITY EVENT (src/05) are beyond the abaplint parser as well, so that package reports parser errors on syntax that activates fine in an ABAP system.

Where to go from here

Take whichever package matches the technology you already run — an OData service, a Gateway service, a RAP business object, an APC channel — and put an abap2UI5 app in front of it. None of these packages depends on another, and none of them is a prerequisite for using abap2UI5 at all: they are options you can reach for when they help.

Something else you would like to see combined with abap2UI5? Open an issue or a pull request — the collection grows with the scenarios people bring to it.

About

Learn how to use OData, RAP, Drafts, Smart Controls, AMC/APC etc.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Contributors

Languages