In unseren Kundenprojekten aber auch bei internen vorhaben erleben wir regelmäßig die Herausforderung sinnvolle Testdaten zu generieren.
Anhand eines fiktiven Showcase-Unternehmens möchten wir mit diesem Beitrag einen Weg vorstellen, wie auf einfache Art und Weise mit Hilfe von SAP BW/4HANASAP BW/4HANA ist die aktuelle Data Warehouse Lösung basierend auf… und ABAP, Testdaten generiert werden können.
Datenmodell
Stellen Sie sich ein fiktives Showcase-Unternehmen vor, welche weltweit EDV-Zubehör über lokale Standorte verkauft. Für unsere Showcases haben wir ein sehr einfaches Sales-Datenmodell aufgesetzt. Die nachfolgende Abbildung zeigt die Entitäten des Sales-Datenmodells und dessen Relation zueinander:
Auszüge aus den Tabellen
Produkte:
Stores:
Sales Orders:
Indizes:
Abkürzung | Indizes |
---|---|
VPI | Verbraucherpreisindex |
MPI | Mietpreisindex |
PPP | Kaufkraftpreisindex |
KER | Kaufpreis_Immobilien-Einkommens-Relation |
MERI | Verhältnis Preise zu Miete im Stadtkern |
MERA | Verhältnis Preise zu Miete außerhalb des Stadtkern |
BZKI | Bezahlbarkeitsindex |
USI | Umweltverschmutzungsindex |
GVI | Gesundheitsversorgungsindex |
VKI | Verkehrsindex |
KLI | Klimaindex |
SECI | Sicherheitsindex |
Technisch ist das Datenmodell in SAP BW/4 HANA abgebildet mit Hilfe von InfoObjectsInfoObjects sind betriebswirtschaftliche Auswertungsobjekte, welche sich in Merkmale, Kennzahlen, Einheiten,… und aDSO.
Idee des Datengenerators
In einem Generator sollten die Werte der Sales-Orders generiert werden können. Beeinflusst werden die Werte von Grenzwerten für die Absatzmengen von Produkten sowie durch regionale Verteilungen (Stores). Zudem sollte es möglich sein einen Trend sowie saisonale Faktoren zu berücksichtigen. Die Idee des Generators ist der Abbildung unten skizziert:
Der Nutzer wählt einen Kalendermonat (0CALMONTH) aus und anhand der Einstellungen für Produkte, Stores, den Trend und die Saisonalität generiert ein ABAP-Programm für die letzten drei Jahre der Sales-Orders.
Der “Index” ist ein Wert mit dem Absatzmengen gewichtet werden können, um einfache Verteilungen abzubilden. Der Index ist am einfachsten am Kalendermonat erklärt. Wenn es keine Saisonalität gibt, dann hat jeder Monat einen Index von 1 und die Summe des Index über alle Monate ergibt 12. Hat ein Monat einen Wert geringer oder höher als 1 kann eine saisonale Gewichtung eingestellt werden. Wichtig ist, dass die Summe weiterhin bei 12 liegt.
Beispiel-Kalkulation:
- Produkt LCD 42”: Die Absatzmenge darf zwischen 5.000 und 10.000 Stück liegen (wenn alle übrigen Indizes 1,0 sind)
- Kalendermonat Januar hat einen Index von 0,9 (d.h. im Januar wird weniger als 1/12 der Jahres-Absatzmenge verkauft)
- Das Kalenderjahr einen einen Trend-Index von 1,2 (d.h. die Absatzmenge ist im Vergleich zu den übrigen Jahren höher)
- Ein Store unseres Showcase Unternehmens hat einen Index von 2,0 (d.h. der Store verkauft deutlich mehr als andere Stores).
Das Programm soll die Absatzmenge mit folgender Formel berechnen: 7.500 (Zufallswert zwischen 5.000 und 10.000) x 0,9 x 1,2 x 2,0 = 16.200 Absatzmenge. Erzeugt werden Zufallswerte für alle Produkte und Stores, welche in den Stammdaten unseres Beispiel-Unternehmens vorhanden sind.
Umsetzung des Datengenerators mit SAP BW/4HANA
Die nachfolgende Abbildung skizziert die technische Umsetzung des Generators in SAP BW/4 HANA.
1 | Der Generator nutzt die Stammdaten des Datenmodells unseres Showcase-Unternehmens. Die Produkte und Stores, welche in den entsprechenden InfoObjects eingetragen sind, werden als Grundmenge verwendet.
2 | Die Einstellungen werden durchgeführt über BPC Embedded. Für die Merkmale wird dabei die Zugriffsart “Stammdaten” verwendet, damit immer für alle in den Stammdaten verfügbaren Produkte und Stores “geplant” wird.
Beispiel für Kalendermonate:
3 | Das ABAP Programm fasst schließlich alles zusammen, generiert die Zufallswerte und schreibt diese in das Ziel-aDSO.
Fazit: Ein einfacher Weg, um Testdaten zu generieren
Regelmäßig sind wir in Projekten oder intern als ISR auf die Herausforderung gestoßen, Testdaten generieren zu müssen. Der oben beschriebene Weg ist sehr schnell und einfach umsetzbar. Die Generierung der Datensätze gelingt in wenigen Sekunden und ist reproduzierbar.
Christopher Kampmann
Senior Manager
SAP Information Management
christopher.kampmann@isr.de
+49 (0) 151 422 05 448