Hier zeigen wir die Pentaho-Integration über den Aufruf eines HTTP-Webservices. In Pentaho führen wir die Extraktion durch einen HTTP Aufruf. Das untere Bild zeigt die Archtitektur. Xtract Universal extrahiert die Daten aus SAP und liefert sie über HTTP im CSV-Format. In Pentaho können wir anschließend die extrahierten Daten weiterverarbeiten und z.B. in eine Datenbank schreiben. xu-pdi-ws

Dieses Szenario setzt kein bestimmtes Betriebssystem voraus, im Unterschied zum Szenario mit der Kommandozeile, das nur auf einem Windows-Betriebssystem läuft. In Xtract Universal haben wir eine Extraktion mit HTTP-CSV Destination definiert.
Extraktion in Xtract Universal
Hier sehen wir die Definition der Extraktion in Xtract Universal mit HTTP-CSV Destination:
pdi-http-xu


Transformation in PDI
Die Übersicht der Transformation in Kettle zeigt die verwendeten Schritte:
Transformation


Initialisierungsparameter
Wir schauen uns die Einstellungen der wichtigen Schritte. Im ersten Schritt definieren wir die URL der Extraktion in Xtract Universal: http://KETSWIN16DC02:8065/?name=SAPCustomer
Initialisieren


HTTP Aufruf
Im zweiten Schritt führen wir den HTTP-Call aus. Der URL-Parameter wird übergeben. Die Rückgabe wird ins Feld ExtractionResult geschrieben. Auch der HTTP-Status-Code wird geschrieben. Der HTTP-Status-Code kann für Fehlerbehandlung verwendet werden.
HTTP

Switch-Verzweisung
Fall der Status Code 200 ist, dann war die Ausführung erfolgreich. Im Fehlerfall schreiben wir ins Log.
Switch Case

In Zeilen splitten
Die Daten werden anhand des Zeichens für Zeilenumbruch in Zeilen gesplittet. Hier muss man beachten, dass die ersten Zeile die Spaltennamen enthält. Die letzte Zeile enthält nur NULL-Werte. Diese 2 Zeilen entfernen wir später.
In Zeilen splitten Xtract Universal bietet auch Optionen, um die Daten ohne die Spaltennamen und ohne Zeilentrenner nach der letzten Zeile zu liefern, aber wir verwenden die Standardeinstellungen für die http-csv-Destination.
.

Letzte Zeile identifizieren
In dem Schritt identifizieren wir die letzte Zeile. Der Schritt ist hilfreich, wenn wir die Anzahl der Datensätze berechnen und die letzte Zeile entfernen.
Letzte Zeile identifizieren

Datensätze filtern
Erste und letzte Zeile werden entfernt.
Datensätze filtern

In Spalten splitten
Datensätze werden in Spalten gesplittet. In diesem Schritt müssen wir die Spaltennamen und den Datentyp definieren.
In Spalten splitten


Datenbank-Verbindung
So sieht die Verbindung zum SQL Server, die wir nutzen, um die Daten in eine Tabelle zu schreiben:
Datenbank-Verbindung


Tabelle ausgeben
Folgende Einstellungen nutzen wir für die Tabellenausgabe:
Tabelle


Dateiausgabe
Zusätzlich schreiben wir die Daten in eine Datei. Folgende Einstellungen werden verwendet:
Datei

Anzahl Datensätze berechnen
In dem Zweig wollen wir die Anzahl der Datensätze berechnen.

In dem Schritt entfernen wir die ersten Zeile, welche die ursprünglichen Spaltennamen enthält. Es bleibt nur die letzte Zeile.
Filter

Formelberechnung
Jetzt können wir die Anzahl der Datensätze berechnen.
Berechnung der Anzahl der Datensätze


In dem Schritt schreiben wir ins Log
Log Anzahl der Datensätze


Ausführung der Transformation in PDI
Nach erfolgreicher Ausführung schauen wir uns die Metriken.
Ausführung


Preview in PDI
Auch das Preview der einzelnen Schritte ist möglich.

Preview der Ausgabe des HTTP-Aufrufs:
HTTP Client Preview


Preview des Schritts: In Zeilen splitten
Zeilen Preview


Preview des Schritts: In Spalten splitten
Spalten Preview


Preview der Ausgabedaten:
Ausgabe Preview


Daten im SQL Server
Hier sehen wir die Daten, welche wir in den SQL Server geschrieben haben:
SQL Server{:class=”img-responsive”

In diesem Kapitel haben wir gesehen, wie wir in Pentaho SAP-Extraktionen, welche Xtract Universal zur Verfügung stellt, über HTTP aufgerufen und verwendet haben.
Eine mögliche Erweiterung dieses Szenarios wäre, die Metadaten (Spaltennamen und Datentyp) aus dem Xtract Universal Server zu holen und in der Transformation dynamisch zu verwenden.


Download der Vorlage für PDI
Die Transformation der Vorlage für Pentaho Data Integration (PDI) aka Kettle können Sie hier herunterladen: Call SAP Extraction from Xract Universal via HTTP.ktr