Jannik Schuppener
 - 3. August 2016

Wie Sie Tabellen mit dem Fuba RFC_READ_TABLE durch externe Anwendungen auslesen

Zeichenfläche 1Security

Haben Sie sich schon öfter gefragt, wie Sie Funktionsbausteine wie den RFC_READ_TABLE nutzen um auf Ihr SAP System zuzugreifen? Der folgende Blogbeitrag beschreibt Ihnen den Weg von der Erstellung des Programms, über den Verbindungsaufbau bis zur Ausgabe der zurückgelieferten Werte.


Sie benutzen noch ein veraltetes Berechtigungskonzept mit Security-Problemen?
Fachbereichsleiter Tobias Harmes

Wir führen für Sie ein revisionssicheres SAP Berechtigungskonzept ein, das die Sicherheit in Ihrem Unternehmen nachhaltig erhöht. Dabei verwenden wir eine standardisierte Vorgehensweise zur Einführung von neuen Berechtigungen, die wir bei vielen Kunden erfolgreich eingesetzt haben. Deshalb haben wir dafür auch ein passendes Angebot: Neues SAP Berechtigungskonzept.

Unsere Referenzen finden Sie hier.

Kontaktieren Sie mich: Telefon 0211.9462 8572-25 oder per E-Mail info@rz10.de.

In einem unverbindlichen Gespräch kann ich mit Ihnen über Ihre Ausgangslage sprechen und Ihnen Möglichkeiten aufzeigen. Selbstverständlich können wir danach auch ein unverbindliches Angebot unterbreiten.

Sicherheit

Wenn Sie einem Nutzer das Recht geben mittels RFC auf Ihr System zugreifen zu können sollte Ihnen bewusst sein, dass es sich hierbei um eine sicherheitskritische Berechtigung handelt. Vergeben Sie einem Nutzer die S_RFC Berechtigung, hat dieser die Möglichkeit alle RFC Bausteine im SAP System aufzurufen. Unter diesen Bausteinen befinden sich einige die sich als sicherheitskritisch einordnen lassen, die Änderungen den Einstellungen am System zulassen, oder mit denen es möglich ist neue Nutzer für einen erweiterten Zugriff auf das System anzulegen.

Dennoch kann es unter Umständen sinnvoll sein, zumindest einen kurzfristigen Zugriff über RFC auf das System zuzulassen. Denkbar sind Anwendungen, die Sicherheitsprüfungen auf dem System durchführen. Obwohl das S_RFC Berechtigungsobjekt für solch einen Zugriff vergeben wird, kann der Zugriff dennoch nur über RFC_TYPE auf Funktionsgruppen beschränkt werden. RFC_NAME daher enthält eine Liste von Funktionsgruppen, auf die der Zugriff beschränkt werden soll. Die Destinationen in einer Java Anwendung durch den Zugriff mit dem JCo sollten abgesichert werden. Ebenso ist die Verwendung von SNC für die Verbindung zum SAP System ratsam.

Implementierung mit dem Zugriff über RFC

Damit Sie die grundsätzliche Kommunikation zwischen dem erstellten Projekt und dem SAP System mit einer RFC Verbindung herstellen können, bietet SAP Beispielcode an, mit dem ein Aufruf unterschiedlichster Datenstrukturen aus der Entwicklungsumgebung möglich ist. Auch dieser ist wiederum unter dem Blogbeitrag verlinkt. Für einen ersten Test reicht es aus, wenn die Eigenschaften der Verbindung lokal in der einer Klasse definiert werden. Diese Properties sollten vor der Verwendung auf einem Produktivsystem aus Sicherheitsgründen nicht in einer externen Konfigurationsdatei liegen, sondern wie von der SAP empfohlen, mit einer abstrakten Klasse com.sap.conn.jco.ext.DestinationDataProvider abgebildet werden. Dabei werden die Properties als Hashmap abgelegt und können mit Zugriffmethoden zurückgegeben und verwendet werden.

Im Folgenden wurde mittels JCo und RFC auf ein SAP System zugegriffen um die Systemeigenschaften vom SAP System auszugeben.

Abfrage der Systemeigenschaften mit JCo über RFC

Abfrage der Systemeigenschaften mit JCo über RFC

Download der Connectoren

Vor der Entwicklung müssen Sie die entsprechenden Connectoren aus dem SAP Marketplace herunterladen. Hierbei wird zwischen dem verwendeten Betriebssystem und der verwendeten Programmiersprache unterschieden. Den entsprechenden Link zu den Archiven finden Sie im unter dem Blogbeitrag.

In diesem Beispiel wird der SAP Java Connector mit der Entwicklungsumgebung Eclipse verwendet. Die SAP Connectoren haben den Vorteil, dass sie in beide Richtungen kommunizieren können. Java kann das SAP System aufrufen und ein Aufruf von Java Komponenten aus dem SAP System ist möglich.

Einrichten der Entwicklungsumgebung

Wie gewohnt legen Sie in Ihrer Entwicklungsumgebung je nach Programmiersprache ein Projekt an und fügen die heruntergeladene Library aus dem SAP Marketplace zur Entwicklungsumgebung hinzu. In der erstellten Klasse müssen zunächst die Zugangsdaten zu dem SAP System konfiguriert werden:

Properties für die Zugangsdaten zum SAP System

Properties für die Zugangsdaten zum SAP System

Nachfolgend wird eine erste Verbindung zum SAP System aufgebaut, bei dem die Attribute des SAP Systems ausgelesen und ausgegeben werden. Der Variable „DESTINATION_NAME2″ wird der Wert „ABAP_AS_WITHOUT_POOL“ übergeben.

Attribute des SAP Systems ausgeben

Attribute des SAP Systems ausgeben

Hierbei wird neben dem Fuba auch die entsprechende Funktion „RFC_READ_TABLE“ definiert.  Als Importparameter erwartet der Fuba „RFC_READ_TABLE“ die Tabelle die Ausgegeben werden soll und einen sogenannten Delimiter, der angibt wie die einzelnen Datensätze voneinander getrennt ausgegeben werden sollen:

FuBa RFC_READ_TABLE definieren und Parameter befüllen

Fuba RFC_READ_TABLE definieren und Parameter befüllen

Die Werte aus der Funktion werden auszugeben, nachfolgend das abgebildete Codebeispiel implementiert wird. Dieser Code kann beispielsweise angepasst werden, um Sortierungen oder Analysen vor der Ausgabe durchzuführen.

Codebeispiel, Ausgabe des Rückgabewertes der RFC_READ_TABLE Funktion

Codebeispiel, Ausgabe des Rückgabewertes der RFC_READ_TABLE Funktion

Ergebnis des Fuba RFC_READ_TABLE

Nachdem die Funktion des Fubas „RFC_READ_TABLE“ mit der entsprechenden Destination ausgeführt wurde, kann das zurückgelieferte Ergebnis ausgegeben werden. In diesem Beispiel wurde auf die Tabelle DEVACCESS zugegriffen, die alle im System registrierten Entwickler und die dazu gehörigen Entwicklerschlüssel speichert. Die Ausgabe sieht wie folgt aus:

Ausgabe der Tabelle DEVACCESS durch den FuBa RFC_READ_TABLE

Ausgabe der Tabelle DEVACCESS durch den Fuba RFC_READ_TABLE

Welche Erfahrungen haben Sie mit der Nutzung des Fubas RFC_READ_TABLE gemacht?
Kontaktieren Sie mich gerne direkt oder hinterlassen Sie einen Kommentar unter dem Beitrag.
Ich freue mich auf Ihr Feedback.

Download des Blogbeitrags

Einen Link zu den SAP Connectoren und zum Beispielcode der zum Verbindungsaufbau genutzt wird, finden Sie in dem nachfolgenden Download

Jetzt das kostenlose eBook zum Thema SAP Berechtigungen downloaden:

Jetzt das kostenlose E-Book mit ausgewählten Fachartikeln herunterladen:


SHARE



Schreiben Sie einen Kommentar

Bitte füllen Sie alle mit * gekennzeichneten Felder aus. Ihre E-Mail Adresse wird nicht veröffentlicht.