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

Kundenartikelbezeichnungen

In OLAP-Datenbanken beschreiben Attribute ein Dimensionselement näher. So kann z.B. einem Artikel eine Bezeichnung zugeordnet werden. In der Praxis gibt es die Anforderung, dass für Analysen und Berichte, die extern zur Verfügung gestellt werden (z.B. für Kunden), nicht die eigenen (Verkaufs-) Artikelnummern und Texte, sondern die individuellen (Einkaufs-) Nummern und Bezeichnungen des Kunden angezeigt werden sollen.

Um die Anforderung in einer OLAP-Datenbank zu erfüllen, müsste je Kunde ein Attribut in die Artikeldimension aufgenommen werden – bei einem großen und wachsenden Kundenstamm eine unlösbare Aufgabe. Dieser Artikel beschreibt eine einfache Lösung, wie die vorhandenen Bordmittel in DeltaMaster genutzt werden können, um für jeden Kunde dynamisch die richtigen Artikelattribute anzuzeigen.

Der Trick besteht darin, die Kundenartikelbezeichnungen nicht in einer OLAP-Datenbank sondern in einer relationalen Tabelle abzulegen und bei Bedarf über einen SQL-Durchgriff in der Auswertung anzuzeigen. In DeltaMaster ist dieses Vorgehen seit Version 5.1.5 (Dezember 2005) implementiert und unter dem Begriff „Zellkommentare“ bekannt .

In drei Schritten soll gezeigt werden, wie ein vorhandenes OLAP-Modell (hier mit SQL-Server 2005/2008) erweitert werden muss, um in einem DeltaMaster-Cockpit kundenspezifische Artikelbezeichnungen anzuzeigen.

Schritt 1: Erweiterung des OLAP-Modells um eine neue Measuregroup

Zellkommentare werden in DeltaMaster relational im Kontext einer OLAP-Measuregroup gespeichert. Die Kundenartikelbezeichnungen benötigen daher eine neue Measuregroup, in der nur zwei Dimensionen (Artikel und Kunde, nicht aber weitere Merkmale wie Periode, Vertreter etc.) vorhanden sind. Analysewerte werden eigentlich nicht benötigt (es sollen ja Texte und nicht Zahlen gespeichert werden), sie müssen jedoch als Dummy für jedes Textfeld vorgehalten werden.

Im Beispiel wird unsere Demo-Datenbank Chair mit Hilfe des DeltaMasterModelers um die Measuregroup „Kundenartikelbezeichnung“ erweitert (vgl. Abbildung 1). Darin sind nur die Dimensionen Artikel und Kunde jeweils in der tiefsten Ebene enthalten. „Kundenartikel_DummyMeasure“ ist der einzige Analysewert, da im Beispiel nur Artikeltexte und keine weiteren kundenspezifischen Merkmale angezeigt werden sollen.

Abb 1.: Anlegen einer Measuregroup in DeltaMasterModeler

Die Measuregroup enthält keine Daten und muss nicht mit einer Prozedur gefüllt werden. Die Modelländerung wird in die bestehende OLAP-Datenbank eingespielt und steht somit in DeltaMaster bereit.

Schritt 2: Anlegen und Befüllen der relationalen Kundenartikelbezeichnung-Tabelle

Nachdem in DeltaMaster ein neues Analysemodell auf die in Schritt 1 vorbereitete OLAP-Datenbank aufgesetzt wurde, muss als erstes das relationale Modell angebunden werden (Menü Modell, relationales Modell anbinden…). Danach wird im Dialog „Modellbrowser“ (Menü Modell, Modellbrowser, Ordner System, vgl. Abbildung 2) eine Tabelle für Textkommentare erzeugt.

Abb. 2: Anlegen einer Tabelle für Textkommentare

Diese bekommt automatisch denselben Namen wie die Faktentabelle mit dem Zusatz „_TEXT“ und kann z.B. im SQL-Server Management Studio betrachtet werden (vgl. Abbildung 3).

Abb. 3: Ansicht der automatisch generierten Textkommentartabelle

Dabei fällt auf, dass für jede Ebene der Kunden- und Artikeldimension eine eigene Spalte erstellt wurde. Grund dafür ist, dass Zellkommentare auf jeder Ebene eingegeben werden können. Dies wird jedoch für unsere Kundenartikelbezeichnung nicht benötigt.

Damit die Zellkommentare gelesen und geschrieben werden können, muss im Optionsdialog (Menü Extras, Optionen, Ordner Zellkommentare) die Option „Zellkommentare aus relationaler Tabelle lesen“ ausgewählt werden (weitere Einstellungen vgl. Abbildung 4).

Abb. 4.: Aktivieren der Zellkommentare

Im nächsten Schritt muss die relationale Tabelle gefüllt werden. Da die Artikelbezeichnungen der einzelnen Kunden normalerweise nicht von Hand gepflegt werden, muss die Tabelle über einen Import-Prozess, auf den hier nicht näher eingegangen werden soll, gefüllt werden. Im Beispiel wurde die Tabelle mit Artikeltexten von zwei Kunden (KundenID „Geo37“ und „Geo47“) befüllt (vgl. Abbildung 5).

Abb. 5: Ansicht der importierten Kundenartikeltexte

Die weiteren Spalten der Dimensionsebenen müssen nicht befüllt werden, da eine Anzeige nur auf einzelnen Kunden-Artikel-Kombinationen zweckmäßig ist – daher wurde auch der Aggregationsmodus „Nicht aggregiert“ für die Zellkommentare als Option gewählt (vgl. Abbildung 4 oben).

Schritt 3: Cockpit mit kundenspezifischen Artikelbezeichnungen

Es soll nun ein Produktbericht für den Kunden „Geo47“ erstellt werden, der die eigenen Artikelaliasnamen anzeigt. Dazu legen wir zuerst ein Standard-Pivot-Cockpit an, das so aussehen kann wie Abbildung 6 zeigt.

Abb. 6: Beispielcockpit ohne kundenspezifische Artikelbezeichnungen

Danach wird ein zweites Pivot-Cockpit angelegt, welches genau dieselbe Zeilendefinition haben muss. Am schnellsten geht das über den Befehl “Cockpit kopieren”, die Spaltenachse kann entfernt werden. Als Analysewert wird nicht eine echte Kennzahl verwendet, sondern unser Dummy-Analysewert „Kundenartikel_DummyMeasure“. Wichtig ist die Einstellung, welche die Zellkommentare als „Text in Zelle“ anzeigt (Kontextmenü des Cockpits, Tabelleneigenschaften, Ordner Kommentare, vgl. Abbildung 7).

Abb. 7: Pivotcockpit mit Kundenartikeltexte in der Spalte

Im letzten Schritt müssen nur noch die zwei Pivot-Cockpits vereinigt werden. Das erste Cockpit wird in ein Flexreport mit Zellreferenzen umgewandelt (Tabellenmenü „Ändern“, „In Flexreport mit Zellreferenzen umwandeln“). Danach wird für die erste Spalte die Zellreferenz geändert. Die Spalte muss auf das Cockpit mit den Kundenartikelbezeichnungen verweisen, hier im Beispiel Cockpit „Top 5 Produkte (Kopie)“. Es werden die Werte (genauer: die Zellkommentare) aus der zweiten Spalte benötigt (vgl. Abbildung 8).

Abb. 8: Cockpit mit Kundenartikeltexte

In den Zelleigenschaften muss im Ordner Zellkommentare ebenfalls noch die Option „Text in der Zelle anzeigen“ ausgewählt werden.

Anmerkungen

  • Wie der Beispielbericht in der letzten Zeile zeigt, gibt es noch einen Schönheitsfehler: Ist eine Kundenartikelbezeichnung nicht vorhanden, wird kein Text angezeigt. Hier schafft nur ein vollständiges Befüllen der Tabelle bei nicht vorhandenen Artikelbezeichnungen des Kunden, z.B. mit den eigenen Artikelbezeichnungen, Abhilfe.
  • Zellkommentare werden bisher nur in den Cockpits unterstützt und sind in den Analysen nicht verwendbar.