rfc-connector
Calls 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 another system over RFC: an ICF handler on the system the browser talks to forwards each roundtrip through an SM59 destination to the system the apps run on.
The abap2UI5 apps live on one system and the browser should call another one. rfc-connector is installed on both of them: on the consumer system an ICF node /sap/bc/z2ui5_rfc whose handler passes each request over an SM59 type 3 destination, and on the source system an RFC-enabled function module that hands the request to abap2UI5's own HTTP handler and returns body and HTTP status. The apps stay where they are and run unchanged. Both systems need Standard ABAP 7.50 or higher and 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 1.143.0 or newer, and the same version of this repository on each, because the two sides exchange its DDIC structures over RFC. Request headers do not travel, and a stateful app does not work: every RFC call gets a fresh context on the source system.
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
For an app that calls client->set_session_stateful( ), which needs the ICF session of the system it runs on; apps keeping their state in the draft table, the abap2UI5 default, work unchanged. For an app that reads a request header through the user exit on the source system, because the consumer forwards method, body, path, query string and status, not headers.
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
Calling ABAP function modules from outside the system over RFC
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/rfc-connector under MIT, readrfc-connector
Remotely call abap2UI5 apps via RFC. The browser talks to a consumer system, which forwards every request through an SM59 RFC 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_rfc Z2UI5_FM_RFC_CONECTOR
Z2UI5_CL_RFC_CONNECTOR_HANDLER │
│ │
└── RFC (SM59 destination) ────────>└──> z2ui5_cl_ui5_http_handler
Why
The abap2UI5 apps live on one system, but the browser should call another one. The rfc-connector puts a thin ICF handler on the consumer system that passes each roundtrip on to the source system by RFC - the apps themselves stay where they are and run unchanged.
Same approach as the http-connector, just with an RFC connection instead of HTTP.
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 1.143.0 or newer on both
systems - the connector calls
z2ui5_cl_ui5_http_handler, which first shipped with that release. URL parameters (?z2ui5-bundle,app_startfor the user exit, …) are forwarded only when the consumer runs an abap2UI5 release newer than 1.146.0; on an older one they stay behind, as before. - On the consumer system: a destination in SM59 (type 3) pointing to the source system, with login data maintained
Steps - with abapGit:
| System | What to install |
|---|---|
| Consumer system | abap2UI5 + this repository (branch main) |
| Source system | abap2UI5 + this repository (branch main), the same version as on the consumer |
- Install abap2UI5 on both systems.
- Install this repository on both systems — the same version on each: consumer and source exchange the DDIC structures of this repository over RFC.
- On the consumer system, replace in the HTTP handler
Z2UI5_CL_RFC_CONNECTOR_HANDLERthe destinationNONEwith your source system destination. - On the consumer system, activate the ICF node
/sap/bc/z2ui5_rfcin transaction SICF. The source system needs no ICF node - it is called through the RFC-enabled function moduleZ2UI5_FM_RFC_CONECTOR.
Start - call the endpoint .../sap/bc/z2ui5_rfc of the consumer
system in your browser.
Usage
Approach
The consumer system receives the browser request, forwards method, body, path and query string via RFC to the source system and returns body and HTTP status of the response. All abap2UI5 apps run on the source system.
| System | Entry | Object |
|---|---|---|
| Consumer | ICF node /sap/bc/z2ui5_rfc | Z2UI5_CL_RFC_CONNECTOR_HANDLER |
| Source | RFC-enabled function module | Z2UI5_FM_RFC_CONECTOR (function group Z2UI5_FG_RFC_CONNECTOR) |
| Both | DDIC structures exchanged over RFC | Z2UI5_S_HTTP_REQ, Z2UI5_S_HTTP_RES, Z2UI5_S_HTTP_CONFIG |
Limitations
- Stateless apps only. A stateful app (
client->set_session_stateful( )) needs the ICF session of the system the app runs on, and every RFC call gets a fresh context on the source system. Apps keeping their state in the draft table — the abap2UI5 default — work unchanged. - The consumer forwards method, body, path, query string and status — not headers. Everything abap2UI5 needs for a roundtrip travels in the body and the URL; a request header an app reads through the user exit on the source system does not.
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
Notes
Others providing
Compare all 7 on the RFC connectivity page →- abap_fm_jsonabap_fm_jsonA JSON adapter that exposes ABAP function modules over HTTP: a handler class in an ICF service calls the module named in the URL and serialises its parameters to and from JSON.independent, abapJSON adapter exposing ABAP function modules over HTTP
- erpl-node-rfcerpl-node-rfcAn SAP RFC client for Node.js and TypeScript that implements the protocol in Rust and ships prebuilt for seven platforms behind node-rfc's API, so there is no SAP NW RFC SDK to download.independent, abapRFC client for Node.js and TypeScript without the NW RFC SDK
- ERPLERPLA DuckDB extension that reads SAP ERP tables, CDS views and BW queries from SQL over RFC, BICS and ODP, and can mount an SAP system as a DuckDB catalog to join against other data.independent, abapDuckDB extension reading SAP ERP tables, CDS views and BW queries
- ADELE RFC APIADELE RFC APIAn RFC-callable ABAP API for extracting SAP data, implemented for the Java-based ADELE tool, with an OLAP mode for group by and count.independent, abapRFC-callable ABAP API for SAP data extraction for ADELE
- Cloud ConnectorCloud ConnectorSAP's on-premises agent that links SAP BTP applications to systems in a customer's own network, as a reverse invoke proxy that exposes only the systems and resources it is configured to allow.sap official, btpSAP's on-premises agent linking SAP BTP to customer-network systems
- srijan9864/zrfcreadsrijan9864/zrfcreadAn RFC-enabled ABAP function module that counts the entries of any table against dynamic where and join criteria.independent, abapAn RFC-enabled ABAP function module that counts the entries of any table against dynamic where and join criteria.
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/rfc-connector — README
Contributors
History in the atlas
- First seen.
For your agent
- Ref
artifact:abap2ui5-addons-rfc-connector- JSON
- /artifacts/abap2ui5-addons-rfc-connector.json
- MCP
- Connecting an agent