Kapitel 11

Berechnete Kennzahlen: wohin mit den Preisen?

IN DIESEM KAPITEL

  • Preisberechnung als Formel
  • Eingabe und retrograde Berechnung der Ausgangsgrößen
  • Preisberechnung über Datenaktionen
  • Preis auf Produktebene

Zentrale Frage bei der Umsetzung des unternehmensweiten Gesamtmodells im Rahmen der OLAP-basierten Planung ist die Definition von Berechnungen. In SAP Analytics Cloud gibt es verschiedene Stellen, an denen Berechnungen definiert werden können:

  • Im Bereich Berechnungen direkt im Planungsmodell
  • In Datenaktionen. Das haben Sie schon in den Kapiteln 9 und 10 kennengelernt.
  • Im Rahmen einer Story

Sie werden in diesem Kapitel die verschiedenen Optionen näher kennenlernen und dann beurteilen, was jeweils dadurch erreicht werden kann. Als Anwendungsbeispiel dient der Umgang mit Verkaufspreisen im Rahmen einer Vertriebsplanung.

Sie werden dazu das in Teil II erstellte Modell VerkaufsplanV01 kopieren und erweitern.

Als ersten beispielhaften Anwendungsfall betrachten Sie:

  • Berechnung des Verkaufspreises aus den Verkaufsaufträgen des aktuellen Jahres
  • Manuelle Planung der neuen Verkaufsmengen des Planjahrs
  • Berechnung des Planbruttowerts als neue Menge * historischer Preis
  • Diese Berechnung soll automatisch direkt nach Eingabe der Verkaufsmenge erfolgen und nicht etwa durch Ausführen einer Datenaktion erst angestoßen werden müssen.

    Generell wird in diesem Kapitel der Umsatz aus Menge und Preis über berechnete Kennzahlen (»on-the-fly calculations«) ermittelt. Dies hat den Vorteil, dass die Berechnung direkt nach Eingabe der Menge automatisch durch das System erfolgt. Allerdings ist dieser Ansatz bei Vertriebsplanungsanwendungen mit sehr großen Dimensionen für Kunde und Produkt (wie sie in der Praxis häufig auftreten) problematisch. Schaut man dann auf einer hohen Aggregationsstufe auf den Cube, müssten nämlich mehrere Millionen Datenpunkte »on-the-fly« berechnet werden.

    Daher ist es in der Praxis (zumindest bei Mengengerüsten mit mehreren zehntausend Produkten oder Kunden) Best Practice, den Umsatz als Basiskennzahl zu definieren und die Berechnung über eine Datenaktion durchzuführen. In diesem Fall wird auf die automatische Berechnung nach Neueingabe einer Menge verzichtet, sondern die Berechnung durch Drücken auf eine Schaltfläche angestoßen.

Die folgende grafische Darstellung ist angelehnt an die Methodik von ADAPT, das für die semantische mehrdimensionale Modellierung entwickelt wurde1 und hier die beteiligten Kennzahlen beschreiben soll.

Da es sich um ein Planungssystem handelt, wurde die Systematik um dieses Symbol erweitert, das sowohl die eingabebereiten Kennzahlen als auch eine Berechnung nach der Eingabe kennzeichnen soll. Den relevanten Ausschnitt des semantischen Modells können Sie der Abbildung 11.1 entnehmen.

Abbildung 11.1: Verkaufsplanungsszenario

  • Der historische Verkaufspreis wird vorab aus Bruttoumsatz und Verkaufsmenge berechnet (Abbildung 11.1, oberer Zweig).
  • Die Verkaufsmenge wird durch den Planer eingegeben, was die Berechnung des Planbruttoumsatzes auslöst (Abbildung 11.1, unterer Zweig).

Weitere Informationen zum Umgang mit Preisen können Sie auch der SAP-Dokumentation entnehmen, und zwar im Abschnitt Formeln vom Typ [Preis] * [Menge] https://help.sap.com/docs/SAP_ANALYTICS_CLOUD/00f68c2e08b941f081002fd3691d86a7/78d550c8cb154c25b8e73810fabcddbc.html

Das Kapitel besteht aus vier Abschnitten, in denen verschiedene Techniken zur Lösung dieser Thematik vorgestellt werden, wobei auch die Vor- und Nachteile beleuchtet werden.

  • Im ersten Abschnitt Modellerweiterung und Preisberechnung wird der Verkaufspreis zunächst als »gewöhnliche« Formel im Modell definiert, wie dies oft in OLAP-Anwendungen praktiziert wird. Dann zeigt sich, dass der Preis nicht eingabebereit ist, also nicht geplant werden kann.
  • Durch die Technik der Inversen Formel des zweiten Abschnitts wird diese Einschränkung zwar aufgehoben, dennoch stößt auch dieser Ansatz an Grenzen.
  • Daher ist es gute Praxis, den Preis als Basiskennzahl zu definieren, was im Abschnitt Neue Kennzahlen mit Datenaktion durchgeführt wird. Dies wiederum bedeutet aber zunächst, dass der Verkaufspreis prinzipiell für alle Zellen des Würfels, also alle Kombinationen aus Produkt / Kunde / Zeit existiert.
  • Daher zeigt der letzte Abschnitt Preis auf Produktebene dieses Kapitels, wie eine zentrale Preisliste (also Preise unabhängig vom Kunden) umgesetzt werden kann.

Sind Sie bereit? Es geht los!

Modellerweiterung und Preisberechnung

In Teil II haben Sie das Modell VerkaufsplanV01 erstellt und mit den Verkaufsaufträgen der Jahre 2020 bis 2022 beladen. Zusätzlich haben Sie in Kapitel 9 in diesem Modell die Versionen Plan01 und Plan02 erstellt und Werte für das Jahr 2023 manuell erfasst beziehungsweise durch eine Datenaktion erzeugt.

Dieses Modell möchten Sie zunächst nun um eine neue berechnete Kennzahl Verkaufspreis erweitern.

Solch eine Kennzahl wird durch das System auf allen Daten berechnet, insbesondere in allen Versionen und allen Zeiträumen. In der Version Actual, die ja die Ist-Daten enthält, wird dadurch also der Preis zum Zeitpunkt des Verkaufsvorgangs angezeigt. Und da die Werte der Version Plan01, Jahr 2023 als Kopie der Version Actual, Jahr 2022 entstanden sind, wird auch dort zunächst der historische Preis angezeigt, so wie das in dem aktuellen Szenario gewünscht ist. Sie müssen im weiteren Verlauf darauf achten, dass sich der Preis nicht unbeabsichtigt ändert!

Obwohl ADAPT lediglich für die semantische Modellierung entwickelt wurde, soll dies im weiteren Verlauf dieser Case Study weiter abgewandelt werden, um auch Implementierungsdetails zu illustrieren. Ein wichtiges solches Detail ist, dass die Werte von berechneten Kennzahlen nicht auf der Datenbank gespeichert, sondern bei jedem Aufruf der entsprechenden Story erneut ausgerechnet werden. Dies wird verdeutlicht durch die gestrichelte Linie in Abbildung 11.2.

Abbildung 11.2: Verkaufspreis als berechnete Kennzahl

Zur Umsetzung kopieren Sie zunächst das Modell aus Teil II.

Abbildung 11.3: Kopieren des Modells

Beachten Sie, dass Sie wirklich VerkaufsplanV01 und nicht VerkaufsplanV02 kopieren. Zur Erinnerung: VerkaufsplanV02 haben Sie in Kapitel 10 erstellt, und dies hat eine stark vereinfachte Struktur.

  1. Vergeben Sie VerkaufsplanV03 als Namen und beachten, dass auch die Daten mit kopiert werden (Abbildung 11.4)

    Abbildung 11.4: Daten beim Kopiervorgang einschließen

  2. Nun können Sie das Modell erweitern und die berechnete Kennzahl Verkaufspreis definieren (Abbildung 11.5).

    [Bruttowert]/[Verkaufsmenge]

    Beachten Sie:

    • Einheitentyp muss leer bleiben; dann ermittelt das System automatisch die korrekte Einheit aufgrund der Basiskennzahlen (nicht im Bild sichtbar).
    • Bei der Definition erhalten Sie schon eine Vorschau der Daten (Abbildung 11.5, Schritt 5).
    • Weil der Bruttoumsatz je nach Land in verschiedenen Währungen vorliegt, müssen Sie die Dimension Kunde in die Zeilen aufnehmen und aufklappen.
    • Dann sehen Sie, dass die durchschnittlichen Preise pro Land und Kunde ausgerechnet wurden, aber nicht für den Topknoten (all).

    Abbildung 11.5: Definition Verkaufspreis

  3. Speichern Sie Ihr Modell!
  4. Nun legen Sie eine neue Story StoryVerkaufsplan03 an, in der die Preisverteilung anschaulicher dargestellt werden kann.
  5. Legen Sie eine Tabelle für das gerade angelegte Planungsmodell VerkaufsplanV03 an mit:
    • Produkt, Kunde und Date in den Zeilen
    • Version Plan01 im Filter
    • den Kennzahlen Verkaufsmenge, Bruttowert und Verkaufspreis im Filter und in den Spalten (Abbildung 11.6)

      Abbildung 11.6: Anzeige Verkaufspreis

In der Praxis könnte auch Kunde im Filter stehen und ein Planer nacheinander die verschiedenen Produkte pro Kunde planen. Auch ist denkbar, dass die Zeitdimension nicht in den Zeilen enthalten ist. Dann würde das System die Verteilung der Jahreswerte auf die Monate automatisch im Hintergrund ausführen (vgl. auch Kapitel 9, Abschnitt Eingabe und Verteilung von Werten).

Beim Blick auf die Tabelle in Abbildung 11.6 können Sie sehen:

  • Die berechnete Kennzahl Verkaufspreis ist nicht eingabebereit.
  • Verkaufspreis wurde auf (fast) allen Ebenen berechnet. Die Ebene Kunde (all) hat verschiedene Währungen und daher weder Bruttowert noch Verkaufspreis.
  • Die feinste Granularität ist Produkt / Kunde / Monat.
  • Der Verkaufspreis für ein Produkt (hier: Ellenbogenschoner) ist für alle Kunden innerhalb eines Landes immer gleich.
  • Auf der Ebene Produkt / Kunde / Date (all) wird der Durchschnittspreis über alle Zeiträume (in diesem Fall das Gesamtjahr) ausgerechnet. Das macht Sinn!
  • Auf den Ebenen Produkt (all) / Kunde / Date (all), Sparte / Kunde / Date (all) und Produktkategorie / Kunde / Date (all) ist der Durchschnittspreis über alle Produkte der jeweiligen Rubrik zu sehen. Beispielsweise ist der Wert 112,20 bei der Sparte AS im Land DE der Durchschnittspreis über alle Zubehörteile im Land Deutschland. Das macht nicht unbedingt Sinn! Sie werden später sehen, wie man dies vermeiden kann.

Bei Eingabe eines neuen Wertes im Feld Verkaufsmenge wird die Formel, also der Verkaufspreis von System neu berechnet (Abbildung 11.7).

Abbildung 11.7: Eingabe der Verkaufsmenge

Dies entspricht nicht dem angestrebten Systemverhalten. Gemäß dem zu Beginn des Kapitels definierten Szenario soll nach Eingabe von Verkaufsmenge der neue Bruttowert automatisch errechnet werden. Sie werden im weiteren Verlauf verschiedene Alternativen ausprobieren, wie das erreicht werden kann: durch eine sogenannte Inverse Formel oder durch die Verwendung einer weiteren Kennzahl mit Datenaktion.

Mit der Änderung des Wertes in Feld Verkaufsmenge wollten Sie das Systemverhalten nur mal ausprobieren. Eigentlich wollen Sie die Daten nicht ändern und verwenden daher DATEN ZURÜCKSETZEN.

Vergessen Sie nicht, Ihre Story unter dem Namen StoryVerkaufsplan03 zu sichern, falls nicht bereits schon geschehen.

Inverse Formel

Grundsätzlich ist auch denkbar, dass nicht nur die Verkaufsmenge, sondern auch der Verkaufspreis geplant werden soll.

Da der Verkaufspreis über eine Formel errechnet wird, kann dieser aber zunächst einmal nicht eingegeben werden. Es gibt nämlich gar keinen Platz auf der Datenbank, wo das System einen eingegebenen Wert speichern könnte.

Was ist der Trick, um dennoch eine Eingabe zu ermöglichen? Nun ja, Sie legen fest, dass nach der Eingabe des Verkaufspreises eine der Ausgangskennzahlen neu berechnet werden soll, in Ihrem Fall ist dies der Bruttowert. Dafür definieren Sie also eine zweite Formel Bruttowert = Verkaufsmenge * Verkaufspreis, die nach der Eingabe des Verkaufspreises ausgeführt wird (Abbildung 11.8). Solch eine Formel heißt Inverse Formel.

Abbildung 11.8: Anwendungsszenario der Inversen Formel

Beim erneuten Aufruf der Story wird dann der Verkaufspreis erneut aus den gespeicherten Werten der Kennzahlen Verkaufsmenge und Bruttowert errechnet. Mathematisch gesehen ergibt die Rechnung im vorliegenden Fall exakt den eingegebenen Verkaufspreis, praktisch kann es zu Rundungsdifferenzen kommen.

  1. Erweitern Sie also die Formel für berechnete Kennzahl Verkaufspreis (Abbildung 11.9).

    Geben Sie einfach das Zeichen [|] ein, das System unterstützt Sie dabei und schlägt geeignete inverse Formeln vor!

    Abbildung 11.9: Eingabe der Inversen Formel

  2. Speichern Sie Ihr Modell und verwenden Sie in der Story die Funktion DATENAKTUALISIERUNG.

    Dann ist der Verkaufspreis in der Story eingabebereit.

    Ist damit das Problem gelöst, wird also dadurch das gewünschte Szenario abgebildet?

  3. Probieren Sie das aus, indem Sie zunächst einen neuen Preis eingeben.

    Dann wird von System (wie in der inversen Formel angegeben) der Bruttowert errechnet (Abbildung 11.10).

    Abbildung 11.10: Eingabe des Verkaufspreises

  4. Geben Sie nun eine neue Verkaufsmenge ein.

    Vom System wird dann allerdings immer noch der Verkaufspreis geändert und nicht wie gewünscht der Bruttowert (nicht im Bild sichtbar).

  5. Sperren Sie nun zunächst den Verkaufspreis gegen Eingaben und geben Sie dann eine neue Verkaufsmenge ein.

    Nun wird vom System der Bruttowert neu berechnet, wie gewünscht (Abbildung 11.11).

    Abbildung 11.11: Eingabe bei gesperrtem Verkaufspreis

Das Sperren der Zelle gegen Eingaben muss direkt in der Tabelle der Story vorgenommen werden; bei den Datensperren des Modells ist dies für berechnete Kennzahlen leider nicht möglich (Abbildung 11.12).

Abbildung 11.12: Keine Sperren für berechnete Kennzahlen

Das gewünschte Szenario, wonach der Bruttowert nach Eingabe der Verkaufsmenge automatisch errechnet werden soll, wird also bei dem Ansatz aus diesem Abschnitt nur dann korrekt umgesetzt, wenn der Endanwender der Planung den Verkaufspreis direkt in der Tabelle der Story gegen Eingaben sperrt. Dies kann nicht voreingestellt werden und ist nicht sehr anwenderfreundlich.

Daher wird im nächsten Abschnitt ein alternativer Ansatz betrachtet.

Neue Kennzahlen mit Datenaktion

In diesem Abschnitt probieren Sie einen anderen Ansatz aus, wie der Bruttowert nach Eingabe der Verkaufsmenge berechnet werden kann.

Statt als Formel wie im vorherigen Abschnitt werden Sie nun den Verkaufspreis als »gewöhnliche« Kennzahl definieren und in einer Datenaktion ausrechnen. Zusätzlich definieren Sie eine weitere berechnete Kennzahl BruttowertSim, damit der Bruttowert sofort nach Eingabe einer neuen Menge ausgerechnet wird (Abbildung 11.13).

Abbildung 11.13: Szenario Verkaufspreis als Kennzahl

  1. Damit das Modell aus dem vorherigen Abschnitt weiterhin funktioniert, wollen Sie die Änderungen auf einem neuen Planungsmodell VerkaufsplanV04 durchführen, das Sie zunächst als Kopie aus VerkaufsplanV03 erstellen (nicht im Bild sichtbar).

    Wie das Kopieren prinzipiell funktioniert, können Sie in Abbildung 11.3 aus dem Beginn des Kapitels sehen.

  2. Löschen Sie zunächst die Berechnete Kennzahl Verkaufspreis (Abbildung 11.14).

    Abbildung 11.14: Löschen Verkaufspreis

  3. Legen Sie stattdessen eine (Basis-)Kennzahl Verkaufspreis mit folgenden Eigenschaften an (Abbildung 11.15):

    Abbildung 11.15: Eigenschaften Verkaufspreis

    • 2 Dezimalstellen
    • Ausnahmen-Aggregationstyp: Keine mit Ausnahmen-Aggregationsdimensionen: Date, Kunde und Produkt. Dies stellt sicher, dass die Verkaufspreise beispielsweise nicht über verschiedene Kunden addiert werden.
    • WÄHRUNG Aus Dimension Kunde
  4. Wie zu Beginn dieses Abschnitts erklärt, legen Sie zusätzlich eine berechnete Kennzahl BruttowertSim mit der folgenden Formel an (Abbildung 11.16):

         [Verkaufsmenge]*[Verkaufspreis]

    Abbildung 11.16: Definition »BruttowertSim«

  5. Damit später die Einheit von BruttowertSim korrekt angezeigt wird, sollten Sie die Einheit der Verkaufsmenge löschen (Abbildung 11.17). (Grund: Bei der Berechnung der Formel [Verkaufsmenge]*[Verkaufspreis] multipliziert das System nämlich auch die beiden Einheiten. BruttowertSim hätte also beispielsweise die Einheit EUR ST.)
  6. Speichern Sie das Modell!
  7. Als Nächstes definieren Sie eine Datenaktion mit dem technischen Namen SFD_M04_PreisBerechnen, der Beschreibung Preis Berechnen und dem Standardmodell VerkaufsplanV04 (Abbildung 11.18).

    Abbildung 11.17: Verkaufsmenge ohne Einheit

    Abbildung 11.18: Anlegen der Datenaktion

  8. Fügen Sie dann einen ERWEITERTEN FORMELSCHRITT hinzu und verwenden Sie den Namen Preis Berechnen. In Kapitel 10 haben Sie die Formeln als Skript eingegeben. Nun können Sie die VISUELLE DARSTELLUNG ausprobieren (Abbildung 11.19).
  9. Als Zielumfang wählen Sie die Kennzahl Verkaufspreis aus (Abbildung 11.20).
  10. Nun definieren Sie die beiden Quellumfänge Bruttowert und Verkaufsmenge und dazwischen den Divisionsoperator / (Abbildung 11.21).

    Abbildung 11.19: Start der visuellen Definition

    Abbildung 11.20: Zielumfang definieren

    Abbildung 11.21: Quellumfang und Operator

  11. Speichern Sie die Datenaktion.

    Zum Ausführen der Datenaktion benötigen Sie wieder eine Story.

  12. Legen Sie eine neue Story StoryVerkaufsplan04 an und darin eine Tabelle für das Planungsmodell VerkaufsplanV04 mit
    • Kunde, Produkt und Date in den Zeilen
    • Version Plan01 im Filter
    • Jahr 2023 im Filter
    • den Kennzahlen Verkaufsmenge, Bruttowert, Verkaufspreis und BruttowertSim im Filter und in den Spalten (Abbildung 11.22).

      Abbildung 11.22: Tabellenstruktur

    Die Elementreihenfolge der Kennzahlen kann gegebenenfalls hier bearbeitet werden (Abbildung 11.23).

    Abbildung 11.23: Elementreihenfolge bearbeiten

  13. Nun fügen Sie einen Auslöser für die Datenaktion mit den folgenden Eigenschaften ein (Abbildung 11.24):
    • Datenaktion SFD_M04_PreisBerechnen
    • Zielversion Festwert Plan01

    Abbildung 11.24: Auslöser für die Datenaktion

  14. Speichern Sie die Story.

    Vor dem Ausführen der Datenaktion sind eventuell nur Verkaufsmenge und Bruttowert in der Tabelle zu sehen (abhängig von der Einstellung bei Nicht gebuchte Daten).

  15. Führen Sie nun die Datenaktion aus.

    Dann werden Verkaufspreis und BruttowertSim ausgerechnet und angezeigt (Abbildung 11.25).

    Abbildung 11.25: Verkaufspreis nach Ausführung der Datenaktion

Überprüfen Sie, dass der Verkaufspreis vom System korrekt gerechnet wurde. Sie können dies beispielsweise in einer Excel-Pivottabelle ähnlich wie in Kapitel 9 bewerkstelligen.

Nicht in Abbildung 11.25 sichtbar ist, dass der Verkaufspreis auf Ebene Land / Produkt trotzdem angezeigt wird, obwohl Sie Ausnahmen-Aggregationstyp: Keine mit Ausnahmen-Aggregationsdimensionen:Date, Kunde und Produkt angegeben haben. Dies liegt daran, dass alle unterliegenden Preise gleich sind.

Nun können Sie eine neue Verkaufsmenge planen. Die Menge geben Sie auf Ebene Produkt, Kunde und dann entweder auf Jahres- oder Monatsebene ein. Unmittelbar nach erfolgter Eingabe wird der neue Bruttowert in dem Feld BruttowertSim ausgerechnet (Abbildung 11.26).

Abbildung 11.26: Eingabe der Verkaufsmenge

Verkaufspreis könnten Sie noch mithilfe der Datensperren gegen versehentliche Eingabe sperren. BruttowertSim ist als berechnete Kennzahl sowieso nicht eingabebereit.

Im Prinzip ist die Umsetzung schon mal ganz gut, aber es geht noch besser!

Als Erstes fällt Ihnen auf, dass der geplante Bruttowert nur auf Ebene der einzelnen Produkte angezeigt wird, aber beispielsweise nicht der Gesamtwert eines Kunden. Dies lässt sich leicht beheben.

  1. Definieren Sie im Modell VerkaufsplanV04 für die berechnete Kennzahl BruttowertSim den Ausnahmen-Aggregationstyp Summe und die Ausnahmen-Aggregationsdimensionen Date, Produkt, Kunde (Abbildung 11.27).

    Nach Sichern des Modells und Aktualisieren der Story ist der neue Gesamtwert in allen darüber liegenden Hierarchieebenen sichtbar (Abbildung 11.28).

    Zum Abschluss dieses Abschnitts wollen Sie nun noch die prozentuale Abweichung zu dem Bruttowert des Vorjahrs in der Planungstabelle anzeigen. Am einfachsten geht dies durch die Verwendung der Kennzahl Bruttowert in der aktuellen Planungstabelle, deren Werte ja durch Kopieren aus dem Bruttowert des Vorjahrs entstanden sind und die während des Planungsprozesses nicht verändert wurden.

    Abbildung 11.27: Ausnahmeaggregation für BruttowertSim

    Abbildung 11.28: Anzeige des Gesamtbruttowertes

  2. Die Spalte mit der Abweichung können Sie direkt in der Tabelle hinzufügen (Abbildung 11.29):
    • Zunächst markieren Sie die Spalte BruttowertSim
    • Dann drücken Sie die Taste und markieren auch die Spalte Bruttowert (Reihenfolge ist wichtig!)
    • Im Kontextmenü wählen Sie CLIENT-BERECHNUNG HINZUFÜGEN|PROZENTUALER UNTERSCHIED|EINZELN. (EINZELN und WIEDERKEHREND macht nur dann einen Unterschied, wenn es mehrere Dimensionen in den Spalten gibt, was hier nicht der Fall ist.)

    Abbildung 11.29: Definieren der Abweichung

    Die Abweichung wird korrekt ausgerechnet und vom System hinter der zweitmarkierten Spalte eingefügt (Abbildung 11.30).

    Abbildung 11.30: Eingefügte Spalte »Prozentualer Unterschied«

  3. Nun können Sie noch die Reihenfolge der Spalten ändern (Abbildung 11.31).
  4. Weil die Spalte Prozentualer Unterschied hier nicht auftaucht, verschieben Sie die Basisspalte Bruttowert nach hinten (Abbildung 11.32).
  5. Dann blenden Sie Bruttowert aus (Abbildung 11.33).

    Abbildung 11.31: Erneute Änderung der Spaltenreihenfolge

    Abbildung 11.32: Bruttowert verschieben

    Abbildung 11.33: Bruttowert ausblenden

  6. Zu guter Letzt formatieren Sie die Spalte Prozentualer Unterschied als ZELLEN-DIAGRAMM (Abbildung 11.34).

    Abbildung 11.34: Zeilendiagramm definieren

  7. Dabei legen Sie als Diagrammtyp ABWEICHUNGSSTECKNADEL fest (Abbildung 11.35).

    Abbildung 11.35: Diagrammtyp Abweichungsstecknadel

    Dann werden bei Eingabe einer neuen Verkaufsmenge sofort der neue Bruttowert und die Abweichung gerechnet und grafisch angezeigt, klasse (Abbildung 11.36)!

  8. Speichern Sie die Story.

    Abbildung 11.36: Erneute Eingabe der Verkaufsmenge

    Vergleichen Sie den Ansatz dieses Abschnitts mit dem vorigen Abschnitt Inverse Formel. Die aktuelle Modellierung bedeutet etwas mehr Aufwand, da der Preis zunächst durch eine Datenaktion berechnet werden muss. Dafür ist dies für den Endanwender wesentlich benutzerfreundlicher.

Ist damit die Thematik vollumfänglich gelöst, sodass Sie am Ende des Kapitels angelangt sind? Nicht ganz, ein wichtiges Konzept soll im nächsten Abschnitt noch behandelt werden.

Preis auf Produktebene

In den vorigen Abschnitten haben Sie die Preise des Vorjahrs verwendet, die durch eine Datenaktion für das gesamte Datenmodell, also für jeden einzelnen Kunden ausgerechnet wurden.

Bei der Beispielfirma handelt es sich um künstlich erzeugte Daten, bei denen »zufällig« die Preise für ein bestimmtes Produkt für alle Kunden innerhalb des gleichen Jahres identisch sind. In der Praxis sind durchaus auch kundenspezifische Preise denkbar oder es kann zu unterjährigen Preisänderungen kommen.

Wie ist nun vorzugehen, wenn der Preis im Rahmen der Planung neu festgesetzt werden soll?

Ein Szenario könnte sein, dass der Planer sowohl die Verkaufsmenge als auch den Verkaufspreis pro Kunde plant. In der Praxis ist jedoch häufiger anzutreffen, dass der Preis für ein Produkt zentral vorab geplant wird und dann die Mengenplanung pro Kunde mit diesem zentral geplanten Preis erfolgt.

Das letztgenannte Szenario soll im letzten Abschnitt dieses Kapitels betrachtet werden.

Sie werden also den Verkaufspreis auf Produktebene definieren, sodass alle Kunden den gleichen (vorab zentral geplanten) Preis bekommen (Abbildung 11.37):

Abbildung 11.37: Verkaufspreis ohne Dimension Kunde

In den Daten der Beispielfirma gibt es eigentlich nicht einen einzigen Verkaufspreis für ein Produkt, sondern währungsspezifische Preise pro Land. Weil in diesem Abschnitt aber demonstriert werden soll, wie mit einem einheitlichen Preis für alle Kunden umgegangen werden kann, wird daher der gesamte Abschnitt (der Einfachheit halber) nur für das Land Deutschland durchgeführt.

Eine allgemeine Lösung für beide Währungen könnte beispielsweise durch ein zusätzliches Dummy-Element in der Dimension Kunde, das den zweiten Preis speichern kann, gelöst werden. Alternativ könnte auch eine eigene Dimension Währung im Modell erstellt werden.

  1. Damit das Modell aus dem vorherigen Abschnitt weiterhin funktioniert, führen Sie die Änderungen auf einem neuen Planungsmodell VerkaufsplanV05 durch, das Sie zunächst als Kopie aus VerkaufsplanV04 erstellen (nicht im Bild sichtbar).

    Wie das Kopieren prinzipiell funktioniert, können Sie in Abbildung 11.3 zu Beginn des Kapitels sehen.

    In diesem Abschnitt werden Sie mit der Version Plan01 arbeiten, die aber neu befüllt werden soll.

  2. Löschen Sie daher die bisherigen Daten aus dieser Version mit der Funktion FAKTEN LÖSCHEN (Abbildung 11.38).

    Eine wichtige Rolle in diesem Abschnitt spielt das Element # Nicht zugeordnet der Dimension Kunde.

    Abbildung 11.38: Löschen der Fakten von Plan01

  3. Kontrollieren Sie, dass diesem Element die Währung EUR zugeordnet ist (Abbildung 11.39). Gegebenenfalls können Sie dies hier nachholen.

    Abbildung 11.39: Währung von »Nicht zugeordnet«

  4. Nun definieren Sie eine neue berechnete Kennzahl VerkaufspreisLu, die den Preis von dem Element Kunde # Nicht zugeordnet liest (Abbildung 11.40).

    LOOKUP([Verkaufspreis],[d/Kunde]= "#" )

    Abbildung 11.40: Definition Lookup Verkaufspreis

    Später werden Sie in der Datenaktion den Preis auf dieses Element schreiben.

  5. Als Nächstes können Sie eine Anpassung in der Formel BruttowertSim vornehmen. Die Berechnung erfolgt nun mit der Kennzahl VerkaufspreisLu (Abbildung 11.41).

    [Verkaufsmenge]*[VerkaufspreisLu]

    Abbildung 11.41: Angepasste Formel für BruttowertSim

  6. Speichern Sie Ihr Modell!
  7. Als Nächstes definieren Sie eine Datenaktion mit dem technischen Namen SFD_M05_PreisBerechnen, der Beschreibung Gleicher Preis für alle Kunden und dem Standardmodell VerkaufsplanV05 (Abbildung 11.42).

    Abbildung 11.42: Anlegen Datenaktion »Gleicher Preis für alle Kunden«

    Diese Datenaktion besteht nun aus zwei Schritten.

  8. Zunächst fügen Sie einen Kopierschritt hinzu, den Sie ganz genau so ausgestalten wie in Kapitel 9 im Abschnitt Planungsfunktionen (Datenaktionen) (Abbildung 11.43). Sie wollen auch jetzt die Ist-Zahlen 2022 nach Plan01 2023 kopieren. Die Zielversion wird bei der Ausführung der Datenaktion eingegeben!

    Abbildung 11.43: Definition des Kopierschritts

    Wie oben im Abschnitt Neue Kennzahlen mit Datenaktion wollen Sie nun den Verkaufspreis mit der Formel Bruttowert / Verkaufsmenge errechnen. Das Ergebnis soll nun aber nicht auf die einzelnen Kunden, sondern auf Kunde # Nicht zugeordnet geschrieben werden. Sie verwenden dazu ein Skript mit den Befehlen AGGREGATE_DIMENSIONS und AGGREGATE_WRITETO.

  9. Fügen Sie einen ERWEITERTEN FORMELSCHRITT ein. Wechseln Sie in den Skript-Editor und geben Sie das Skript aus Listing 11.1 ein (Abbildung 11.44).

    MEMBERSET [d/Date] = "202301" TO "202312"
    MEMBERSET [d/Kunde].[p/Land] = "DE"

    AGGREGATE_DIMENSIONS = [d/Kunde]
    AGGREGATE_WRITETO [d/Kunde] = "#"

    DATA([d/Measures] = "Verkaufspreis")

    = RESULTLOOKUP([d/Measures] = "Bruttowert") /
    RESULTLOOKUP([d/Measures] = "Verkaufsmenge")

    Listing 11.1 Skript zur Berechnung der Verkaufspreise

    Abbildung 11.44: Erweiterter Formelschritt zur Berechnung der Verkaufspreise

Die prinzipielle Funktionsweise der erweiterten Formeln haben Sie bereits in Kapitel 10 kennengelernt. Einige spezielle Erläuterungen zu dem Skript aus Listing 11.1:

  • Es gibt nur einen Preis pro Land. Das Beispiel beschränken Sie nur auf DE. Weil auf den Hierarchieknoten DE kein Wert geschrieben werden kann, schreiben Sie die Verkaufspreise auf Kunde # Nicht zugeordnet.
  • Zunächst wird mit dem Befehl MEMBERSET der Filter für Jahr 2023 und Kunde DE gesetzt.
  • Durch die Befehle AGGREGATE_DIMENSIONS und AGGREGATE_WRITETO wird das Ergebnis der folgenden Formel über alle Kunden aggregiert und auf das Element Kunde # Nicht zugeordnet geschrieben.

Der Befehl RESULTLOOKUP durchläuft alle Kunden und Produkte und berechnet dann also für alle Produkte den Verkaufspreis als Bruttowert / Verkaufsmenge.

  1. Validieren Sie Ihr Skript (Abbildung 11.44). Die Namen der Elemente im Skript müssen genau zum Modell passen!
  2. Legen Sie eine neue Story StoryVerkaufsplan05 ganz ähnlich wie im Abschnitt Neue Kennzahlen mit Datenaktion an.
  3. Erzeugen Sie eine Tabelle für das Planungsmodell VerkaufsplanV05 mit:
    • Produkt, Kunde und Date in den Zeilen
    • Version Plan01 im Filter
    • Damit dies gesetzt werden kann, müssen Sie im Filterdialog Nicht gebuchte Elemente anzeigen.
    • Jahr 2023 im Filter
    • Damit dies gesetzt werden kann, müssen Sie im Filterdialog Nicht gebuchte Elemente anzeigen.
    • Kunde DE im Filter
    • den Kennzahlen Verkaufsmenge, Bruttowert, VerkaufspreisLu und BruttowertSim im Filter und in den Spalten
  4. Nun können Sie einen Auslöser für Ihre Datenaktion SFD_M05_PreisBerechnen einfügen. Stellen Sie (wie immer) für die Zielversion den Festwert Plan01 ein (nicht im Bild sichtbar).
  5. Wechseln Sie in den Anzeigemodus der Story und führen Sie die Datenaktion aus.

    Sie erkennen, dass die Verkaufspreise auch hier korrekt gerechnet wurden (Abbildung 11.45).

  6. Genau wie im Abschnitt Neue Kennzahlen mit Datenaktion erzeugen Sie noch eine Spalte Prozentuale Differenz als Zeilendiagramm vom Typ Abweichungsstecknadel.

Geben Sie einmal testweise einen neuen Preis für einen einzigen Kunden ein. Sie sehen, dass sich unmittelbar der Preis für alle Kunden ändert (Abbildung 11.46).

Woran liegt das? Obwohl der Preis direkt bei jedem einzelnen Kunden neben der Verkaufsmenge steht, gehört der Wert datentechnisch zum Kunden # Nicht zugeordnet. In Wirklichkeit ist dies also ein einziger Wert, der im vorliegenden Fall mehrfach in der Tabelle angezeigt wird.

Was ist dann der Vorteil? In der Praxis ist es durchaus üblich, dass ein Keyaccount-Manager für einen Kunden zuständig ist und dann die Mengen für sämtliche Produkte plant. Und dabei soll der Verkaufspreis angezeigt werden!

Abbildung 11.45: Nach Ausführen der Datenaktion

Abbildung 11.46: Geänderter Preis für alle Kunden

Dass der Preis in diesem Fall beim Kunden geändert werden kann, ist aber vermutlich organisatorisch nicht gewünscht. Das Anwendungsszenario könnte vielmehr sein, dass die Preisliste zu Beginn des Planungsprozesses zentral überarbeitet wird und anschließend die Mengen- / Umsatzplanung durch die Keyaccount-Manager durchgeführt wird. Nach Ende der zentralen Überarbeitung der Preisliste kann man den Preis gegen unbeabsichtigtes Überschreiben sperren. Datensperren haben Sie in Kapitel 9 konfiguriert.

  1. Abschließend können Sie in der Story eine zusätzliche Tabelle anlegen, die die Preisliste repräsentiert (Abbildung 11.47).
    • Produkt in den Zeilen
    • Version Plan01 im Filter
    • Jahr 2023 im Filter
    • Kunde # Nicht zugeordnet im Filter
    • Kennzahl Verkaufspreis im Filter und in den Spalten

    Abbildung 11.47: Tabelle als Preisliste

Nun können Sie einen neuen Preis in die Preisliste eingeben und sehen, dass dieser Preis sofort bei allen Kunden sichtbar ist und zu einer Umsatzsteigerung im Plan führt (Abbildung 11.48)!

Abbildung 11.48: Eingabe in die Preisliste

  1. Speichern Sie Ihre Story.

Notiz

  1. 1  Bulos, Dan; Forsman, Sarah: Getting Started with ADAPT https://symcorp.com/downloads/ADAPT_white_paper.pdf.