Connection to SAP RFC
The SAP RFC connector reads explicitly selected transparent tables, DDIC database views and CDS view entities from an SAP system through the SAP application server (AS ABAP). It needs no database login. DQC requires the S_TABU_NAM display authorization for each source, SAP's DDIC display authorization check applies to tables and database views, and CDS access controls remain effective.
The SAP RFC connector is available on request and is not enabled by default. It needs a DQC environment with the SAP RFC runtime, a network route to your application server and the DQC ABAP component in your SAP system. Contact us to check availability for your DQC environment and to plan the setup.
For an overview of all ways to bring SAP data into DQC, see Connecting to SAP systems.
How it works
The DQC Platform runs outside SAP. It opens an RFC client connection to one application server, logs on with a dedicated communication user and calls exactly these function modules:
Function module | Type | Purpose |
|---|---|---|
| SAP standard | Connection test |
| SAP standard | Confirms which system and client answered |
| SAP standard | Reads the function interfaces before the first call (used by the SAP NetWeaver RFC SDK) |
| DQC, remote-enabled | Checks the component version, system ID and client |
| DQC, remote-enabled | Searches authorized sources by technical-name prefix |
| DQC, remote-enabled | Returns fields, keys and a schema fingerprint of one approved source |
| DQC, remote-enabled | Returns one bounded block of rows after a given key |
What this means for your SAP system:
Only approved sources. DQC reads only sources that your data owner has approved by exact technical name and that are granted in the communication user's role. DQC never lists the whole Dictionary: a search reads only the Dictionary entries that start with the prefix you enter and returns only sources the user may read. There is no full-system extraction.
Only selected columns. Within each source, DQC reads the columns you select, plus the key fields it needs to read in blocks. If you select no columns, DQC reads all supported columns.
Bounded load. Rows are read in compressed blocks of at most 5,000 rows per call (default). An optional execution window per source (for example
22:00-04:00 Europe/Berlin) stops further reads when it closes. An interrupted extraction resumes from its last saved block where possible.When DQC reads from SAP. DQC keeps the last complete extraction of each source and reuses it for up to 24 hours (default). A refresh or a check after that period reads the source again in full; there are no delta loads. Before DQC uses a source, it checks the source's authorization and structure in SAP with one short call, also outside the execution window. Outside the execution window DQC reads no rows and keeps using the last complete extraction.
Where the data is kept. The DQC component creates no tables and holds no data in SAP. DQC stores the extracted columns in the DQC Platform, where the rules run on them. Each new extraction replaces the previous one, and deleting the connector deletes the stored data.
Prerequisites in SAP
Requirement | Detail |
|---|---|
Application Server ABAP | On-premise or private cloud |
SAP_BASIS 7.54 or higher | In practice S/4HANA 1909 or later. SAP ECC 6.0 (up to EHP 8, SAP_BASIS 7.50) and S/4HANA 1809 and earlier (SAP_BASIS 7.53 and lower) are not supported. The development system needs the same release floor |
Unicode system | Only Unicode systems are supported (every SAP_BASIS 7.54 system is Unicode) |
One client per connector | DQC reads only in the logon client; cross-client reads are disabled by design |
Development system | An ABAP development system in the same transport landscape, to create and transport the DQC component |
Approved source list | The exact technical names of the first sources, approved by your data owner. They are needed to build the role |
Supported sources are active transparent tables, DDIC database views and CDS view entities without parameters, with supported field types and a usable key for reading in blocks. CDS view entities require ABAP 7.55 or later.
Step 1: Install the DQC ABAP component
DQC delivers the ABAP source code with a machine-readable manifest, checksums and an installation and acceptance guide. DQC does not deliver a transport request: your SAP team creates the objects in its own development system and moves them through its normal change process.
The component consists of 13 objects in the customer namespace:
Function group
Z_DQC_RFCwith the four remote-enabled function modulesZ_DQC_PING,Z_DQC_GET_CAPABILITY,Z_DQC_SEARCH_TABLESandZ_DQC_FETCHEight DDIC structures (
ZDQC_S_*). They are structures, not database tables
Important:
Keep the object names. The DQC Platform calls the modules by name and the role grants the function group by name
Put nothing else into function group
Z_DQC_RFC: the role grants the whole groupTransport all 13 objects together. A partly imported component passes the connection test and fails when data is read
Run ATC with your usual check variant for classic ABAP. The installation guide lists the expected findings and their background
Step 2: Create the communication user and role
All steps take place in the target client.
User (SU01): create a dedicated user of type Communication (for example
DQCRFC), one per DQC environment that connects to this system (for example one for test and one for production). Never a dialog user, neverSAP*orDDIC, never shared with another integration. Hand the password over through your secret process; it is entered once into the encrypted DQC connector configuration.Role (PFCG): create exactly one single role (for example
Z_DQC_RFC_READ) with manually maintained authorization data, no menu and no transactions. The authorization values are listed in the table below. Assign no other role or profile to the user.Profile and user master comparison: generate the profile, assign the role to the user and perform the user master comparison. A generated but uncompared profile is not effective at runtime; this is the most common cause of "the role looks right, but the call fails".
# | Authorization object | Field | Value |
|---|---|---|---|
1 |
|
|
|
|
| ||
|
| ||
2 |
|
|
|
|
| ||
|
| ||
3 |
|
|
|
| One exact technical name per approved source, upper case, no wildcard |
Two details that are often set up incorrectly:
The two
S_RFCentries must be separate authorizations. One authorization with bothRFC_TYPEvalues would grant every combination of both listsS_TABU_NAMis the allowlist the whole model rests on.S_TABU_DIScannot replace it. Do not grantS_TABU_DISwith*,S_TABU_CLI,S_DEVELOP,SAP_ALLorSAP_NEW
Not needed: no SM59 destination, no gateway reginfo or secinfo entry, and no authorizations for the Dictionary function groups (SDIFRUNTIME, SDIF, SVIW) or the tables DD02L, DD03L, DD25L or DDDDLSRC. If Unified Connectivity (UCON) is active in the target client, add the four Z_DQC_* function modules and, where not already assigned, RFC_PING, RFC_SYSTEM_INFO and RFC_METADATA_GET to the responsible communication assembly.
To add a source later, add its exact name to S_TABU_NAM, regenerate the profile, perform the user master comparison and select the source in DQC. No new ABAP code is needed.
Step 3: Provide a network route
DQC connects to the application server on the RFC gateway port 33<NN>, where <NN> is the instance number (for example 3300 for instance 00). The connection uses the application server directly; message server load balancing (logon groups), SAProuter and SNC are currently not supported. Without SNC, SAP does not encrypt the RFC connection, so the route must be an encrypted private connection.
Direct private route: DQC connects through an encrypted private connection (for example an IPsec VPN) from a small, fixed set of source IP addresses that DQC provides during setup. Allow exactly these addresses on TCP
33<NN>to the application server, and make the application server's logical host name resolvable on that path.DQC in your private cloud or on-premise: the DQC Platform runs inside your network and reaches the application server directly. See Private cloud & on-premises deployments.
SAP RFC through the DQC Proxy is not available yet. If your network only allows outbound connections, contact us.
Step 4: Create the connector in DQC
Go to the Data Connectors screen, choose SAP RFC and fill in:
Field | Example | Description |
|---|---|---|
Name |
| Any internal name for this connection |
SAP application server |
| Logical host name of the application server |
System number |
| Instance number of the application server |
Expected system ID |
| SAP system ID. DQC stops if a different system answers |
Client |
| The client DQC logs on to and reads from |
User |
| The communication user from step 2 |
Password | Password of the communication user | |
Logon language |
| Language of the logon session |
Then add the sources:
Enter at least two leading characters of a technical name (for example
MARA) and load the matching sources. DQC only finds sources that the communication user is authorized to read. If more than 100 sources match, DQC asks for a longer prefix.Select a source and preview its extraction plan; the preview loads the available columns. Select the columns to extract and set the agreed row ceiling, rows per RFC call and execution window. By default a source may have at most 1,000,000 rows. A source with more rows than its ceiling fails instead of being loaded partially; contact DQC if a source needs a higher ceiling.
Optionally enter the expected number of rows to get estimated call and data volume figures (the preview does not count the rows in SAP). Preview the plan again after changing settings, review the limits and save.
When the connector is saved and before every refresh, DQC checks each selected source again. If a source is no longer authorized or available, the refresh stops before any data in DQC is changed.
Step 5: Verify the setup
Run the connection test. It checks the logon, the system ID and client, and the DQC component version.
Search for a source that is not in the role. It must not appear.
Preview the extraction plan of an approved source and run the first load inside the agreed execution window.
Troubleshooting
Error code | Meaning | What to check |
|---|---|---|
| The application server could not be reached | Host, system number, TCP |
| SAP rejected the logon | Client, user and password, lock status and validity in SU01 |
| A different system or client answered | Expected system ID and client against the reached system |
| A required function module may not be called | The |
| A source may not be read | The exact source name in |
| No supported source is authorized | At least one exact source name in |
| The source does not exist or is inactive | The name and active version in SE11 or ADT |
| The source type is not supported | Use a transparent table, a DDIC database view or a CDS view entity without parameters |
| A selected source is no longer available | Role, profile, user master comparison, object activation and CDS access control changes |
| The search matched too many sources | Enter a longer technical-name prefix |
| An extraction exceeded a safety limit, for example the row ceiling of a source | Expected rows and row ceiling of the source, number of selected columns; contact DQC if the source needs a higher ceiling |
| DQC stopped reading because the execution window of the source is closed | Execution window and time zone of the source; start the refresh inside the window |
| The SAP system reports a release below SAP_BASIS 7.54 | SAP_BASIS release (System, Status); the connector needs 7.54 or higher |
| SAP returned an unexpected response | All 13 DQC objects are active and identical to the delivered sources, and |
| SAP RFC is not enabled in this DQC environment | Contact DQC support |
If SU53 names RFC_GET_FUNCTION_INTERFACE or DDIF_FIELDINFO_GET, do not add them to the role. The DQC connector reads function metadata through RFC_METADATA_GET; contact DQC support instead.
Notes
DQC only reads; the component offers no function that writes to SAP
Agree row limits and execution windows with your SAP Basis team before the first full load
Learn more: Connecting to SAP systems, Connection to SAP HANA, Supported data sources