CiAgICA8IS0tIExpbmtlZEluIC0tPgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgogICAgICAgIF9saW5rZWRpbl9wYXJ0bmVyX2lkID0gIjEyMzUwNzMiOwogICAgICAgIHdpbmRvdy5fbGlua2VkaW5fZGF0YV9wYXJ0bmVyX2lkcyA9IHdpbmRvdy5fbGlua2VkaW5fZGF0YV9wYXJ0bmVyX2lkcyB8fCBbXTsKICAgICAgICB3aW5kb3cuX2xpbmtlZGluX2RhdGFfcGFydG5lcl9pZHMucHVzaChfbGlua2VkaW5fcGFydG5lcl9pZCk7CiAgICA8L3NjcmlwdD48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiAgICAgICAgKGZ1bmN0aW9uKCl7dmFyIHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IilbMF07CiAgICAgICAgICAgIHZhciBiID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7CiAgICAgICAgICAgIGIudHlwZSA9ICJ0ZXh0L2phdmFzY3JpcHQiO2IuYXN5bmMgPSB0cnVlOwogICAgICAgICAgICBiLnNyYyA9ICJodHRwczovL3NuYXAubGljZG4uY29tL2xpLmxtcy1hbmFseXRpY3MvaW5zaWdodC5taW4uanMiOwogICAgICAgICAgICBzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGIsIHMpO30pKCk7CiAgICA8L3NjcmlwdD4KICAgIDxub3NjcmlwdD4KICAgICAgICA8aW1nIGhlaWdodD0iMSIgd2lkdGg9IjEiIHN0eWxlPSJkaXNwbGF5Om5vbmU7IiBhbHQ9IiIgc3JjPSJodHRwczovL3B4LmFkcy5saW5rZWRpbi5jb20vY29sbGVjdC8/cGlkPTEyMzUwNzMmZm10PWdpZiIgLz4KICAgIDwvbm9zY3JpcHQ+CiAgICA8IS0tIEVuZCBMaW5rZWRJbiAtLT4KICAgIA==
Generic filters
Exact matches only
Search in title
Search in excerpt
Search in content

Kopierprozesse in DeltaMaster für relationale Datenbanken

Im Zuge der Unternehmensplanung werden die meisten Daten händisch erfasst. Dabei werden die wichtigsten Kunden- und Produktkombinationen meist einzeln besprochen und geplant, weniger wichtige Kunden- und Produktkombinationen werden „nur“ mit einer prozentualen Veränderung bedacht. Basis für die Planung sind dabei meist die Ist- und Forecastwerte des aktuellen Jahres. Um sich bei der Planung an diesen Werten orientieren zu können, enthalten die Planungsberichte immer auch eine Spalte mit den genannten Werten. Damit nicht jeder Wert händisch in die Planspalte übernommen werden muss, ist es sinnvoll, die Planspalte bereits mit den Ist- bzw. Forecastwerten vorzufüllen. Anschließend können die relevanten Zellen angepasst werden. Da es mehrere Planrunden geben kann, werden Planstände auch oft als unveränderliche Vergleichsgröße gesichert. Beide Prozesse, das Vorbefüllen der Planwerte und das Sichern verschiedener Planstände kann vom Datenbankadministrator direkt auf der Datenbank vorgenommen werden. Es ist aber auch möglich, diese Funktion dem Anwender selbst zur Verfügung zu stellen. Dafür kann in DeltaMaster die Datenkopierfunktion genutzt werden. Diese Funktion ermöglicht es, Kopierprozesse frei zu definieren und diese dem Anwender in einer Planungsanwendung zur Verfügung zu stellen. Das und vor allem wie diese Funktion in Verbindung mit relationalen Datenbanken arbeitet, soll der folgende Blogbeitrag beschreiben.

Voraussetzungen

Voraussetzung für die Nutzung der Datenkopierfunktion ist eine gültige Planungslizenz. Außerdem muss eine funktionierende Dateneingabeanwendung für relationale Datenbanken existieren, denn  DeltaMaster nutzt beim Kopieren der Daten die gleichen Prozeduraufrufe wie bei der händischen Dateneingabe in Pivottabellen (P_Update_PIV-Prozeduren). Wie eine solche Dateneingabeanwendung erstellt und konfiguriert werden muss, wird im Blogbeitrag Aufbau eines Datenerfassungssystems für relationale Datenbanken beschrieben. Der aktuelle Blogbeitrag basiert auf der gleichen DeltaMaster-Anwendung.

Vorgehen

Prozessdefinition

Um Kopierprozesse ausführen zu können, müssen diese zunächst erstellt werden. Durch Auswählen des Menüeintrags Modell – Prozessdefinition… in DeltaMaster innerhalb der geöffneten Analysesitzung öffnet sich das Fenster Prozessdefinition. Hinweis: Dieser Eintrag ist nur im Modus Miner verfügbar.

2014-01-31_Crew_Dialog Prozessdefinition

Abb. 1: Dialog Prozessdefinition

Das angezeigte Fenster besteht aus drei Bereichen, welche miteinander in Verbindung stehen. Im oberen Bereich Prozesse werden alle bereits definierten Kopierprozesse angezeigt. Wird ein bereits definierter Prozess per Mausklick ausgewählt, werden in den darunterliegenden Bereichen Ausführungskontext und Aktionen die Einstellungen des ausgewählten Prozesses angezeigt. Über den Menüpunkt Löschen kann der aktuell ausgewählte Prozess gelöscht werden.

Prozesse

Über einen Klick auf den Menüeintrag Neuer Prozess im Fenster rechts oben wird ein neuer Eintrag im Bereich Prozesse hinzugefügt. Jeder Eintrag sollte mit einem sprechenden Namen versehen werden, da dieser Name später dem Anwender zur Auswahl des jeweiligen Kopierprozesses angezeigt wird. Im Feld Beschreibung kann eine detaillierte Beschreibung eingegeben werden. Da für den im oben gezeigten Eintrag Umsatz kopieren noch keinerlei Definitionen vorgenommen wurden, sind die Bereiche Ausführungskontext und Aktionen noch leer.

Ausführungskontext

Im Bereich Ausführungskontext kann definiert werden, innerhalb welchen Datenraumes (bezogen auf die Dimensionen des Modells) der Kopierprozess ausgeführt werden soll. Existiert hier kein Eintrag, wird der Kopierprozess im Kontext der aktuellen Sicht des Berichts durchgeführt. Durch Klicken auf den Menüeintrag Dimension hinzufügen wird ein neuer Eintrag eingefügt. Danach muss in der Spalte Dimension/Hierarchie die Dimension ausgewählt werden, für die eine Definition vorgenommen werden soll. In der Spalte Sichtbar kann der vorgenommene Eintrag für den Anwender ausgeblendet werden. Das ist dann sinnvoll, wenn sichergestellt werden soll, dass Daten nur in einem fest definierten Bereich verarbeitet werden, unabhängig von den Einstellungen im Fenster Sicht, z. B. nur in der Wertart Plan. Anschließend muss der Quellbereich definiert werden, d. h. woher die zu kopierenden Daten stammen. Über die Spalte Auswahlmethode (innerhalb von Spalte Quelle) kann die Art des zur Verfügung gestellten Auswahldialogs gewählt werden, entweder über den bekannten Dimensionsbrowser oder einer simplen Liste. Wird Keine Auswahl aktiviert, ist das aktuell ausgewählte Element im Fenster Sicht oder das in der Spalte Standardauswahl definierte Element voreingestellt.

2014-01-31_Crew_Menü Auswahlmethode der Spalte QuelleAbb. 2: Menü Auswahlmethode der Spalte Quelle

In Abhängigkeit des gewählten Eintrags in für die Spalte Auswahlmethode wird in der Spalte Auswahlbereich ein anderer Inhalt zur Auswahl angeboten.

    • Auswahlmethode Dimensionsbrowser: Bei der Auswahl des Eintrags Gesamte Dimension wird dem Anwender die komplette Dimension im Dimensionsbrowser angezeigt, inkl. aller Hierarchieebenen. Bei der Auswahl des Eintrags aus Abfrage kann die Anzeige der Elemente im Dimensionsbrowser über eine SQL-Abfrage eingeschränkt werden. Nicht erlaubte Elemente werden dann im Dimensionsbrowser ggf. grau dargestellt und sind somit nicht auswählbar. In der Listensicht werden nur erlaubte Elemente angezeigt.
      2014-01-31_Crew_Menü Auswahlbereich Dimensionsbrowser

      Abb. 3 Menü Auswahlbereich Dimensionsbrowser

    • Auswahlmethode Liste: Bei der Auswahl des Eintrags wie Sicht werden dem Anwender die aktuell im Fenster Sicht ausgewählten Elemente zur Auswahl angeboten.
      2014-01-31_Crew_Menü Auswahlbereich Liste

      Abb. 4: Menü Auswahlbereich Liste

In der Spalte Abfrage für Auswahl kann über ein gültiges SQL-Statement der Inhalt des Dimensionsbrowsers oder der Liste definiert werden. Die Eingabe des Statements kann direkt in der Zelle

2014-01-31_Crew_Abfrage für Auswahl

Abb. 5: Abfrage für Auswahl

oder durch Klicken auf den Knopf mit den drei Punkten in einem SQL-Editor eingegeben werden.

2014-01-31_Crew_SQL-Editor zur Eingabe von SQL-Code

Abb. 6: SQL-Editor zur Eingabe von SQL-Code

In der Spalte Standardauswahl kann das voreingestellte Element im Kopierdialog bestimmt werden. Bei der Auswahl des Eintrags wie Sicht wird das aktuell ausgewählte Element im Fenster Sicht voreingestellt. Bei der Auswahl des Eintrags wie Abfrage kann in der darauffolgenden Spalte Abfrage für Standardauswahl wiederum ein gültiges SQL-Statement hinterlegt werden. Bei der Auswahl des Eintrags durch Element(e) kann dort stattdessen ein einzelnes Element ausgewählt werden.

2014-01-31_Crew_Menü Standardauswahl

Abb. 7: Menü Standardauswahl

Im Bereich Ziel wird definiert, wohin die Daten kopiert werden sollen. Die Einstellmöglichkeiten entsprechen denen des Bereichs Quelle.

Aktionen

Aktion Kopieren/Verschieben

2014-01-31_Crew_Übersicht Aktion Kopieren Verschieben

Abb. 8: Übersicht Aktion Kopieren/Verschieben

Im Bereich Aktionen wird definiert, welche Kennzahlen verarbeitet werden sollen. Über einen Klick auf den Menüeintrag Neue Aktion… wird zunächst eine Kennzahl ausgewählt, welche in die Spalte Quelle und Ziel übernommen wird. In der Spalte Aktion wird bestimmt, ob ein Wert kopiert, verschoben oder mit einem festen Wert gesetzt werden soll.

2014-01-31_Crew_Menü Aktion

Abb. 9: Menü Aktion

In den Spalten Quelle und Ziel kann die zu verarbeitende Kennzahl geändert werden. Die Spalte Sichtbar steuert die Sichtbarkeit der Aktion im Kopierdialog. In der Spalte Ziel berechnen kann definiert werden, ob der Wert unverändert kopiert (Eintrag Keine Änderung) oder gemäß eines Operators vor dem Kopieren verändert werden soll (Eintrag Gemäß Operator). Bei der Auswahl des Eintrags MDX kann über einen SQL-Editor ein gültiges SQL-Statement zur Verarbeitung des Wertes genutzt werden.

2014-01-31_Crew_Menü Ziel berechnen

Abb. 10: Menü Ziel berechnen

In der Spalte Ziel löschen kann angegeben werden, ob der Zielwert gelöscht werden soll. Das ist vor allem dann relevant, wenn der Quellwert keinen Wert enthält, im Zielbereich aber bereits ein Wert existiert. Ein Aktivieren dieses Häkchens würde in diesem Fall ein Überschreiben des Zielwertes mit NULL nach sich ziehen. Die Spalte Ergebnis addieren steuert, ob der zu kopierende Quellwert auf den Zielwert addiert oder der Zielwert überschrieben werden soll. Die Wertweitergabe funktioniert in Verbindung mit relationalen Modellen leider nicht. In der Spalte Quelle löschen kann ein Löschen der Quellwerte nach dem Kopieren aktiviert werden.

Wurde in der Spalte Ziel berechnen der Eintrag Gemäß Operator gewählt, können anschließend Operator (Spalte Operator) und Operand (Spalte Operand) gewählt werden.

2014-01-31_Crew_Menü Operator

Abb. 11: Menü Operator

Aktion Setzen (aggregierten Wert)

Sollen Wertebereiche mit einem vorgegebenen Wert befüllt werden, kann in der Spalte Aktion der Eintrag Setzen (aggregierten Wert) gewählt werden.

2014-01-31_Crew_Aktion Setzen (aggregierten Wert)

Abb. 12: Aktion Setzen (aggregierten Wert)

Eine Quellkennzahl kann in diesem Fall nicht definiert werden, stattdessen wird in der Spalte Ziel berechnen definiert, ob ein in der Spalte Operand angegebener oder ein per SQL abgefragter Wert kopiert werden soll. Es wird hier von einem aggregierten Wert gesprochen, weil dieser Wert nicht eins zu eins in jede Zelle des Zielbereichs kopiert wird, sondern jeweils nur ein Teil, vergleichbar mit der Splashing-Funktion in OLAP-Datenbanken. In Summe ergeben die Werte aller kopierten Zellen den Gesamtwert. Ausschlaggebend ist hierbei die Anzahl der Zellen im Zielbereich. Soll ein Wert von 100 auf zehn Produkte verteilt werden, wird auf jedes Produkt ein Wert von 10 geschrieben.

Aktion Setzen (Zellen)

Die Funktionsweise des Eintrags Setzen (Zellen) in der Spalte Aktion gleicht der des Eintrags Setzen (aggregierten Wert). Hierbei wird der angegebene Wert aber auf jede Zelle des Zielbereichs kopiert.

2014-01-31_Crew_Aktion Setzen (Zellen)

Abb. 13: Aktion Setzen (Zellen)

Wurden alle Einstellungen für den Kopierprozess vorgenommen, kann die Definition mit einem Klick auf den Menüeintrag Ausführen… getestet bzw. ausgeführt werden. Diese Funktion sollte allerdings nur von Administratoren genutzt werden.  Über den Button Ok werden alle Einstellungen gespeichert und der Dialog geschlossen.

2014-01-31_Crew_Fertige Prozessdefinition

Abb. 14: Fertige Prozessdefinition

Prozessausführung

Kopierprozess zuweisen

Damit die definierten Kopierprozesse von den Anwendern ausgeführt werden können, müssen diese   zuvor für die Anwender sichtbar gemacht werden. Voraussetzung dafür ist, dass in den Berichtseigenschaften eines Berichts auf der Registerkarte Dateneingabe das Häkchen Dateneingabe zulassen aktiviert ist und im Bereich Prozesse ein oder mehrere solche Prozesse dem Bericht zugewiesen worden.

2014-01-31_Crew_Dialog Berichtseigenschaften

Abb. 15: Dialog Berichtseigenschaften

Anschließend muss der Bericht im Modus Viewer geöffnet werden. Durch Aktivieren der Funktion Eingabe starten wird der Eingabemodus aktiviert und über das Menü Prozess ausführen kann ein Kopierprozess aufgerufen werden. Hinweis: Dieser Menüeintrag ist nur im Modus Viewer sichtbar und kann nur nach dem Starten der Eingabe ausgewählt werden.

2014-01-31_Crew_Menü Prozess starten

Abb. 16: Menü Prozess starten

Kopierprozess ausführen

Nach dem Aufruf des entsprechenden Eintrags erscheint das Fenster Prozess ausführen. Hier hat der Anwender die Möglichkeit im Bereich Ausführungskontext für die definierten Dimensionen ein Quell- und ein Ziel-Element auszuwählen. Die Auswahl wird über eine Liste zur Verfügung gestellt, wie im Prozessdefinitionsdialog definiert. Im gezeigten Beispiel wurde als Quelle die Vertretergruppe 1 und als Ziel die Vertretergruppe 2 gewählt.

2014-01-31_Crew_Dialog Prozess ausführen

Abb. 17: Dialog Prozess ausführen

Im Bereich Aktionen wird angezeigt, welche Aktion ausgeführt wird, Im Beispiel wird die Kennzahl Umsatz mit dem Wert 6.000 kopiert. Dieser Wert ergibt sich aus der Summe der Umsätze der einzelnen Produkte aus der Quellsicht (siehe Abb. 16). Quell- und Zielwert unterscheiden sich nicht, wie in der Prozessdefinition angegeben (siehe Abb. 14). Im unteren Bereich des Fensters wird angezeigt, dass 22 Zellen im Zielbereich betroffen sind, das entspricht genau der Anzahl der angezeigten Produkte in der Zeilenachse des Berichts Dateneingabe nach Produkten. Durch Klick auf den Button Ausführen wird der Kopierprozess gestartet. Ein Fortschrittsbalken zeigt den aktuellen Status während der Ausführung an. Nach Beendigung des Kopierprozesses wird im unteren Bereich des Fensters über das Ergebnis der Prozessausführung informiert. Durch Klicken auf den Button Schließen wird das Fenster geschlossen.

2014-01-31_Crew_Dialog Prozess ausführen nach Beendigung des Kopierprozesses

Abb. 18: Dialog Prozess ausführen nach Beendigung des Kopierprozesses

Wird vor dem Aufruf des Kopierprozess im Bericht bereits die Zielsicht eingestellt (im Beispiel Vertretergruppe 2), können nach dem Beenden des Prozesses gleich das Ergebnis kontrolliert und die Werte übernommen oder verworfen werden.

2014-01-31_Crew_Abb. 19 Kopierergebnis

Abb. 19: Kopierergebnis

Unter der Haube

Wie bereits in Abschnitt 2 erwähnt, wird beim Ausführen der Kopierprozesse für jeden zu verarbeitenden Wert eine Prozedur namens P_Update_PIV_* aufgerufen, welche in der zugrunde liegenden Datenbank vorhanden sein muss. Der * steht dabei für den Namen der Tabelle oder der Sicht, auf der der angezeigte Bericht basiert. Im Beispiel heißt diese Sicht V_D_Fact und der Prozeduraufruf entsprechend P_Update_PIV_V_D_Fact. Um die Daten in unserem Beispiel zu kopieren, wurden drei Aufrufe benötigt, nämlich genau für die drei Werte in der Spalte Umsatz für Vertretergruppe 1. Diese einzelnen Aufrufe können im SQL.log angezeigt werden.

---- 21.01.2014 17:01:26 ----
P_Update_PIV_V_D_Fact
@Product_ID=P1
@Sales_ID=V2
@Color_ID=C1
@Month_ID=200912
@Customer_ID=Geo35
@ValueType_ID=I
@TransactionID=3739deb1-de43-42a4-a81b-dc510a449509
@StepNumber=0
@MeasureName=Revenues
@NewValue=1000
@ErrorDesc=
@ReturnValue=0
Execution Time: 0,013s

---- 21.01.2014 17:01:26 ----
P_Update_PIV_V_D_Fact
@Product_ID=P10
@Sales_ID=V2
@Color_ID=C1
@Month_ID=200912
@Customer_ID=Geo35
@ValueType_ID=I
@TransactionID=3739deb1-de43-42a4-a81b-dc510a449509
@StepNumber=0
@MeasureName=Revenues
@NewValue=2000
@ErrorDesc=
@ReturnValue=0
Execution Time: 0,003s

---- 21.01.2014 17:01:26 ----
P_Update_PIV_V_D_Fact
@Product_ID=P11
@Sales_ID=V2
@Color_ID=C1
@Month_ID=200912
@Customer_ID=Geo35
@ValueType_ID=I
@TransactionID=3739deb1-de43-42a4-a81b-dc510a449509
@StepNumber=0
@MeasureName=Revenues
@NewValue=3000
@ErrorDesc=
@ReturnValue=0
Execution Time: 0,003s