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

Zeitabhängige Spaltennamen

Wie wir unserer geliebten Grafischen Tabelle dynamische Spaltennamen beibringen, zeigt dieser Blogbeitrag. Er gibt einen Überblick zu der konkreten Kundensituation, den eingesetzten Hilfsmitteln und dem Ergebnis in Form eines grafisch aufbereiteten DeltaMaster-Berichts.

Ausgangssituation

Wer von uns kennt das nicht, wir haben im Rahmen des Kundenprojekts in kürzester Zeit ein vollständig automatisiertes Berichtssystem entwickelt. Die Daten werden importiert, aufbereitet und mit Hilfe von DeltaMaster ETL technisch perfekt in eine OLAP-Datenbank zwecks Berichtsgestaltung überführt. Dann lassen wir DeltaMaster auf den Würfel los und zaubern direkt am Beamer mit dem Kunden in einigen wenigen Minuten grafisch hochansprechende Berichte, den Magischen Knöpfen sei Dank. Mit zunehmender Zeit im Berichtsumfeld wachsen natürlich auch die kleinen und großen Herausforderungen.

In diesem Beispiel bekamen wir die Anforderung, in der bestehenden Anwendung die Zusatzinformation des Abrechnungsmonats zusätzlich darzustellen. Der Spaltenname VS (=Vorschau) sollte in Klammern noch zusätzlich den letzten abgerechneten Monat enthalten, eine Zusatzinformation für die Kundenbetreuer.

Die Daten werden täglich aktualisiert, aber sind auf Ebene des Monats angebunden, der Abrechnungsstand kann also innerhalb des Monats wechseln. Für die Kundenmanager ist dies in Ihrem Tagesgeschäft ein wichtiger Indikator, um zum Beispiel über noch freie Budgets zu sprechen.

Und wie so oft musste es schnell gehen, natürlich am Release-Zyklus der IT vorbei!

Damit fielen in diesem Fall jegliche Datenbank-Lösungen weg, dazu hätten wir zu lange warten müssen, da die SQL-Server einem geregelten Deployment-Prozess eines externen Dienstleisters unterstehen. Also DeltaMaster starten und ran an die Lösung der Anforderung!

Herausforderung

Die klare Definition der zeitabhängigen Bezeichnung durch den Kunden sieht wie folgt aus:

Ausgewählter Monat = „Vorschau (ausgewählter Monat – (“12-ausgewählter Monat„))“

Also zum Beispiel Vorschau (10-2) entspricht dem ausgewählten Monat Oktober. Die Zahl 10 entspricht hier dem letzten bereits abgerechneten Monat und 2 steht für die Informationen der Restmonate. Das mag trivial klingen, war aber die konkrete Anforderung. Die Abrechnung richtet sich nicht nach dem kalendarischen Monat, in welchem Unternehmen ist das der Fall? Nur gut, dass wir bereits in der Vergangenheit eine Measure Group integriert hatten, die mit Hilfe einer separaten Hilfskennzahl den Zeitpunkt der Abrechnung markiert.

Trotz der „Frontend-Lösung“ müssen wir in dem Umfeld aber auch die Wartbarkeit der Anwendung im Blick behalten.

Die Lösung

Verschiedene Ansätze führten letztlich zu folgender, zugegebenermaßen etwas kreativer, Lösung:

Eine (!) neue Kennzahl in DeltaMaster anlegen. Fertig! (Ok, zusätzlich noch eine Anpassung im Spalteneditor der betroffenen Grafischen Tabellen).

Ausgangsbericht


Abbildung 1: Umsatzentwicklung bisher

In diesem Beispiel sollte hinter dem Spaltennamen „Vorschau“ zusätzlich noch „(9-3)“ stehen. Übersetzt in die Sprache des Kunden: „Vorschau (9 Monate abgerechnet, 3 noch offen)“. Dies natürlich dynamisch und bitte ohne Jahreswechselarbeiten.

Lösungskomponenten

Wir benötigen:

  • Kennzahl letzter Abrechnungsmonat (für NonEmpty()-Abfrage zur Ermittlung des Abrechnungsmonats)
  • Alternativ: wenn Abrechnung = kalendarischer Monatswechsel, Attribut auf dem Monat, welches den Monatsnamen oder die Monatsnummer ohne (!) Jahresangabe enthält
  • Neue Kennzahl, die mit Hilfe einer CASE-Anweisung basierend auf dem Monat den gewünschten Text zurückliefert.
  • Im Alias der Grafischen Tabelle die neue Kennzahl integrieren.

Voilá!

Etwas mehr Details

In dem Beispiel auf unserer bekannten Demonstrationsdatenbank der „Chair AG“ simulieren wir den Abrechnungsmonat zum Zeitpunkt des kalendarischen Monatswechsels. Wie gerade beschrieben, entfällt somit die Notwendigkeit einer Hilfs-Measure-Group.

Abbildung 2: Monatsname jahresunabhängig

Durch das Attribut „Monatsname“ sind wir nun in der Lage, jahresübergreifend immer vom Monat ausgehend einen Text zur Anzeige als Spaltenname (Alias der Grafischen Tabelle) dynamisch zu generieren.

Dazu hinterlegt man die vom Kunden spezifizierte Namenskonvention in einer benutzerdefinierten Kennzahl.

Abbildung 3: CASE-Anweisung mit Rückgabewert Text

Fehlt uns also nur noch die Verbindung zu den gegebenen Berichten. Wie bereits erwähnt, setzen wir die soeben erstellte Kennzahl als Alias im Spalteneditor der Grafischen Tabelle. Damit DeltaMaster diese zur Laufzeit auswertet, muss das MDX einfach in geschweifte Klammern gesetzt werden.

Abbildung 4: Kennzahl als Alias

Und hier das Ergebnis dieser kleinen „Trickserei“. Mit jedem Wechsel des Monats (nur dieser darf gewechselt werden), ändert sich vollautomatisch auch die Bezeichnung der Spalte „Vorschau“.

Abbildung 5: dynamischer Spaltenname

Damit muss nun zu keinem Zeitpunkt ein Kundenberater in der IT oder dem Fachbereich nachfragen, welcher Monat denn bisher abgerechnet wurde. Kleiner Kniff, viele eingesparte Wege im Büro.

Fazit

In dem eingangs skizzierten Kundenprojekt ist das beschriebene Vorgehen ähnlich realisiert. Zusätzlich wird dort jeder Bericht in der Periode anhand der unter Punkt 3.2. als ersten Punkt beschriebenen Hilfskennzahl als Default-Wert voreingestellt. Also neue Abrechnung ist erfolgt = Bericht schaltet auf entsprechenden Monat = Spaltenname zeigt den korrekten Stand.

Damit schließen wir den heutigen Blogbeitrag und hoffen, dass man in der einen oder anderen Situation den Kniff nutzen und so einmal mehr zeigen kann: „…mit DeltaMaster geht auch das!“