<img height="1" width="1" style="display:none;" alt="" src="https://dc.ads.linkedin.com/collect/?pid=412841&amp;fmt=gif">

SAP Data Services – Einsatz der Reverse Pivot Transformation

16.08.2017  •  SAP Analytics, ETL

In diesem SAP Data Services Blog zeigen wir an einem Beispiel die Reverse Pivot Transformation im Data Services (Version 14.2.5)

Beispiel Szenario

Als Eingangsquelle dient eine Tabelle mit folgendem Aufbau:

In dieser Schnittstelle wird der eigentliche Datensatz (Feld WA) in einem String geliefert und muss in den einzelnen Schnittstellenspalten (Fieldname) über den Offset und Feldlänge gesplittet werden.

Das Ergebnis sollte wie folgt sein:

MANDT ZCD_TIMESTAMP
010 18.04.2017 11:05
010 19.04.2017 12:34
010 20.04.2017 12:44
010 21.04.2017 12:34

Die SAP Data Services Funktion findet Ihr unter Transforms:

Im Folgenden werden die einzelnen Schritte kurz beschrieben:

  1. SAP Data Services Dataflow Aufbau

Im ersten Dataflow-Schritt haben wir die oben gezeigte Quelltabelle als Eingangsquelle definiert, danach erfolgt eine klassiche Transform (z.B. Einschränkung der Quelldaten, Hinzufügen von Feldern, etc.).

Im Anschluss wird die Reverse_Pivot Transformation verwendet, um die Pivotisierung der Daten vorzunehmen. Der letzte Schritt schreibt die Daten in eine neue Tabelle.

2. Reverse_Pivot – Default Einstellung

Beim Aufruf der SAP Data Services Funktion erscheint folgendes Einstellungsbild (Default Einstellung):

Das Fenster enthält die folgenden Objekte:

  • Non-pivot columns: Hier die Spalten aus dem Eingabeschema (Schema In) auswählen, die im Ausgabeschema (Schema Out) ohne Änderungen erscheinen.
  • Input data is grouped: Diese Option sollte aus Performance Gründen aktiviert werden, wenn die Spalten aus dem Eingabeschema bereits auf der Grundlage der in der Liste „Non-pivot columns“ sortiert sind.
  • Pivoted columns: Hier werden die Spalten ausgewählt, die wir pivotisieren wollen Für die einzelnen Werte in „Pivot Axis column“ wird ein Satz von Spalten erstellt.
  • Default value: Der Wert, der gespeichert werden soll wenn die pivotisierte Spalte keine Daten enthält. Die Voreinstellung ist leer (null), wenn wir keinen Wert angeben. Hier dürfen keine Leerzeichen verwendet werden.
  • Pivot axis column: Die Spalte, die bestimmt welche neuen Spalten im Ausgabeschema (Schema Out) benötigt werden. Zur Jobausführung wird für jede pivotierte Spalte und jeden eindeutigen Wert, in dieser Spalte, eine neue Spalte angelegt.
  • Axis value: Dieser Wert stellt einen bestimmten Satz von Ausgabespalten dar, d.h. für jeden Achsenwert wird ein Satz von Pivot-Spalten erzeugt. Es sollte ein Achsenwert für jeden eindeutigen Wert in der Spalte Pivotachse vorhanden sein.
  • Column Prefix: Text, der an die Vorderseite der Pivoted Spaltennamen hinzugefügt wurde, wenn neue Spaltennamen für die gedrehten Daten erstellt wurden. Ein Unterstrich trennt den Präfixnamen aus dem pivotisierten Spaltennamen.
  • Duplicate value: Einstellungsmöglichkeiten (Abort, First Row, Last Row), wenn mehr als eine Zeile mit demselben Schlüssel und Wert in der Spalte „Pivoted columns“ steht. In diesem Fall könnt Ihr entweder die erste Zeile oder die letzte Zeile auswählen oder den Transformationsprozess abbrechen.

3. Reverse_Pivot –Einstellung für unser Beispiel

In unserem Beispiel wurde für den Pivoted Columns die Spalte „WA“ gewählt. Diese Spalte enthält den kompletten Datensatz als String:

Im Bereich Axis value wurde der Schnittstellenaufbau hinterlegt:

Die „Pivot axis column“ enthält die Spalte mit den Feldnamen.

Auszug aus den Inhalten:

Als letztes wurden die Spalten aufgeführt, die keine Pivotisierung benötigen – Bereich Non-pivot columns.

4. Ergebnis

Zur Erinnerung – die Tabelle als Eingangsquelle:

Und nach der Pivotisierung und Auftrennung der Feldnamen in Spalten: