abap2UI5
starting… Source

abap2UI5 Playground

ABAP on the left, the app it produces on the right, and nothing in between but the browser. No server, no SAP system, no backend of any kind — the page you are looking at is a static file, and everything below happens in this tab. What the framework underneath it can do is in the documentation — which is also where the bar's Documentation goes, on a window wide enough to carry the nav.

How it works

  1. The abap2UI5 sources are downported and translated to JavaScript at build time, and bundled with the ABAP standard library into one module this page loads.
  2. An in-memory SQLite, compiled to WebAssembly, takes the place of the database abap2UI5 keeps its drafts in.
  3. abaplint parses the real framework sources so the editor can check your class against them, and compiles only your classes when you press Run — about twenty milliseconds. The abap2UI5 linter checks the view your builder chain produces against a UI5 release, which is how an icon that does not exist gets reported at all.
  4. The abap2UI5 frontend runs in an iframe and talks to its backend over a plain fetch. The playground answers that one request from the framework running in this page, so from the framework's point of view nothing changed.

Where the apps come from

Samples above carries a handful of built-in samples to start from and browses, without leaving this page, the samples of all three sibling repositories - the same list the sample catalog holds, which is where to go when a search is worth linking to. What needs a real system is listed there too, and stays where the system is:

Credits

The playground is mostly wiring. Kudos goes to the projects it is wired out of — and they are worth a look on their own:

Read their code, star them, open the issue you ran into, send the pull request. That is the thanks that reaches an open source project. Thank you.

Keyboard

Ctrl Enter
Run - the unit tests in a .clas.testclasses.abap file first, then the app; also Ctrl S, which a browser would otherwise spend on saving the page. Auto beside it presses Run for you, shortly after you stop typing
Ctrl Z / Y
Undo and redo, per file
Shift Alt F
Format the open file
F1
Everything else the editor can do, by name
F12 / F2
Go to the definition under the cursor / rename it
Esc
Close a dialog, or the name being typed for a new file

Where it stops

A few classes, not a package: no tables of your own, no message classes, no CDS. Nothing reaches outside the browser — no RFC, no files. Only what the transpiler implements, and only the UI5 libraries built in. Your code is kept in this browser; the app's data is not.

· source and issues · MIT

Share

Samples