Navigation:  Datenzugriff auf SAP >

Datenextrakt von SAP

Print this Topic Previous pageReturn to chapter overviewNext page

+++   So können Sie Datras EPTL mit Datras Dynamic ABAP auf Ihrem SAP-System kostenlos testen (Anleitung, Download)   +++   Datras hat die Preise gesenkt   +++

 

s.a. "Wichtige Änderungen ab EPTL 4.0"

 

Der Zugriff auf SAP-Daten (inkl. Pool- und Cluster-Tabellen und spezielle SAP-Views, die eigentlich keine sind) kann auf drei verschiedene Arten erfolgen:

 

 1. Standard-Zugriff über den SAP-Funktionsbaustein RFC_READ_TABLE

Dieser Zugriff benötigt zwar keine Installation von zusätzlichen ABAPs im SAP, unterliegt aber auch den größten Restriktionen:

Es kann nur auf genau eine Tabelle zugegriffen werden, es sind also keine Joins möglich.
In der SELECT-Clause sind nur der Stern "*", oder eine Aufzählung von Felder der Tabelle möglich (also kein DISTINCT oder Aggregate möglich).
Es kann optional nur eine Where-Clause (also keine Order by, etc.) benutzt werden .
Es können nur Datensätze mit einer maximalen Länge (Summe über alle exportierten Felder) von 512 Byte exportiert werden.
Felder des Datentyps "FLPT" = Floating-Point können nicht exportiert werden. Diese Restriktion hängt von einem Bug im SAP-Funktionsbaustein RFC_READ_TABLE bei der Typkonvertierung ab.

SAP-Bug

Bei manchen SAP-Systemen kann über den SAP-Funktionsbaustein RFC_READ_TABLE überhaupt nicht zugegriffen werden, da sich anscheinend ein Bug bei der (Vorbereitung der) Implementierung von Unicode in den SAP-Interpreter eingenistet hat.
Bei großen Datenmengen belastet diese Art des Zugriffs den SAP-Server und das Netzwerk stark, da Zugriffe in SAP via RFC keinen persistent Datenbank-Cursor erlauben, und deshalb die Daten nur in großen Mengen und in einem Schritt zum Clienten transportiert werden können (da rumpelt's dann richtig im Netzwerk).

Belastung von SAP-Server und Netzwerk

 

 

  2. Extended-Zugriff mit der Datras-RFC-Extension

Dieser Zugriff benötigt die einmalige Installation der DATRAS-RFC-Extension im SAP-System, welche den SAP-Funktionsbaustein RFC_READ_TABLE ersetzt.

Info: Seit der Version 4.0 des EPTL ist für die beiden Zugriffsmethoden "Datras-RFC-Read für SAP" und  "Datras-Dynamic-ABAP für SAP" (s.u.) nur noch eine Installation mit einem einheitlichen Satz von ABAPs erforderlich.

Beim Datenextrakt stehen jedoch weiterhin beide Zugriffsmethoden zur Verfügung: der Zugriff über die Erweiterung Datras-RFC-Extension ohne weitere Installationen von ABAPs, und der dynamische Zugriff Datras-Dynamic-ABAP mit der dynamischen Installation von ABAPs im SAP-System.

Das Icon mit der Bohrmaschine hier im EPTL-Handbuch steht daher weiterhin für den Zugriff mit der Datras-RFC-Extension (aber eben nicht mehr für eine eigenständige Installation).

 

Mit dieser Extension werden folgende Restriktionen aufgehoben:

Es können Datensätze beliebiger Länge exportiert werden.
Felder des Datentyps "FLPT", also Floating-Point, können exportiert werden.  Jedoch werden bei diesem Typ die Zahlen im SAP-Interpreter bei der Typkonvertierung auf zwei Stellen gerundet.
Es kann auf alle SAP-Systemen zugegriffen werden, da dieser Baustein den SAP-Bug im Interpreter umgeht.
Die Belastung auf dem SAP-Server und dem Netzwerk wird erheblich reduziert (quasi vernachlässigbar und kaum noch messbar), da der Datenextrakt zuerst temporär in einer Datei auf dem SAP-Server zwischengespeichert wird und der eigentliche Datentransfer vom Server zum EPTL danach paketweise und asynchron (Rock'n Roll-Prinzip) durchgeführt wird. Nach dem Datenextrakt wird dann die temporär Datei auf dem SAP-Server wieder gelöscht.

 

 

  3. Dynamischer Zugriff mit Datras-Dynamic-ABAP

Dieser Zugriff benötigt die einmalige Installation von Datras-Dynamic-ABAP auf dem SAP-System, welche auch die Funktionalität der Datras-RFC-Extension umfasst.
Bei dieser Art des Datenextrakts wird im EPTL ein ABAP dynamisch generiert, in das SAP-System eingespielt und dann der Datenextrakt über diesen dynamischen ABAP vollzogen. Danach wird dieser ABAP wieder aus dem SAP-System entfernt.

Dieser Zugriff erlaubt zusätzlich:

Verwendung von Inner Join, Left Outer Join, Group By, Having, Order By.
Verwendung von DISTINCT und den Aggregaten Count, Min, Max, Avg und Sum.
Korrekter Export von Floating-Point Felder, da die Typkonvertierung im EPTL und nicht im SAP-Interpreter vollzogen wird.

 

 Wichtig:

Datras-Dynamic-ABAP wird nur verwendet, wenn das eingegebene SQL dies auch erfordert (und natürlich Datras-Dynamic-ABAP auf dem SAP-System verfügbar ist). Ansonsten wird der Export über die normale Datras-RFC-Extension abgewickelt.
Stellt man dem SQL im Editor jedoch die Direktive $DynABAP$ voraus, so wird die Verwendung von Datras-Dynamic-ABAP erzwungen.