Kontenmodell zu Kennzahlenmodell zu Kontenmodell umwandeln

Kontenmodell zu Kennzahlenmodell zu Kontenmodell umwandeln
Kontenmodell zu Kennzahlenmodell zu Kontenmodell umwandeln
5 Sterne
5 Bewertungen


In einem früheren Beitrag habe ich den Unterschied zwischen dem Kontenmodell und Kennzahlenmodell erläutert. In diesem Beitrag stelle ich verschiedene Möglichkeiten vor, Daten von einem Modell in das andere zu transferieren. Man spricht auch vom „Kippen des Datenmodells“.

Kontenmodell zu Kennzahlenmodell mit Transformationregeln

Eine Möglichkeit besteht darin die Transformationsregeln zu nutzen. Das Vorgehen möchte ich anhand eines Beispiels erläutern.
In der Quelle sind folgende Werte im Kontenmodell hinterlegt:
Daten in der Quelle als Kontenmodell
Diese sollen im Ziel nach folgenden Regeln transformiert werden. Dabei bekommt jedes Konto eine eigene Kennzahl.

Kennzahl Konto ZITEM Beschreibung Wert
ZNETS1 3000 Nettoumsatz    3.000 €
ZCOST1 2000 Kosten    2.000 €
ZSALM1 1000 Umsatzmarge    1.000 €

Um dieses Ziel zu erreichen, nutzen wir die Regeln in der Transformation. So wird, neben dem Betrag, auch das Konto an die Kennzahl Nettoumsatz übertragen.
Transformationsregeln
In den Regeldetails legen wir Routine als Regeltyp fest.
Regeldetails - Regeltyp Routine
Falls das Konto „3000“ lautet, wird der Wert in die Kennzahl Nettoumsatz geschrieben, ansonsten passiert nichts.


    IF SOURCE_FIELDS-/BIC/ZITEM  = '3000'.
      RESULT = SOURCE_FIELDS-AMOUNT.
    ENDIF.

Die Regeln für Kosten und Umsatzmarge sehen analog aus (mit dem jeweiligen Konto 2000 und 1000).
Nach dem Ladeprozess stehen die Werte im Ziel als Kennzahlen zur Verfügung:
Daten im Kennzahlenmodell

Kontenmodell zu Kennzahlenmodell mit Endroutine

Eine andere Möglichkeit stellt der Weg über eine ABAP Endroutine dar. Um die Quell- und Zielinfoobjekte verarbeiten zu können, wird eine InfoSource dazwischen geschaltet, die beide (Konten und Kennzahlen) enthält.
InfoSource anlegen
Als Vorlage dient der Cube mit dem Kontenmodell, anschließend wird die InfoSource um die Kennzahlen aus dem Kennzahlenmodell erweitert.
Konten und Kennzahlen in einer InfoSource

Die Transformation zur InfoSource sieht wie folgt aus.
Transformation zur InfoSource

In der Endroutine der Transformation stehen alle Felder zur Verfügung. Wir gehen über alle Datensätze und weisen die Werte dem Konto entsprechend zu.

    LOOP AT RESULT_PACKAGE ASSIGNING <result_fields>.
      IF <result_fields>-/bic/zitem = '3000'.
        <result_fields>-/bic/znets1 = <result_fields>-amount.
      ELSEIF <result_fields>-/bic/zitem = '2000'.
        <result_fields>-/bic/zcost1 = <result_fields>-amount.
      ELSEIF <result_fields>-/bic/zitem = '1000'.
        <result_fields>-/bic/zsalm1 = <result_fields>-amount.
      ENDIF.
    ENDLOOP.

Nach der InfoSource werden die Felder 1:1 in den Cube mit den Kennzahlen übertragen.
Transformation von der InfoSource zum Cube im Kennzahlenmodell

Das Ergebnis stimmt mit dem aus Transformationregeln überein.
Ergebnis Endroutine

Kennzahlenmodell zu Kontenmodell mit Transformationregeln

Nachdem wir die Werte nun im Kennzahlenmodell zur Verfügung haben, möchte ich die Umwandlung zu Kontenmodell demonstrieren. Eine Möglichkeit sind die Transformationsregeln mit Regelgruppen. Dabei wird pro Konto eine Regelgruppe angelegt, die Konten sind als Konstanten hinterlegt und mit der jeweiligen Kennzahlen verlinkt. So schaut die Transformation für den Nettoumsatz aus.
Transformation Umsatz Kontenmodell
Um die Kennzahl Kosten in das Kontenmodell umzuwandeln, legen wir eine neue Regelgruppe an.
Neue Regelgruppe wird angelegt
Dabei wird das Kostenkonto 2000 als Kostante hinterlegt.
Regelgruppe Kosten
Diese Übung für auch für die Umsatzmarge wiederholt.
Regelgruppe für Umsatzmarge
Beim Laden der Daten werden nun aus einem Datensatz in Kennzahlenmodell drei im Kontenmodell.
DTP wird ausgeführt
Das Ergebnis sieht wie folgt aus. Die Konten werden mit den entsprechenden Werten angezeigt.
Ergebnis der Transformation - Kennzahlen in Konten umgewandelt

Kennzahlenmodell zu Kontenmodell mit Endroutine

Auch bei der Umwandlung zum Kontenmodell können wir eine ABAP Endroutine nutzen. Analog zum Umwandlung zum Kennzahlenmodell wird eine InfoSource dazwischen geschaltet, die beide InfoObjekte (Konten und Kennzahlen) enthält. So können wir in der Endroutine auf Quell- und Zielinfoobjekte zugreifen.
Transformatin vom Kennzahencube zur InfoSource
Im Coding gehen wir über alle Datensätze. Dabei erstellen wir pro Datensatz im Kennzahlenmodell drei neue im Kontenmodell. Die Konten werden hardgecodet und der Wert aus der jeweiligen Kennzahl übernommen.

    DATA lt_result TYPE STANDARD TABLE OF _ty_s_tg_1.
 
     LOOP AT RESULT_PACKAGE ASSIGNING <result_fields>.
 *create new line per account
       <result_fields>-/bic/zitem '3000'.
       <result_fields>-amount <result_fields>-/bic/znets1.
       APPEND <result_fields> TO lt_result.
       <result_fields>-/bic/zitem '2000'.
       <result_fields>-amount <result_fields>-/bic/zcost1.
       APPEND <result_fields> TO lt_result.
       <result_fields>-/bic/zitem '1000'.
       <result_fields>-amount <result_fields>-/bic/zsalm1.
       APPEND <result_fields> TO lt_result.
 *delete original data set
       DELETE RESULT_PACKAGE.
     ENDLOOP.
 
 *replace the result package with new entries
     APPEND LINES OF lt_result TO RESULT_PACKAGE. 

Nach der InfoSource werden die Felder 1:1 in den Kontencube übertragen.
Transformation von der InfoSource in den Cube im Kontenformat

Nach dem Ladeprozess werden die Daten im Kontenmodell angezeigt.
Daten ins Kontenmodell gekippt

Diese ABAP Tricks machen Ihr Leben leichter!

  • In meinem Newsletter gebe ich eine Menge Tipps und Kniffe rund um ABAP.
  • Die Mini-Tutorials unterstützen Sie dabei, Software in ABAP effizienter zu entwickeln.
  • Praktische Anleitungen ermöglichen Ihnen schnelle Erfolge bei der Optimierung Ihrer Arbeit.
  • Bei der Anmeldung zu meinem Newsletter erhalten Sie das Buch „ABAP Tipps und Tricks“ als Willkommensgeschenk.
ABAP Tipps und Tricks

Jetzt anfordern!

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

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 bei Dahlbeer und gibt als Buchautor sein Wissen rund um den SAP Projektalltag weiter. 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.

2 Kommentare

Dein Kommentar

Want to join the discussion?
Feel free to contribute!

Kommentar verfassen