SAP RFC

Aufrufen eines SAP-RFCs


Ein entfernter Funktionsaufruf (Remote Function Call) ist der Aufruf eines Funktionsbausteins, der in einem anderen System läuft, als das aufrufende Programm. Die Verbindung erfolgt über das Netzwerkprotokoll TCP/IP. Lobster_data nutzt zur Implementierung von RFC-Aufrufen die SAP RFC Java Class Library.

Im SAP-System stellt das RFC-Schnittstellensystem diese Funktionalität bereit. Das RFC-Schnittstellensystem ermöglicht Funktionsaufrufe zwischen zwei SAP-Systemen (R/2 oder R/3) oder zwischen einem SAP-System und einem Nicht-SAP-System.

Ein RFC wird durch eine Schnittstelle definiert, die drei verschiedene Datenarten enthalten kann.


  • Felder von einem bestimmten Typ (z. B. Text, Zahl, Datum, ...) und mit einer bestimmten Länge.

  • Strukturen repräsentieren eine Liste von Feldern.

  • Tabellen enthalten mehrere Werte verschiedener Felder.


Eine Schnittstellenbeschreibung kann grob in drei Teile eingeteilt werden.


  • Eingangsparameter, die vom Aufrufer beim Aufruf übergeben werden. Dies können Felder oder Strukturen sein.

  • Ausgangsparameter, die nach Abarbeitung der entsprechenden Funktion an das aufrufende System zurückgegeben werden. Dies können Felder oder Strukturen sein.

  • Tabellen, sowohl für Eingangs- als auch Ausgangstabellen.


Anhand eines Beispiels soll die Funktionsweise eines RFC erläutert werden. Über den RFC RFC_READ_TABLE sollen aus einem SAP-System aus der Tabelle T005K zwei Felder ausgelesen werden. Die folgende Abbildung zeigt die Struktur dieser Tabelle.


images/download/attachments/69043854/SAP_1-version-1-modificationdate-1614914559809-api-v2.png


Die folgende Abbildung zeigt die RFC-Schnittstellenbeschreibung des RFCs RFC_READ_TABLE.


images/download/attachments/69043854/SAP_2-version-1-modificationdate-1614914559799-api-v2.png


Der RFC besitzt die fünf Eingangsparameter (Input Parameters)


  • DELIMITER,

  • NO DATA,

  • QUERY_TABLE,

  • ROWCOUNT und

  • ROWSKIPS.


Zusätzlich hat der RFC die folgenden Tabellenparameter (Table Parameters).


  • DATA - in dieser Tabelle werden die Daten der Tabelle gespeichert.

  • FIELDS - in dieser Tabelle werden die Felder ausgewählt, die geliefert werden sollen und die Struktur dieser Felder festgelegt.

  • OPTIONS - in dieser Tabelle sind für die Selektion optionale WHERE-Bedingungen enthalten.


Der Funktionsbaustein hat keinen Ausgangsparameter, der in Form eines Feldes oder einer Struktur dargestellt werden kann.


Lobster_data ist in der Lage, RFC-Aufrufe an ein SAP-System abzusetzen und die Antwort des SAP-Systems zu verarbeiten. Dieser Mechanismus wird in Lobster_data eingangsseitig dazu verwendet, Daten von einem SAP-System abzuholen. Die vom SAP-System gelieferten Daten können dann in verschiedenen Formaten vom aufrufenden Profil verarbeitet werden. Für Details siehe Abschnitt SAP (Eingangsagent Cron).

Wird ein SAP RFC auf der Ausgangsseite von Lobster_data aufgerufen, kann die Antwort des SAP-Systems per Message an ein weiteres Profil zur Verarbeitung übergeben werden. Für Details siehe Abschnitt Antwortweg SAP.

Lobster_data kann die Schnittstellendefinition eines RFC im SAP-System erfragen und die Struktur importieren.


Vorsicht: RFC-Aufrufe aus Lobster_data beinhalten nur das Senden der Import-Parameter und der Tabellen-Parameter an den Funktionsbaustein, sowie die Rücksendung der Export-Parameter und der Tabellen-Parameter vom Funktionsbaustein an Lobster_data. Falls der Funktionsbaustein seinerseits auf SAP-GUI-Funktionalität zuzugreifen versucht, wie z. B. das Kopieren von Dateien zwischen SAP und dem Arbeitsplatz-Computer, dann wird diese Funktion bei Aufruf aus Lobster_data scheitern.

SAP-RFC-Debuggen


Lobster_data bietet die Möglichkeit, von ihm ausgeführte SAP-RFC-Aufrufe sowohl auf der Eingangs- als auch auf der Ausgangsseite für die Fehlersuche aufzuzeichnen.

Die Aktivierung der Aufzeichnung erfolgt durch das Setzen der Checkbox Trace Meldungen für Phase 1 und 6 in den Logging-Einstellungen. Für Phase 6 muss zusätzlich die Checkbox SAP gesetzt werden. Siehe Bereiche System-Logging und Profil-Logging.

Eingangsseitig (Phase 1) erfolgt die Aufzeichnung der SAP-RFC-Aufrufe in zwei Dateien, die im Verzeichnis ./debug/sap abgelegt werden. Die Dateien tragen die Namen __debugIRfcIn.xml und __debugIRfcOut.xml.

Ausgangsseitig (Phase 6) erfolgt die Aufzeichnung der SAP-RFC-Aufrufe im HTML-Format im Message-Log von Lobster_data.

Hinweis: Das Debuggen betrifft nur die Kommunikation mit dem SAP-System. Ein Debuggen der ABAP-Komponente des RFC ist von Lobster_data aus nicht möglich.

RFC-Aufruf in Phase 3 und 5


Siehe Funktion call-sap-rfc(alias a,rfc b,[inMap c,timeout d,filter e,outList f,debug g,h,i,j,k]) und Integration Unit RFCUnit.

Aufrufbarer RFC in Lobster_data


Siehe hierzu Abschnitt RFCs in Lobster_data bereitstellen.