Skip to content

abapsheep/abap2UI5

 
 

Repository files navigation

Build UI5 Apps Purely in ABAP – no JavaScript, OData, or RAP needed.

Just like the good old days when Selection Screens and ALVs delivered full UIs from a few lines of ABAP. Designed with a minimal system footprint, it runs in both on-premise and cloud environments.

📚 Documentation🎯 Samples (350+ apps)💬 Issues🔗 LinkedIn👥 Slack💖 Sponsor

Key Features

  • User-Friendly – Implement a single interface to build a complete UI5 app, purely in ABAP
  • Minimal Footprint – Needs only a simple HTTP handler – no BSP, OData, CDS, or RAP
  • Cloud & On-Premise Ready – Runs in ABAP Cloud and Standard ABAP environments
  • Broad Compatibility – Supports all ABAP releases from NW 7.02 to ABAP Cloud
  • Easy Installation – Install via abapGit – no extra app deployment needed

Quick Start

Ready to build your first app? Check out the Getting Started Guide and jump in with the following code:

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's it – your first UI5 app is ready and abap2UI5 handles the rest! 🎉

How It Works

abap2UI5 is a single-page app. The browser loads a UI5 shell once, then talks to ABAP via JSON roundtrips:

 Browser (UI5)                        Backend (ABAP)
       │                                    │
       │── GET ────────────────────────────▶│  Returns HTML + UI5 shell
       │◀── HTML ────────────────────────── │
       │                                    │
       │── POST { event, model deltas } ──▶ │  1. Load session draft
       │                                    │  2. Apply two-way bindings
       │                                    │  3. Call your app->main( )
       │                                    │  4. Persist new draft
       │◀── { view XML, model, actions } ── │
       │                                    │
       │  (UI5 renders, binds, awaits next event)

You never touch JSON, HTTP, or JavaScript yourself. You implement z2ui5_if_app~main, build views with an ABAP XML view builder, and bind ABAP variables to UI5 controls — the framework handles serialization, sessions, and rendering.

References

Credits

This project thrives thanks to its contributors and these awesome tools:

Get involved

We welcome all contributions! Here's how you can help:

  • Issues - Report issues and provide feedback
  • Contribution - Contribute code and documentation
  • LinkedIn - Follow abap2UI5 for updates and community highlights
  • Sponsor - Sponsor our work to support ongoing innovation

Share your knowledge, hunt for bugs, submit a PR, write a comment, give us a ⭐, or tell your friends about abap2UI5. Every contribution counts! 🙏

About

Developing UI5 Apps in pure ABAP

Resources

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages