http-connector
An add-on that makes the abap2UI5abap2UI5One ABAP class implementing z2ui5_if_app is the whole app: the browser loads a generic UI5 shell once, and every interaction after that is an HTTP roundtrip back into ABAP.community org, abap apps of one ABAP system reachable through another: a thin ICF handler on the consumer system forwards every roundtrip to the source system through an SM59 destination.
abap2UI5 apps are reached through the HTTP service of the system they are installed on, so apps on a second system mean a second address for the user. The http-connector puts an ICF node /sap/bc/z2ui5_http on a consumer system and /sap/bc/z2ui5_http_srv on the source system the apps run on: the consumer takes the browser request, forwards it through an SM59 destination of type G or H, and returns the body and HTTP status it gets back. The apps stay where they are and run unchanged, because the source-side node is an ordinary abap2UI5 endpoint calling z2ui5_cl_ui5_http_handler. It is installed with abapGitabapGitA Git client written in ABAP that runs inside the system, so objects are cloned, pulled and pushed without leaving it; with no package manager in ABAP, a cloned repository is how code is distributed.community org, abap on both systems from the standard branch, and needs Standard ABAP 7.50 or higher and abap2UI5 on both: newer than 1.146.0 on the consumer, 1.143.0 or newer on the source. The same approach over RFC instead of HTTP is the sibling repository rfc-connector.
Facts
Where it sits
Who is behind it
In the atlas: maintains 21@abap2UI5-addonsmaintaineroblomov-devContributes to this
In the atlas: maintains 4, contributes to 44@oblomov-dev1 contributor
Before choosing this
Conditions
PracticalFunctional boundary
Stateful apps do not work through it: an app calling client->set_session_stateful( ) needs the ICF session of the system it runs on, and the consumer opens a new HTTP connection per request without forwarding the sap-contextid header that addresses that session. Request headers do not cross either, and a user exit on the source system sees the path of the node /sap/bc/z2ui5_http_srv rather than the consumer's. For ABAP Cloud there is only the cloud branch, which the README describes as an unmaintained prototype from 2025-11, consumer side only and with no CI.
What it declares
Every artifact
- Type
- App
- Origin
- By a community org
As an app
- Where it runs
- does not say
- Distributed through
- abapGit
Connections
Producing a web user interface from ABAP code
UI5 apps written as one ABAP class, rendered by a generic shell
UI5 apps written as one ABAP class, rendered by a generic shell
Git client written in ABAP that runs inside the system
Download
README
quoted from abap2UI5-addons/http-connector under MIT, readhttp-connector
Remotely call abap2UI5 apps via HTTP. The browser talks to a consumer system, which forwards every request through an SM59 destination to the source system where the abap2UI5 apps run. For landscapes where users should reach the apps of another system through one entry point.
Part of abap2UI5-addons - addons and apps for abap2UI5, installed with abapGit.
Browser ── GET/POST ──> Consumer System Source System
/sap/bc/z2ui5_http /sap/bc/z2ui5_http_srv
Z2UI5_CL_HTTP_CON_HANDLER Z2UI5_CL_HTTP_CON_SERVER
│ │
└── HTTP (SM59 destination) ──────>└──> z2ui5_cl_ui5_http_handler
Why
The abap2UI5 apps live on one system, but the browser should call another one. The http-connector puts a thin ICF handler on the consumer system that passes each roundtrip on to the source system - the apps themselves stay where they are and run unchanged.
Same approach as the rfc-connector, just with an HTTP connection instead of RFC.
Installation
The connector is installed on two systems: the consumer system the browser talks to and the source system the apps run on.
Requirements
- Standard ABAP 7.50 or higher on both systems
- abap2UI5 on both systems:
- consumer system: a release newer than 1.146.0 - the connector
forwards the query string through
z2ui5_cl_ui5_util_http, which learned it after that release - source system: 1.143.0 or newer - the first release with
z2ui5_cl_ui5_http_handler
- consumer system: a release newer than 1.146.0 - the connector
forwards the query string through
- On the consumer system: a destination in SM59 (type G or H) pointing to the
source system with path prefix
/sap/bc/z2ui5_http_srv/and login data maintained
Steps - with abapGit:
| System | Branch to pull |
|---|---|
| Standard ABAP (consumer and source) | standard |
| ABAP Cloud | cloud - an unmaintained prototype from 2025-11 (consumer side only, no CI) |
- Install abap2UI5 on both systems.
- Install this repository (branch
standard) on both systems. - On the consumer system, replace in the HTTP handler
Z2UI5_CL_HTTP_CON_HANDLERthe destinationNONEwith your source system destination (or maintain the URL constant instead). - Activate the ICF nodes in transaction SICF:
/sap/bc/z2ui5_httpon the consumer system/sap/bc/z2ui5_http_srvon the source system
Start - call the endpoint .../sap/bc/z2ui5_http of the consumer
system in your browser.
Usage
Approach
The consumer system receives the browser request, forwards method, body and query string via HTTP to the source system and returns body and HTTP status of the response. All abap2UI5 apps run on the source system.
| System | ICF node | Handler |
|---|---|---|
| Consumer | /sap/bc/z2ui5_http | Z2UI5_CL_HTTP_CON_HANDLER |
| Source | /sap/bc/z2ui5_http_srv | Z2UI5_CL_HTTP_CON_SERVER - an ordinary abap2UI5 endpoint calling z2ui5_cl_ui5_http_handler |
Limitations
- Stateless apps only. A stateful app (
client->set_session_stateful( )) needs the ICF session of the system the app runs on; the consumer opens a new HTTP connection per request and does not forward thesap-contextidheader the frontend uses to address that session. Apps keeping their state in the draft table — the abap2UI5 default — work unchanged. - The consumer forwards method, body, query string and status — not headers, and not its path. Everything abap2UI5 needs for a roundtrip travels in the body and the query; a request header an app reads through the user exit on the source system does not, and the exit sees the path of the source node
/sap/bc/z2ui5_http_srv.
Development
npm ci
npm run check
npm run check runs exactly what CI runs: abaplint (abap-standard.yaml) and
the abap2UI5-linter (check-abap2ui5.yaml).
Contributing
Issues and pull requests are welcome - see CONTRIBUTING.md for what CI checks. Whether you're fixing bugs, adding new functionality, or improving documentation, your contributions are highly appreciated.
License
MIT - see LICENSE.
History
Others providing
Compare all 17 on the UI written in ABAP page →- abap2UI5-localabap2UI5-localThe whole abap2UI5 framework folded into the local classes of one HTTP handler, so an app runs without the framework installed as a package.community org, abapabap2UI5 folded into the local classes of one HTTP handler
- abap2UI5abap2UI5One ABAP class implementing z2ui5_if_app is the whole app: the browser loads a generic UI5 shell once, and every interaction after that is an HTTP roundtrip back into ABAP.community org, abapUI5 apps written as one ABAP class, rendered by a generic shell
- abap-cloud-guiabap-cloud-guiA report-style programming model for abap2UI5: one class produces a selection screen with a WRITE list or an ALV grid, running as a UI5 app on ABAP Cloud as well as on NetWeaver 7.02.independent, abapReport-style programming model for abap2UI5 on ABAP Cloud
- custom-controlscustom-controlsThirteen custom controls for abap2UI5, a signature pad and a scanner that reads several barcodes at once among them, each one an ABAP builder class with a single render( ) method and all of them shipped in a BSP of their own.community org, abapThirteen custom UI5 controls for abap2UI5 apps
- layout-managementlayout-managementAn abap2UI5 addon that renders an internal table or a structure as a UI5 table or form with a settings popup, where the user lays it out and saves the result as a layout variant.independent, abapTable and form layouts with saved variants for abap2UI5
- abap2UI5 for Excelabap2UI5 for ExcelAn Office add-in that runs an abap2UI5 app in Excel's task pane, where the app reads and writes the workbook through the z2ui5.cc.ExcelBridge control.community org, abapOffice add-in running an abap2UI5 app in Excel's task pane
- abap2UI5-addons/popupsabap2UI5-addons/popupsReady-made dialogs for an abap2UI5 app: confirm, inform, select from a list, file up- and download, table, text edit, PDF, HTML, messages, range, value help and search help, each opened with one factory( ) call.community org, abapReady-made dialogs for abap2UI5 apps
- rap-extrap-extFloorplan classes that read a CDS entity's UI annotations at runtime and render a list report, worklist, tree, object page, overview page, value help or action dialog as an abap2UI5 app.community org, abapFloorplans rendered from CDS UI annotations as abap2UI5 apps
- selection-screenselection-screenSelect-options with saved variants for an abap2UI5 app, built from a database table name or from an internal table the app passes in.independent, abapSelect-options with saved variants for abap2UI5 apps
- abap2UI5 frontend-webcomponentabap2UI5 frontend-webcomponentAn alternative abap2UI5 frontend: one ES module registering <abap2ui5-app>, which renders the views an unchanged abap2UI5 app class sends with UI5 Web Components and no UI5 core.community org, abapabap2UI5 frontend rendering with UI5 Web Components
- abap2UI5 frontendabap2UI5 frontendThe abap2UI5 frontend as installable ABAP artefacts: per system type one generated branch carrying the BSP or HTTP service with its handler, pulled into the system with abapGit.community org, abapabap2UI5 frontend as ABAP artefacts installed with abapGit
- abap2UI5 Layout Editorabap2UI5 Layout EditorA browser editor that lays out a UI5 view by drag and drop and writes it out as one abap2UI5 app class, pulled into the system with abapGit.community org, abapDrag-and-drop UI5 view editor that writes an abap2UI5 app class
- abap2UI5 protocolabap2UI5 protocolThe abap2UI5 roundtrip written down: a versioned specification of the wire between frontends and backends, JSON Schemas for its messages, and two conformance suites that test either side.community org, abapVersioned specification of the abap2UI5 roundtrip protocol
- ZFPM_TOOLSZFPM_TOOLSA report that shows the development objects of an FPM hierarchy in one view and edits, copies, deletes, imports and exports the hierarchy as a whole rather than one object at a time.independent, abapEdits, copies and transports a whole FPM hierarchy at once
- ZWD_CALENDAR_VHZWD_CALENDAR_VHA value help for date fields in Web Dynpro ABAP screens that shows a calendar view, so the user picks a day from it instead of typing the date.independent, abapWeb Dynpro ABAP calendar value help for date fields
- abap_mustacheabap_mustacheA Mustache template engine for ABAP, rendering logic-less templates into HTML or any other text from a structure or table of any type, with partials and a separate Steampunk-compatible branch.independent, abapMustache template engine for ABAP
Details
Sources
Sources are graph entities: the same page may back several entries, and an unreachable source flags every row that rests on it.
Compatibility and provenance
abaplint
Flavors
“Standard ABAP 7.50 or higher on both systems” — abap2UI5-addons/http-connector — README, Installation
Contributors
History in the atlas
- First seen.
For your agent
- Ref
artifact:abap2ui5-addons-http-connector- JSON
- /artifacts/abap2ui5-addons-http-connector.json
- MCP
- Connecting an agent