AppApptypeAn application you deploy and use, installed into a system or loaded into an application as a component, rather than a library whose functions you call.See every one →What this type is →by a community orgby a community orgoriginPublished by a community organisation, so it outlives any one maintainer.See every one →

rfc-connector

Calls abap2UI5 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 abap2UI5 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

Last pushLicenceMIT

Where it sits

Lives in
Provides
RFC connectivityABAPRFC connectivitycapabilityCalling ABAP function modules from outside the system over RFC, with destinations and connection pooling handled rather than hand-wired on the calling side.
Add-on to
abap2UI5abap2UI5artifactOne 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.
Requires
abap2UI5abap2UI5artifactThe framework it extends: 1.143.0 or newer on both the consumer and the source system, the first release carrying the z2ui5_cl_ui5_http_handler the connector calls.abapGitabapGitartifactHow the repository is brought into both systems, in the same version on each.

Who is behind it

abap2UI5-addonsabap2UI5-addonsOrganisationMaintains this
In the atlas: maintains 21
@abap2UI5-addons
maintaineroblomov-devPersonContributes to this
In the atlas: maintains 4, contributes to 44
@oblomov-dev
1 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

Connections4

README

quoted from abap2UI5-addons/rfc-connector under MIT, read
abap2UI5-addons/rfc-connector/README.mdOn GitHub

rfc-connector

abap2UI5-addons ABAP abap2UI5 License
ABAP Standard check-abap2UI5

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_start for 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:

SystemWhat to install
Consumer systemabap2UI5 + this repository (branch main)
Source systemabap2UI5 + this repository (branch main), the same version as on the consumer
  1. Install abap2UI5 on both systems.
  2. Install this repository on both systems — the same version on each: consumer and source exchange the DDIC structures of this repository over RFC.
  3. On the consumer system, replace in the HTTP handler Z2UI5_CL_RFC_CONNECTOR_HANDLER the destination NONE with your source system destination.
  4. On the consumer system, activate the ICF node /sap/bc/z2ui5_rfc in transaction SICF. The source system needs no ICF node - it is called through the RFC-enabled function module Z2UI5_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.

SystemEntryObject
ConsumerICF node /sap/bc/z2ui5_rfcZ2UI5_CL_RFC_CONNECTOR_HANDLER
SourceRFC-enabled function moduleZ2UI5_FM_RFC_CONECTOR (function group Z2UI5_FG_RFC_CONNECTOR)
BothDDIC structures exchanged over RFCZ2UI5_S_HTTP_REQ, Z2UI5_S_HTTP_RES, Z2UI5_S_HTTP_CONFIG
image
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.

MIT, read

History

RFC connectivity
  1. SAP Connectivity serviceProxy from cloud apps to on-premise systems via Cloud Connectorfrom BTP/BAIP
  2. abap_fm_jsonJSON adapter exposing ABAP function modules over HTTPfrom ABAP
  3. erpl-node-rfcRFC client for Node.js and TypeScript without the NW RFC SDKfrom ABAP
  4. ERPLDuckDB extension reading SAP ERP tables, CDS views and BW queriesfrom ABAP
  5. open-rfcSDK-free TypeScript client for SAP synchronous RFC on Node.jsfrom CAP
  6. ADELE RFC APIRFC-callable ABAP API for SAP data extraction for ADELEfrom ABAP
  7. @sap/cds-rfcCalls to ABAP function modules over RFC from a CAP servicefrom CAP
  8. Cloud ConnectorSAP's on-premises agent linking SAP BTP to customer-network systemsfrom BTP/BAIP
  9. srijan9864/zrfcreadAn RFC-enabled ABAP function module that counts the entries of any table against dynamic where and join criteria.from ABAP

Details

Sources3
GitHub APIdiscovered herechecked
github.com/abap2UI5-addons/rfc-connectortree, pushes, contributors, CIchecked
README.mdquoted, and what the entry declareschecked

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
discovered viaGitHub API
first seen in the atlas
ecosystem and domainabap, integration-and-messaging
abaplint
issues under its own abaplint configuration0
lines185
statements115
objects8
files8
analysed, main
abaplint version2.120.84
Flavors1
Standard ABAP
“Standard ABAP 7.50 or higher on both systems” — abap2UI5-addons/rfc-connector — READMEchecked
Contributors1

From the repository’s contributor list, .

History in the atlas1
  1. First seen.
For your agent
Ref
artifact:abap2ui5-addons-rfc-connector
JSON
/artifacts/abap2ui5-addons-rfc-connector.json
MCP
Connecting an agent