Der folgende Abschnitt beschreibt die Anwendung des Integrationstyps SAP Table and Views.
Warnung! Fehlende Berechtigungen Um die Table Komponente zu verwenden, muss der Zugriff auf die entsprechenden Berechtigungsobjekte (RFC) in SAP verfügbar sein. Weitere Informationen finden Sie im Knowledge-Base-Artikel SAP Zugriffsrechte: Table.
Eine SAP Tabelle oder View finden #
- Legen Sie einen neuen Service vom Typ SAP Table and Views an.
- Klicken Sie auf [Save and edit]. Das Search SAP Table or View Menü öffnet sich.
- Geben Sie den Namen einer Tabelle oder View in das Feld Search by name (1) ein oder suchen Sie nach einer Tabellenbeschreibung. Verwenden Sie Wildcards ( * ), falls notwendig.
- Klicken Sie auf [Search] (2), um alle Suchergebnisse anzuzeigen.
- Wählen Sie einen Eintrag aus der Liste der Suchergebnisse aus (3).
Die Extraktionseinstellungen für SAP Tabelle und Ansichten öffnen sich automatisch.
Einstellungen #
Das SAP Table and Views Menü ist in folgende Unterabschnitte unterteilt:
- Table or View (4) zeigt den Namen und die Beschreibung der gewählten SAP Tabelle oder View an.
- Advanced Settings (5) definieren, wie Daten aus SAP extrahiert werden.
- Output Columns (6) definieren, welche Spalten extrahiert werden.
- WHERE Clause und WHERE Clause Editor (7) definieren, welche Zeilen extrahiert werden.
Table or View #
Der Name und die Beschreibung der gewählten Tabelle oder View werden im Abschnitt Table or View angezeigt.
Um eine neue Tabelle oder View auszuwählen, klicken Sie auf Select in der oberen rechten Ecke des Abschnitts.
Advanced Settings #
Function Name
Bezeichnet den Namen des verwendeten Funktionsbausteins für die Datenextraktion. Dieses Feld wird automatisch befüllt in Abhängigkeit davon, welche Funktionsbausteine auf Ihrem SAP System vorhanden sind. Folgende Funktionsbausteine können zur Extraktion von Tabellen verwendet werden:
- RFC_READ_TABLE (TAB512)
- /BODS/RFC_READ_TABLE (TAB2048)
- /SAPDS/RFC_READ_TABLE (TAB2048)
- /BODS/RFC_READ_TABLE2
- /SAPDS/RFC_READ_TABLE2
- Z_THEO_READ_TABLE
- THEO/READ_TABLE
Warnung! Duplikate in der Zielumgebung!
Die SAP-Standardbausteine für Tabellenextraktion besitzen keine Pointer-Logik in Tabellenfeldern.
Das führt bei großen Tabellen zu schlechter Performance und ggf. zu Duplikaten.
Wir empfehlen daher die Verwendung des Funktionsbausteins THEO/READ_TABLE von Theobald Software.
Berücksichtigen Sie die notwendige Berechtigung der SAP-Tabelle:
S_TABU_NAM ACTVT=03; TABLE=ENLFDIR
Row limit
Gibt die maximale Anzahl der extrahierten Datensätze an. 0 extrahiert die komplette Tabelle.
Rows per Package
Gibt die Anzahl der Datensätze an, die pro Datenpaket extrahiert werden.
Optimale Werte können durch Ausprobieren gefunden werden. Der Standardwert ist 50000 Zeilen.
Eine Paketgröße (Package Size) zwischen 20000 und 50000 ist sinnvoll für große Datenmengen.
0 bedeutet, es findet keine Pakettierung statt. Keine Pakettierung kann bei Extraktionen großer Datenmengen zu einem RFC-Timeout führen.
Warnung! RFC_ERROR_SYSTEM_FAILURE - No more storage space available for extending an internal table: Um einen Speicherüberlauf auf dem SAP-Quellsystem und einen großen Overhead zu vermeiden, wählen Sie eine für Ihre Speichergröße angemessene Paketgröße.
Run in background job
Durch das Ankreuzen der Checkbox wird die Tabellenextraktion als Hintergrund-Job in SAP ausgeführt.
Diese Einstellung ist optional und wird in Kombination mit dem Baustein THEO/READ_TABLE oder Z_THEO_READ_TABLE Version 2.0 unterstützt.
Aktivieren Sie diese Einstellung für zeitintensive Extraktionen mit großen Datenmengen, die im Vordergrundmodus in einen Timeout-Fehler (“Time limit exceeded”) laufen können.
Tipp: Die Extraktionsjobs befinden sich im SAP JobLog (SM37) unter dem JobName theo_read_table.
Output Columns #
Sie können entweder alle oder nur einzelne Spalten für die Extraktion auswählen.
Standardmäßig sind alle Spalten für die Tabellenextraktion ausgewählt.
Deaktivieren Sie die Felder, die Sie nicht extrahieren möchten.
WHERE Clause #
Mit einer WHERE-Bedingung können Tabelleneinträge gefiltert werden, siehe SAP ABAP Dokumentation: SELECT-WHERE.
Geben Sie die WHERE-Bedingung entweder über die manuelle Texteingabe oder über den WHERE Clause Editor ein.
Syntaxregeln
-
Geben Sie ein Leerzeichen vor und nach dem Gleichheitszeichen ein:
Korrekt: JAHR = ‘1999’
Falsch: JAHR= ‘1999 ‘, JAHR =’1999’ oder JAHR=’1999’ -
Setzten Sie Fließkommazahlen in einfache Anführungszeichen:
Korrekt: KMENG > ‘10.3’
Falsch KMENG > 10.3
Hinweis: Die WHERE-Bedingung benötigt keinen Zeilenumbruch (Return-Taste).
- Die Werte müssen der internen SAP-Darstellung entsprechen:
- Das Datum 01.01.1999 hat die interne Darstellung 19990101 (JJJJMMTT)
- Die Jahresperiode 001.1999 hat die interne Darstellung 1999001 (JJJJPPP)
- Zahlen müssen führende Nullen enthalten, z.B. hat die Kundennummer 1000 die interne Darstellung 0000001000.
Operator | Bedeutung |
---|---|
=, EQ | Wahr, wenn der Inhalt von operand1 gleich dem Inhalt von operand2 ist |
<>, NE | Wahr, wenn der Inhalt von operand1 ungleich dem Inhalt von operand2 ist |
<, LT | Wahr, wenn der Inhalt von operand1 kleiner als der Inhalt von operand2 ist |
>, GT | Wahr, wenn der Inhalt von operand1 größer als der Inhalt von operand2 ist |
<=, LE | Wahr, wenn der Inhalt von operand1 kleiner oder gleich dem Inhalt von operand2 ist |
>=, GE | Wahr, wenn der Inhalt von operand1 größer oder gleich dem Inhalt von operand2 ist |
(NOT) LIKE | Wahr, wenn der Wert des Operanden operand1 mit dem Muster im Operanden operand2 übereinstimmt (nicht übereinstimmt). |
(NOT) IN | Wahr, wenn der Inhalt von operand1 (nicht) Teil des Inhalts von operand2 ist. Operand2 muss vom Typ LIST oder SQL sein. |
Für mehr Informationen über die OpenSQL-Syntax, siehe SAP Help: Select WHERE.
Tipp: Um die Leistung beim Extrahieren zu erhöhen, stellen Sie sicher, dass Sie die indizierten Felder als erste Auswahlfilteroperation in der WHERE-Bedingung platzieren.
Die WHERE Clause im SwaggerHub verwenden
Die WHERE-Clause kann im Request Body des Services parametrisiert werden. Beispiel:
Für mehr Informationen über die Parametrisierung von Services, siehe folgende Knowledge Base Artikel:
WHERE Clause Editor #
Der WHERE Clause Editor stellt ein Toolkit zur Verfügung, mit dem WHERE-Bedingungen auch ohne nähere Kenntnisse über die Syntax erstellt werden können.
Wechseln Sie zum Editor mode, um den WHERE Clause Editor zu öffnen.
Es gibt 2 Optionen, um der WHERE-Bedingung neue Kriterien hinzuzufügen:
- [Add Criteria] fügt ein einzelnes Kriterium hinzu.
- Der Standardaufbau für ein Kriterium mit statischen Werten ist
[Spalte][Operator][Wert]
, z.B. MARC~WERKS = 1000.
- Der Standardaufbau für ein Kriterium mit statischen Werten ist
- [Add Criteria Group] fügt eine Gruppe hinzu, die mehrere Kriterien beinhaltet.
- Der Standardaufbau für eine Kriteriengruppe ist
([Spalte1][Operator1][Wert1][Logik][Spalte2][Operator2][Wert2])
, z.B. (MARC~PSTAT = ‘L’ OR MARC~PSTAT = ‘LB’).
- Der Standardaufbau für eine Kriteriengruppe ist
Tipp: Kombinieren Sie einzelne Kriterien mit Kriteriengruppen, um komplexe Filter zu erstellen.
Beispiel:
MARC~WERKS = 1000 AND (MARC~PSTAT = ‘L’ OR MARC~PSTAT = ‘LB’) extrahiert nur Daten, bei denen die Spalte WERKS einen Wert von 1000 hat und die Spalte PSTAT entweder den Wert ‘L’ oder ‘LB’ hat.
Komponenten des WHERE Clause Editors
Folgende Komponenten stehen im Editor zur Verfügung:
Symbol | Komponente | Funktion |
---|---|---|
![]() |
Delete row | löscht ein Kriterium. |
![]() |
Move row up | ändert die Reihenfolge der Kriterien. Das ausgewählte Kriterium wird um 1 nach oben verschoben. Die Reihenfolge der Kriterien kann auch per Drag&Drop bearbeitet werden. |
![]() |
Move row down | ändert die Reihenfolge der Kriterien. Das ausgewählte Kriterium wird um 1 nach unten verschoben. Die Reihenfolge der Kriterien kann auch per Drag&Drop bearbeitet werden. |
![]() |
Column | fügt die Spalte einer Tabelle hinzu. Klicken Sie auf die Komponente, um eine Spalte aus den verfügbaren Tabellen auszuwählen. |
![]() |
SQL | fügt eine Open SQL-Anweisung hinzu, siehe SAP Dokumentation: Open SQL. |
![]() |
Operator | fügt einen Operator hinzu, z.B. =, <, >, etc. |
![]() |
Value | fügt einen statischen Wert vom Typ String, Number, Flag oder List hinzu. List bietet einen separaten Editor, um Listen vom Typ String, Number oder Select zu erstellen. Select ermöglicht die Eingabe einer SELECT-Anweisung. Mehr Informationen zu Listen, finden Sie im Knowledge Base Artikel Working with Lists in the WHERE-Clause Editor. |
![]() |
Criteria | fügt der WHERE-Bedingung ein neues Kriterium hinzu. |
![]() |
Group | fügt der WHERE-Bedingung eine neue Gruppe hinzu. |
Hinweis: Wenn neue Kriterien hinzugefügt oder bearbeitet werden, werden nur relevante Komponenten angezeigt. Beispiel: Operator ist nur verfügbar, wenn eine Spalte oder eine SQL-Anweisung existiert, auf die ein Operator angewendet werden kann.
Komponenten Bearbeiten und Löschen
- Klicken Sie auf eine vorhandene Komponente, um sie zu bearbeiten.
Alle grün markierten Flächen können bearbeitet werden.
- Klicken Sie auf das
Icon, das eingeblendet wird, wenn Sie über die Komponente hovern, um die Komponente zu löschen.
Hinweis: Die WHERE-Bedingung wird überschrieben, wenn eine WHERE-Bedingung manuell in das dafür vorgesehene Textfeld eingetragen wird, bzw. wenn beim Aufruf des Service’ eine WHERE-Bedingung in dem Body der Service-Definition übergeben wird.
SAP Customizing #
Hinweis: Anpassungen im SAP-System sind optional. Die Installation des Funktionsbausteins /THEO/READ_TABLE
ist empfohlen.
Einschränkungen von RFC_READ_TABLE #
Insbesondere bei älteren SAP Releases bestehen einige Einschränkungen bei der Extraktion von Tabellen wenn der SAP Standardfunktionsbaustein (RFC_READ_TABLE) verwendet wird:
- Die Gesamtbreite der zu extrahierenden Spalten darf 512 Bytes nicht überschreiten.
- Andere Einschränkungen existieren abhängig von der SAP-Version. Fehler können auftreten bei der Extraktion von Tabellen, die eine oder mehrere Spalten vom Typ f (FLTP, floating point), DEC (Decimal und Prozentzahl z.B.) oder x (RAW, LRAW) haben.
- Schlechte Extraktionsperformance bei Extraktion großer Tabellen.
Um die o.g. Einschränkungen zu umgehen, installieren Sie den Z-Funktionsbaustein /THEO/READ_TABLE von Theobald Software auf Ihrem SAP-System.
Warnung! Error while converting value ‘*.0’ of row 1530, column 3
Der SAP-Standardbaustein RFC_READ_TABLE zur Tabellenextraktion kann den ABAP-Datentyp DEC nur bedingt extrahieren. Dies führt zu dem genannten Beispielfehler bei der Extraktion.
Verwenden Sie den Funktionsbaustein von Theobald Software /THEO/READ_TABLE.
Installation von /THEO/READ_TABLE #
Ein SAP-Transportauftrag für die Installation des Funktionsbausteins wird im Installationsverzeichnis der Software mitgeliefert:
C:\Program Files\Theobald Software\yunIO\ABAP\
.
Der Transportauftrag muss von Ihrem SAP-Basis-Team in SAP importiert werden.
Es gibt zwei Funktionsbausteine für Tabellen-Extraktionen:
- /THEO/READ_TABLE
- Z_THEO_READ_TABLE
Wir empfehlen die Installation des aktuellen Funktionsbausteins THEO/READ_TABLE:
THEO_READ_TABLE_740SP05.zip
- kompatibel mit ABAP Version 7.40 SP05 und höherTHEO_READ_TABLE_710.zip
- kompatibel mit ABAP Version 7.10 und höherTHEO_READ_TABLE_640.zip
- kompatibel mit ABAP Versionen von 6.40 bis 7.03THEO_READ_TABLE_46C.zip
- kompatibel mit ABAP Versionen von 4.6C bis 6.40
Hinweis: Lesen Sie die README.pdf, die sich im Installationsordner (z.B.C:\Program Files\XtractProduct\ABAP\README.pdf
) befindet, bevor Sie den Z-Funktionsbaustein installieren.
Beim Einspielen der Z_THEO_READ_TABLE-transport-before-740SP05 auf älteren SAP-Releases kann ein Syntaxfehler auftreten. Wenden Sie sich an den Theobald Support und senden Sie die dedizierte Fehlermeldung.
Testen des Bausteins in SAP
Warnung! Erzeugung von Short Dumps
Die Funktionsbausteine /THEO/READ_TABLE und Z_THEO_READ_TABLE können wegen ihrer Callback-Funktionalität nur von Theobald-Produkten gestartet werden. Das Testen der Bausteine in einem SAP-System ist daher nicht möglich.