How To BI – Löschtransformation anlegen

How To BI – Löschtransformation anlegen
3.8 Sterne
9 Bewertungen


Es kommt vor, dass Daten in der Quelle „hart“ gelöscht werden und kein Delta geliefert wird. Ein möglicher Nachteil ist es, dass Daten im BW erhalten bleiben. In diesem How-To zeige ich Ihnen wie Sie mithilfe eines Standard-DSO-Objekts eine Lösung für dieses Problem finden.

Dabei wird vor dem eigentlichen Ladeprozess eine zusätzliche Löschtransformation ausgeführt. Dabei werden alle Sätze des DSO übernommen und ,mit einem Delete-Flag versehen (0RECORDMODE = D), als neues Request in das DSO eingebucht. Danach werden die Daten aus der Quelle im Full-Modus geladen. Als nächstes werden der Lösch-Request und der durch das Laden der neuen Daten erzeugte Request gleichzeitig aktiviert. Damit werden die durch das Löschen sowie Neuladen von Daten verursachten Veränderungen gleichzeitig aktiv. Dabei verfügt das DataStore-Objekt zu jedem Zeitpunkt über gültige Sätze und kann als Referenz dienen.
Diese Implementierung lässt sich sowohl für Stamm- als auch Bewegungsdaten umsetzen und besteht aus drei Schritten:

  1. Lösch-DTP starten
  2. Lade-DTP (Full) starten
  3. Daten aktivieren

Betrachten wir diese Schritte anhand eines Beispiels. Wir haben einen ganz einfachen Datenfluss – die Daten kommen per Full aus der Quelle und werden in einem DSO abgelegt. Danach geht es weiter in einen Cube.
Im ersten Ladevorgang wurden folgende Daten mit dem Recordmode N (für neue Daten) in das DSO eingebucht. Die aktive Tabelle und das Change-Log sehen gleich aus:

0BILL_NUM 0BILL_ITEM 0CREATEDON 0CALYEAR 0AMOUNT 0CURRENCY 0RECORDMODE
60000100 10 28.07.2014 2014 100 EUR N
60000100 20 29.07.2014 2014 120 EUR N
60000101 10 30.07.2014 2014 200 EUR N
60000102 10 31.07.2014 2014 300 EUR N

Anschließend wurden die Daten in den Cube geschrieben. Der Inhalt des Cubes sieht so aus:

0BILL_NUM 0BILL_ITEM 0CREATEDON 0CALYEAR 0AMOUNT 0CURRENCY
60000100 10 28.07.2014 2014 100 EUR
60000100 20 29.07.2014 2014 120 EUR
60000101 10 30.07.2014 2014 200 EUR
60000102 10 31.07.2014 2014 300 EUR

Nun wird ein Teil der Daten (Beleg 60000101) in der Quelle gelöscht. Der neue Datensatz sieht wie folgt aus:

0BILL_NUM 0BILL_ITEM 0CREATEDON 0CALYEAR 0AMOUNT 0CURRENCY
60000100 10 28.07.2014 2014 100 EUR
60000100 20 29.07.2014 2014 120 EUR
60000102 10 31.07.2014 2014 300 EUR

Um diese Änderung abbilden zu können, erstellen wir eine Lösch-Transformation. Das DSO wird in sich selbst mit 0RECORDMODE D geladen. Dazu erstellen wir eine technische Regelgruppe.

Technische Regelgruppe für eine Transformation

Technische Regelgruppe anlegen

Dem Zielfeld 0RECORDMODE weisen wir über den Regeltyp „Konstante“ den Wert D zu.

Technische Regelgruppe der Löschtransformation

Recordmode wird auf Löschen gesetzt

Aktivieren Sie die Transformation und erstellen Sie einen DTP mit Full-Update.

DTP mit Full Update

Lösch-DTP

Zuerst wird der Lösch-DTP ausgeführt und anschließend die Daten aus der Quelle geladen. Die Tabelle für neue Daten sieht nach den Ladeprozessen wie folgt aus:

0BILL_NUM 0BILL_ITEM 0CREATEDON 0CALYEAR 0AMOUNT 0CURRENCY 0RECORDMODE
60000100 10 28.07.2014 2014 100 EUR D
60000100 20 29.07.2014 2014 120 EUR D
60000101 10 30.07.2014 2014 200 EUR D
60000102 10 31.07.2014 2014 300 EUR D
60000100 10 28.07.2014 2014 100 EUR
60000100 20 29.07.2014 2014 120 EUR
60000102 10 31.07.2014 2014 300 EUR

Die vier alten Datensätze wurden gelöscht (Recordmode „D“) und drei neue Datensätze hinzugefügt (Recordmode “ “ für After-Image). Das After-Image beinhaltet den Neuzustand nach der Änderung des Datensatzes.
Anschließend aktivieren wir die beiden Requests. Die Tabelle für aktiven Daten beinhaltet die folgenden drei Sätze, der Beleg 60000101 wurde gelöscht.

0BILL_NUM 0BILL_ITEM 0CREATEDON 0CALYEAR 0AMOUNT 0CURRENCY 0RECORDMODE
60000100 10 28.07.2014 2014 100 EUR N
60000100 20 29.07.2014 2014 120 EUR N
60000102 10 31.07.2014 2014 300 EUR N

Schauen wir uns das Change Log an:

0BILL_NUM 0BILL_ITEM 0CREATEDON 0CALYEAR 0AMOUNT 0CURRENCY 0RECORDMODE
60000100 10 28.07.2014 2014 100 EUR N
60000100 20 29.07.2014 2014 120 EUR N
60000101 10 30.07.2014 2014 200 EUR N
60000102 10 31.07.2014 2014 300 EUR N
60000100 10 28.07.2014 2014 -100 EUR R
60000100 10 28.07.2014 2014 100 EUR N
60000100 20 29.07.2014 2014 -120 EUR R
60000100 20 29.07.2014 2014 120 EUR N
60000101 10 30.07.2014 2014 -200 EUR R
60000102 10 31.07.2014 2014 -300 EUR R
60000102 10 31.07.2014 2014 300 EUR N

Die ersten vier Datensätze kommen aus dem ersten Request. Die anderen wurden im zweiten Request angelegt. Diese werden auch so in den Cube fortgeschrieben. Wie Sie sehen können, ergeben alle Datensätze bis auf den Beleg 60000101 in der Summe 0. So werden sie auch den Cube übergeben. Da der Cube immer summiert sieht das RESULT_PACKAGE so aus:

0BILL_NUM 0BILL_ITEM 0CREATEDON 0CALYEAR 0AMOUNT 0CURRENCY
60000100 10 28.07.2014 2014 0.00 EUR
60000100 20 29.07.2014 2014 0.00 EUR
60000101 10 30.07.2014 2014 -200.00 EUR
60000102 10 31.07.2014 2014 0.00 EUR

Folgende Werte stehen nun in dem Cube:

0BILL_NUM 0BILL_ITEM 0CREATEDON 0CALYEAR 0AMOUNT 0CURRENCY
60000100 10 28.07.2014 2014 100 EUR
60000100 20 29.07.2014 2014 120 EUR
60000101 10 30.07.2014 2014 200 EUR
60000102 10 31.07.2014 2014 300 EUR
60000100 10 28.07.2014 2014 0 EUR
60000100 20 29.07.2014 2014 0 EUR
60000101 10 30.07.2014 2014 -200,00 EUR
60000102 10 31.07.2014 2014 0 EUR

Beleg 60000101 wurde gelöscht.

Ihre User beklagen sich über langsame Berichte?

  • In meinem Newsletter lernen Sie, wie Sie Abhilfe schaffen.
  • Entdecken Sie die Möglichkeiten der Performanceoptimierung.
  • Praktische Anleitungen ermöglichen Ihnen schnelle Erfolge bei der Optimierung von SAP Systemen.
  • Viele Tipps und Tricks zu SAP BI Themen.
  • Holen Sie die maximale Performance aus Ihrem SAP BI!
  • Bei der Anmeldung zu meinem Newsletter erhalten Sie das Buch „High Performance SAP BI“ als Willkommensgeschenk.
Fordere SAP Performance Tricks an

Jetzt anfordern!

* Pflichtfeld
 
Kein SPAM. Ich hasse Spam genau so wie du.

Quellen:
Frank Wolf, Stefan Yamada (2010): Datenmodellierung in SAP NetWeaver BW, 1. Auflage, Bonn

Falls Ihnen dieser Beitrag weitergeholfen hat, wäre es eine sehr nette Anerkennung meiner Arbeit wenn Sie z.B. Ihre Bücher über Amazon bestellen würden. Wenn Sie ein Produkt kaufen, erhalte ich dafür eine Provision. Für Sie ändert sich am Preis des Produktes gar nichts. Ich möchte mich an dieser Stelle jetzt schon für Ihre Unterstützung bedanken.

Denis Reis ist Business Intelligence Consultant und gibt als Buchautor sein Wissen rund um den SAP Projektalltag weiter. Wenn Sie tatkräftige Unterstützung bei Ihren SAP BI Projekten benötigen, können Sie ihn über Xing, LinkedIn oder Facebook kontaktieren.
Des Weiteren unterrichtet er Projektmanagement und Controlling an der Wiesbaden Business School. Der aus Düsseldorf stammende Familienmensch zählt zu denjenigen, die auf komplizierte Darstellungen verzichten und das Ganze auf den Punkt bringen.

0 Kommentare

Dein Kommentar

Want to join the discussion?
Feel free to contribute!

Kommentar verfassen