Insights
What happens when the ABAP server sends the screen instead of only the data.
38 short essays, each making a single claim and showing it in code wherever code can show it. Read one on its own and it stands. Read them in order and the parts add up to the whole picture — what the framework rests on, how it works under the app, what a working day with it looks like, and where it belongs in the landscape. They are the “why it works like this” for a developer and an architect.
There is a good chance you will also pick up a few things about ABAP along the way. RTTS, the dialog step, ENQUEUE, the selection screen, the ICF node, the launchpad: this framework did not invent much, it just moved a lot of familiar furniture into a browser.
Three ways to put a UI5 screen in front of a user on an ABAP stack, all three rendering in the browser with the same control library. UI5 Freestyle fixes the view at build time, as a file in a frontend project. RAP with Fiori Elements fixes it at activation time, as annotations on CDS. abap2UI5 fixes it when the request is answered, as a string an ABAP class produced for this request — and the next request may answer differently. Everything else follows from where the view sits.
Three ways in
How it works, end to end
Two strings per request, one handler, a new instance every time — and the one click, one request model every app is written against.
- #5
- #16
- #6
- #7
- #8
- #9
- #10
- #11
- #12
- #13
- #14
- #15
Where it belongs, and running it
Releases from 7.02 to ABAP Cloud, clean core, on-stack or side-by-side, RAP or freestyle — then the threat model, the sizing and the upgrade.
- #5
- #16
- #27
- #28
- #29
- #30
- #31
- #33
- #34
- #37
- #38
- #39
The case for abap2UI5
What it costs, who runs it, what your organization keeps and when to pick something else — on the page written for that question.
All 38, in reading order
New here? Start with #5 UI5 Over-the-Wire, the one idea everything else is a consequence of, and #16 One Click, One Request, the mental model every app is written against.
What It Rests On
The two properties that come before the mechanism: a model that may be typed at runtime, and an app that is one class with no programming model around it.
The First Example
The smallest complete app, read line by line — and nothing beside it.
How It Works
The mechanism under the app, one piece per article. The block to read end to end if you like knowing why something works before you use it.
- #5UI5 Over-the-Wireevery request answered with two strings
- #6The Frontend Knows Nothingone shell for every app, and why it never needs a redeploy
- #7One Handler for Every Appno service per screen, and what the handler leaves to the apps
- #8Only the Changed Partthe view stays, the model updates
- #9A New Instance on Every Requestserialized state, and what that asks of the class
- #10Swapping the View at Runtimea different control, chosen in an IF
- #11No Build, No Deploy, No Cachechange, activate, refresh — and where a BSP still enters
- #12Where Your Own JavaScript Goesthree declared seams, no plugin system
- #13Four Verbs, Every Controlwhy the view builder knows no controls
- #14A Classrun for the Browserthe shape it copied
- #15Where the Selection Screen Wentthe variable and the field are one declaration again
A Working Day
What an ABAP developer meets in the first week, and how each old habit carries over — messages, locks, F4, authorizations, the launchpad tile.
- #16One Click, One RequestPBO, PAI, and the dispatch in main( )
- #17What the Client Can Dothe whole API surface, by shape
- #18CALL SCREEN, LEAVE SCREENthe app stack, sub-apps and popups
- #19Where F4 Wentvalue help in three sizes
- #20MESSAGE Still Worksmessages, exceptions, translation
- #21The Lock Is Gone by the Next Clickenqueue in a stateless world
- #22Who May Start Which Appone ICF node, authorization, CSRF, the CSP
- #23100 Rows, Four Hours, One Requestthe three numbers behind performance
- #24ABAP Unit for a Screentesting the class, linting the view
- #25When One Class Is Not Enoughthe seams of a larger app
- #26A Tile Like Any Otherinto the Fiori Launchpad
Where It Belongs in the Landscape
Releases, clean core, deployment shapes, and the technical criteria that decide between abap2UI5, RAP and UI5 Freestyle for a given screen.
- #27One Codebase, 7.02 to ABAP Cloudwhy the release barely matters
- #28Cloud-Ready Is a Property of Your Appdecided in the SELECT
- #29When the API Is Not Releasedthe clean core levels, and the wrapper
- #30On-Stack or Side-by-Sidetwo places to run, one class
- #31One App, Many Systemsseveral S/4 systems behind one app, and the boundary the app draws
- #32From ITS to abap2UI5twenty-seven years in one line
- #33RAP or abap2UI5?behavior against screen, and EML from an abap2UI5 app
- #34UI5 Freestyle or abap2UI5?the four edges where the browser has to be smart
- #36Written for Agentswhy one class in one language suits an agent
Running It
What an architect asks before an installation goes productive: the threat model, the sizing, the upgrade.
The essays on how it works grew out of Under the Hood of abap2UI5 on the SAP Community, the long version in one piece.