Skip to content
 
 

Latest commit

 

History

2,308 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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.

GitHub stars License: MIT ABAP NW 7.02 to ABAP Cloud LinkedIn

test check_gates abaplint

DocumentationSamplesAI AssistantsIssuesSlackSponsor

Why abap2UI5?

  • 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
  • Seamless Integration – Runs in Launchpads and on BTP alongside your RAP and Fiori Elements apps

Quick Start

Check out the Getting Started Guide and jump in:

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! 🎉

Next stop: the samples – hundreds of ready-to-run apps, from data binding basics to OData, RAP, and Launchpad integration – and the docs for everything else.

How It Works

Your entire app is one ABAP class implementing z2ui5_if_app. The browser loads a generic UI5 shell once; after that, every user interaction is one HTTP/JSON roundtrip: the framework restores your app's state, calls main, and sends the view back:

%%{init: {"sequence": {"useMaxWidth": false}}}%%
sequenceDiagram
    participant Browser
    participant ABAP
    Browser->>ABAP: GET
    ABAP-->>Browser: UI5 shell (once)
    loop each interaction
        Browser->>ABAP: event + model
        ABAP-->>Browser: view + model
    end
Loading

Everything in between is handled for you:

  • Data Bindingclient->_bind( var ) connects an ABAP variable to a UI5 control; user input flows back before main runs
  • Eventsclient->_event( |SAVE| ) wires any UI5 event to a name you check with client->get_event( )
  • Rendering – views are plain UI5 XML built in ABAP with z2ui5_cl_ui5_view_builder; every control, property, and aggregation is available 1:1
  • State – your app object is serialized and restored on every request, so attributes simply keep their values

Popups, navigation, messages, and frontend actions travel the same protocol – you never touch JSON, HTTP, or JavaScript. The architecture is described in UI5 Over-the-Wire.

Enterprise Readiness

  • Security – Apps run entirely inside your SAP authentication and authorization: a single HTTP endpoint, standard SAP logon, no separate user store
  • Stability – Every change is CI-tested against Standard ABAP and ABAP Cloud, and every merge is downported and linted against NW 7.02 before the 702 branch is published – backed by unit tests and automated browser tests
  • No Lock-In – MIT license, unlimited users, no per-user fees; apps are plain ABAP classes in your system – versioned, transported and tested like any other ABAP code
  • Support – Community support via Slack and GitHub, commercial options listed in SUPPORT.md

AI Assistants

abap2UI5 apps are a perfect fit for AI assistants: one ABAP class and nothing else – no service, no frontend project, no deployment pipeline. One file to write, hundreds of samples to learn from, and the abap2UI5 linter to verify the result without an SAP system.

Paste this into ChatGPT, Claude, Copilot or any other assistant before asking for code:

Before writing any abap2UI5 code, fetch and follow these two files. They
describe the current APIs and take precedence over anything you already know:
https://raw.githubusercontent.com/abap2UI5/abap2UI5/main/docs/agents/building-apps.md
https://raw.githubusercontent.com/abap2UI5/abap2UI5/main/llms.txt
Build views with z2ui5_cl_ui5_view_builder, one ABAP class per app, and stay
inside the templates and APIs those files describe. If something is not
covered there, say so instead of inventing it.

Claude Code users can add the mcp-server — validate, deploy, and screenshot apps without an SAP system — with one line: claude mcp add abap2ui5 -- npx --yes @abap2ui5/mcp-server. The full setup is described in Building with AI.

References

More talks, features & blog posts (2023–2024)

Credits

This project thrives thanks to its contributors and these outstanding open-source projects:

Get Involved

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

  • Issues - Report issues and provide feedback
  • Contribution - Contribute code and documentation (CONTRIBUTING.md is the in-repo guide)
  • LinkedIn - Follow abap2UI5 for updates and community highlights
  • Sponsor - Sponsor our work to support ongoing innovation

Developer quick start – three commands and you have the full CI gate locally:

npm ci               # the toolchain: abaplint, the gates, the transpiler
npm run check        # fast lint while iterating (seconds)
npm run verify       # the full pre-PR gate, exactly what CI runs

See CONTRIBUTING.md for the complete workflow.

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

About

Developing UI5 Apps in pure ABAP

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages