Ein neues Feature des SQL-Durchgriff 2.0 ist die Verknüpfung auf Berichte. Mit dieser Option können wir nicht nur entlang einer beliebigen Struktur navigieren, sondern diese Struktur auch pflegen. Als Beispiel wurde eine Produktstruktur ausgewählt, deren Daten in drei verschiedenen Tabellen gespeichert sind, eine davon mit einer Parent-Child-Struktur. Dieser Blogbeitrag erläutert, wie die Berichte und Verknüpfungen erstellt werden, um die Navigation zu ermöglichen.
Szenario
Anhand einer Produktstruktur wird die Pflege einer Parent-Child-Struktur dargestellt. Die Produktstruktur enthält folgende Ebenen:
- Produkthauptgruppe
- Tabelle T_S_Produkthauptgruppe
- Produktgruppe
- Tabelle T_S_Produktgruppe
- Beziehung mit Produkthauptgruppe
- Produkt/Produktkomponente
- Tabelle T_S_Produkt
- Beziehung mit Produktgruppe und mit sich selbst (Parent-Child), das heißt, ein Produkt kann andere Produkte als Produktkomponente referenzieren, welche in der gleichen Tabelle gespeichert sind.
Es werden zwei Varianten für das Speichern der Produktgruppe und des Produkt-Parents in der Tabelle T_S_Produkt vorgestellt. In der ersten Variante wird dafür nur eine Spalte verwendet, in der zweiten Variante zwei Spalten. Je nach Anwendungsfall kann eine der beiden Varianten ausgewählt werden.
Erste Variante
Aufbau
Nachfolgend wird die Variante „Produktgruppe und ProduktParent in einer Spalte“ erläutert. In diesem Fall, werden sowohl die Werte von Produktgruppe als auch von Produkt-Parent in der Spalte „ProduktParentID“ der Tabelle T_S_Produkt gespeichert.
Beziehungen
Um für die Produkte eine Dimension erstellen zu können, müssen zwischen den drei Tabellen entsprechende Beziehungen definiert werden.
Wie in der folgenden Abbildung zu sehen, wird das Feld „ProduktParentID“ von „Produkt“ mit dem Feld „ProduktgruppeID“ von „Produktgruppe“ verlinkt, da die Spalte „ProduktParentID“ sowohl eine Produktgruppe als auch ein Produkt enthalten kann.
Dimensionen
Die Dimension „Produkt“ wird mit drei Ebenen definiert.
Außerdem soll eine Dimension „Produkt Parent“ aus Produkt definiert werden. Diese Dimension wird für die Verknüpfung von Produkt zu Produkt verwendet.
Eingabe Berichte
Die SQL-Durchgriff-Berichte zur Eingabe von Produkthauptgruppe, Produktgruppe und Produkt werden wie gewohnt erstellt.
Verknüpfungen
- Bericht „Produkthauptgruppe“
Als Verknüpfungsziel wird der Bericht „Produktgruppe“ ausgewählt. Als Filterzuweisung lassen wir DeltaMaster automatisch erkennen, welche Spalte von Produkthauptgruppe mit welcher Dimensionsebene von „Produkt“ verlinkt werden soll.
- Bericht „Produktgruppe“
Als Verknüpfungsziel wird der Bericht „Produkt/Produktkomponente“ ausgewählt. Hier wird eine benutzerdefinierte Filterzuweisung definiert, in der die Spalte „ProduktgruppeID“ mit der Dimension „ProduktParent“ verlinkt ist.
- Bericht „Produkt/Produktkomponente“
Hier wird die Verknüpfung für die Parent-Child-Einträge definiert. Als Verknüpfungsziel wird derselbe Bericht „Produkt/Produktkomponente“ ausgewählt, sowie eine benutzerdefinierte Filterzuweisung vorgenommen, in der die Spalte „ProduktID“ mit der Dimension „ProduktParent“ verlinkt ist.
Eingabe
Die Eingabe startet im Bericht „Produkthauptgruppe“, von hier aus navigieren wir entlang der Produkt-Struktur. Bei jedem Sprung werden die Daten der nächsten Ebene gefiltert angezeigt. Wie in den Abbildungen zu sehen, wird der Filter nach dem Sprung von „Produktgruppe“ zu „Produkt/Produktkomponente“ in der Dimension „Produkt Parent“ übernommen.
Zweite Variante
Aufbau
Als zweite Variante haben wir uns vorgenommen, die Werte von Produktgruppe und ProduktParent in zwei verschiedenen Spalten zu speichern.
Nachfolgend werden die Unterschiede zur ersten Variante erläutert.
Beziehungen
Die Beziehung der Tabelle Produktgruppe wird mit der Spalte „ProduktgruppeID“ von Produkt festgelegt.
Verknüpfungen
- Bericht „Produktgruppe“
Als Verknüpfungsziel wird der Bericht „Produkt/Produktkomponente“ ausgewählt. Hier wird eine benutzerdefinierte Filterzuweisung erstellt, in der die Spalte „ProduktgruppeID“ mit der Dimensionsebene „Produktgruppe“ verlinkt ist. Zudem soll eine zweite Filterzuweisung auf die Dimension „ProduktParent“ definiert werden, in diesem Fall geben wir ein fiktives Element ein, welches den Top-Knoten der Parent-Child-Dimension repräsentiert (z.B. „0“).
- Bericht „Produktgruppe/Produktkomponente“
Wie bei der ersten Variante, wird als Verknüpfungsziel derselbe Bericht „Produkt/Produktkomponente“ ausgewählt und eine benutzerdefinierte Filterzuweisung, in der die Spalte „ProduktID“ mit der Dimension „ProduktParent“ verlinkt ist, vorgenommen. Außerdem definieren wir eine zweite Filterzuweisung, in der die Spalte „ProduktgruppeID“ mit der Dimension Produkt verlinkt ist, damit wird die Filterung nach Produktgruppe ermöglicht.
Eingabe
Nach dem Sprung von „Produktgruppe“ zu „Produkt/Produktkomponente“ können wir beobachten, dass die Filterung der Produktgruppe in der Dimension „Produkt“ erhalten bleibt. Außerdem wird in der Dimension „Produkt Parent“ der Top-Knoten gefiltert.
Beim Sprung von Produkt zu Produkt bleibt die Produktgruppe ebenfalls erhalten und die Navigation verläuft nun entlang der Parent-Child-Struktur.
Kommentare
Sie müssten eingeloggt sein um Kommentare zu posten..