In diesem Dokument werden die Basisdimensionen Geschäftsjahr, Klassifikation, Organisation und Tag erläutert. Erfahren Sie, wie die Basisdimensionen in den OLAP-Statistiken verwendet werden und welche Felder sie enthalten. Die Basisdimension „Firma“ (Company) aus Semiramis 2 findet in Semiramis 4 keine Verwendung mehr. Sie wird in dieser Dokumentation nicht behandelt.
Die für die Basisdimensionen relevanten Anwendungen und deren Felder, Aktionen und Vorgehensweisen sind in separaten Dokumentationen ausführlich beschrieben.
1 Begriffsbestimmung
Data Warehouse
Das Data Warehouse führt betriebswirtschaftlich relevante Daten aus verschiedenen Datenquellen zusammen. Die Daten werden zu aussagekräftigen Informationen verdichtet und in einer separaten OLAP-Datenbank in Fakten- und Dimensionstabellen gespeichert. Diese Informationen stehen anschließend für Auswertungen zur Verfügung. In Semiramis werden Stamm- und Bewegungsdaten aus z. B. den Frameworks Vertrieb und Beschaffung in die als Data Warehouse genutzte OLAP-Datenbank übertragen.
Dimensionstabellen
Die Dimensionstabellen in einem Data Warehouse enthalten qualitative Daten, die die quantitativen Daten der Faktentabelle klassifizieren. Beispiele für Dimensionen sind Tag, Vertriebs-Artikel, Kunde etc. Die Daten in Dimensionstabellen ändern sich vergleichsweise selten und enthalten im Vergleich zur Faktentabelle relativ wenige Datensätze.
Faktentabellen
Die Faktentabelle stellt das eigentliche Kernstück eines Data Warehouse dar. Sie enthält die quantitativen Daten des Data Warehouse, die aus den operativen Vorgängen entstanden sind, wie z. B. Umsatz, Stückzahlen etc. Diese Kennzahlen dienen als Datenbasis für die Auswertungen. Zur Klassifikation der Daten sind neben den Kennzahlen noch Verweise auf die Dimensionen in den Dimensionstabellen enthalten. Die Faktentabelle enthält im Vergleich zu den Dimensionstabellen größere Datenmengen und wird mit jeder Aktualisierung um weitere Datensätze ergänzt.
Klassifikationen
Eine Klassifikation stellt die über- und untergeordnete Beziehung zwischen Objekten dar. Sie bestimmt die Rangfolge im System. Eine Klassifikation kann aus einer oder mehreren Ebenen bestehen. Klassifikationen bestehen aus voneinander abhängigen Knoten. Der jeweils übergeordnete Knoten heißt „Ordner“. Der unterhalb des letzten Ordners liegende Knoten heißt jeweils „Blatt“.
Online Analytical Processing (OLAP)
Das Online Analytical Processing (OLAP) ist eine Methode zur zeitnahen Analyse von Geschäftsvorfällen auf einer aggregierten, verdichteten Ebene. Nicht der einzelne Geschäftsvorfall ist der primäre Betrachtungsgegenstand, sondern eine Menge von ähnlichen oder zusammenhängenden Geschäftsvorfällen. Dabei können verschiedene Aggregationsstufen je nach Bedarf genutzt werden. Diese Softwaretechnologie ermöglicht eine Analyse von großen Datenbeständen durch einen schnellen, konsistenten, interaktiven Zugriff auf unterschiedliche Sichten der Daten. Die Daten werden dabei in mehrdimensionalen Sichten aufbereitet, welche die Strukturen des analysierten Unternehmens aus Benutzersicht widerspiegeln. In Semiramis werden die für OLAP relevanten Daten aus der OLTP-Datenbank herausgezogen, welche die aktuellen Stamm- und Bewegungsdaten enthält. Anschließend werden diese OLAP-Daten nach dem Star-Schema in einer separaten OLAP-Datenbank in Fakten- und Dimensionstabellen gespeichert. Diese OLAP-Datenbank wird als Data Warehouse verwendet.
Online-Analytical-Processing-Datenbank (OLAP-Datenbank)
Eine Online-Analytical-Processing (OLAP)-Datenbank stellt die notwendigen Datenstrukturen für das OLAP bereit. In ihr werden im Unterschied zu OLTP-Datenbanken unter Verwendung denormalisierter Schemata in einer Transaktion sehr große Datenmengen bearbeitet.
Star-Schema
Das Star-Schema ist ein Datenmodell für relationale Datenbanken. Gewöhnlich wird ein Data Warehouse nach dem Star-Schema aufgebaut. Ein einfaches Star-Schema besteht aus einer zentralen Faktentabelle und mehreren Dimensionstabellen, die über Schlüssel mit der Faktentabelle verknüpft sind. Im Modell wird eine Faktentabelle in der Mitte abgebildet und die Dimensionstabellen sind um sie herum verteilt. Diese grafische Darstellung entspricht der Form eines Sterns.
Statistiken
Die Statistik befasst sich mit der zahlenmäßigen Erfassung, Untersuchung und Darstellung von Massenerscheinungen. Fakten aus der Vergangenheit werden mit bestimmten Methoden gesammelt, zusammengestellt und ausgewertet. Die Analyse dieser Daten hat den Zweck, Abweichungen und Fehler erkennen und daraus Verbesserungsmöglichkeiten entwickeln zu können.
2 Geschäftsjahr
Die Geschäftsjahre und Geschäftsperioden werden im Business Entity com.cisag.app.olap.obj.FiscalDay gespeichert. Die Dimensionstabelle verwendet die gleiche Identifikation wie die Dimensionstabelle „Tag“. Um eine OLAP-Statistik pro Geschäftsperiode auszuwerten, verknüpfen Sie die beiden Dimensionstabellen miteinander, wie die folgende OQL-Klausel zeigt:
FROM com.cisag.app.olap.obj.Day day
JOIN com.cisag.app.olap.obj.FiscalDay fiscal
ON day:id = fiscal:dayId
In einer Multi-Site-Umgebung werden die Geschäftsjahre pro Firma gespeichert. Das Attribut organizationalUnitId der Dimensionstabelle enthält dabei die Identifikation der jeweiligen Firma. Dieses Attribut muss mit der Identifikation der Organisation verknüpft werden. Das folgende Beispiel zeigt eine OQL-Klausel, die in einer Multi-Site-Umgebung die Auswertung der Vertriebsstatistik pro Geschäftsperiode für die Firma „00000“ erlaubt:
FROM com.cisag.app.olap.obj.Sales facts
JOIN com.cisag.app.olap.obj.Day day ON
facts:dayId = day:id
JOIN com.cisag.app.olap.obj.OrganizationalUnit salesOrg ON
facts:organizationalUnitId = salesOrg:id
JOIN com.cisag.app.olap.obj.OrganizationalUnit company ON
salesOrg:financialOrganizationalUnit = company:guid
JOIN com.cisag.app.olap.obj.FiscalDay fiscal ON
day:id = fiscal:dayId AND
company:id = fiscal:organizationalUnitId
WHERE company:code = ‘00000’
Hinweis:
Um unerwünschte Kreuzprodukte zu vermeiden, können Sie Klammern verwenden, um die Reihenfolge festzulegen, in der die Verknüpfungen ausgewertet werden.
Im Folgenden werden die für die OLAP-Statistik relevanten Attribute der Dimensionstabelle erläutert:
Attribut | Erläuterung |
dayId | Das Attribut enthält die Identifikation der Dimension „Tag“. Ein Kalendertag wird somit über die gleiche numerische Identifikation in den beiden Dimensionstabellen „Tag“ und „Geschäftsjahr“ referenziert. |
organizationalUnitId | Das Attribut enthält die Identifikation der Firma, die das Geschäftsjahr verwendet. Dieses Attribut wird in einer Multi-Site-Umgebung verwendet, um die Dimensionstabelle „Geschäftsjahr“ mit der Firma zu verknüpfen. |
fiscalYearNumber | Das Attribut enthält eine laufende Nummer zur Identifikation des Geschäftsjahres. |
fiscalQuarterNumber | Das Attribut enthält eine laufende Nummer zur Identifikation des Quartals über alle Geschäftsjahre hinweg. |
fiscalPeriodNumber | Das Attribut enthält eine laufende Nummer zur Identifikation der Geschäftsperiode über alle Geschäftsjahre hinweg. |
fiscalWeekNumber | Das Attribut enthält eine laufende Nummer zur Identifikation der Kalenderwoche über alle Geschäftsjahre hinweg. |
fiscalYear | Das Attribut enthält das Kalenderjahr als numerischen Wert. |
quarterOfFiscalYear | Das Attribut enthält das Quartal innerhalb eines Geschäftsjahres als numerischen Wert. Das erste Quartal des Geschäftsjahres hat den Wert 1 (eins); das zweite Quartal hat den Wert 2 (zwei) u. s. w.
Besitzt das Geschäftsjahr mehr als zwölf Kalendermonate, dann wird es Geschäftsperioden mit dem gleichen Wert für das Quartal geben. In diesem Falle können Sie das Attribut fiscalQuarterNumber für Ihre Auswertung verwenden. |
periodOfFiscalYear | Das Attribut enthält die Geschäftsperiode innerhalb eines Geschäftsjahres als numerischen Wert. Die erste Geschäftsperiode eines Geschäftsjahres hat den Wert 1 (eins); die zweite Geschäftsperiode hat den Wert 2 (zwei) u. s. w. |
monthOfFiscalYear | Das Attribut enthält den Kalendermonat innerhalb eines Geschäftsjahres als numerischen Wert. Der Januar hat den Wert 1 (eins); Februar den Wert 2 (zwei) u. s. w.
Besitzt das Geschäftsjahr mehr als zwölf Kalendermonate, dann wird es Geschäftsperioden mit dem gleichen Wert für den Kalendermonat geben. In diesem Fall können Sie das Attribut fiscalPeriodNumber für Ihre Auswertung verwenden. |
weekOfFiscalYear | Das Attribut enthält die Kalenderwoche innerhalb eines Geschäftsjahres als numerischen Wert. Die erste Kalenderwoche des Geschäftsjahres hat den Wert 1 (eins); die zweite Kalenderwoche den Wert 2 (zwei) u. s. w.
Besitzt das Geschäftsjahr mehr als zwölf Kalendermonate, dann wird es Geschäftsperioden mit dem gleichen Wert für die Kalenderwoche geben. In diesem Fall können Sie das Attribut fiscalWeekNumber für Ihre Auswertung verwenden. |
lastPeriodOfFiscalYear | Das Attribut enthält den Wert „Wahr“, wenn der entsprechende Kalendertag der Dimension „Tag“ zur letzen Geschäftsperiode des Geschäftsjahres gehört. |
firstPeriodOfFiscalQuarter | Das Attribut enthält den Wert „Wahr“, wenn der entsprechende Kalendertag der Dimension „Tag“ zur ersten Geschäftsperiode des Quartals gehört. |
lastPeriodOfFiscalQuarter | Das Attribut enthält den Wert „Wahr“, wenn der entsprechende Kalendertag der Dimension „Tag“ zur letzen Geschäftsperiode des Quartals gehört. |
lastWeekOfFiscalYear | Das Attribut enthält den Wert „Wahr“, wenn der entsprechende Kalendertag der Dimension „Tag“ zur letzen Kalenderwoche des Geschäftsjahres gehört. |
endOfFiscalPeriod | Das Attribut enthält den Wert „Wahr“, wenn der entsprechende Kalendertag der Dimension „Tag“ der letzte Tag der Geschäftsperiode ist. |
3 Klassifikation
Im Gegensatz zur OLTP-Datenbank werden in der OLAP-Datenbank sämtliche Klassifikationen in einem einzigen Business Entity, com.cisag.app.olap.obj.Classification, gespeichert. Über die Dimension ist die Auswertung z. B. der Vertriebsstatistik pro Vertriebs-Artikel-Klassifikation oder Kunden-Klassifikation möglich. Klassifikationen werden in den folgenden Dimensionstabellen verwendet:
- Organisation
- Kunde
- Vertriebs-Artikel
- Vertriebsprognose
- Beschaffungs-Artikel
- Lieferant
- Beschaffungsprognose
- Vertriebsaussicht
- Marketing-Partner (Kontakt)
- Mitbewerber
Um eine OLAP-Statistik über die Klassifikation auszuwerten, verknüpfen Sie die Klassifikation mit der Dimensionstabelle, die die Klassifikation verwendet. Das folgende Beispiel zeigt eine OQL-Klausel, die die Auswertung der Vertriebsstatistik für die Vertriebs-Artikel-Klassifikationen „100-110-120“ erlaubt:
FROM com.cisag.app.olap.obj.Sales facts
JOIN com.cisag.app.olap.obj.SalesItem item ON
facts:salesItemId = item:id
JOIN com.cisag.app.olap.obj.Classification c1 ON
item:classificationId1 = c1:id
LEFT OUTER JOIN com.cisag.app.olap.obj.Classification c2 ON
item:classificationId2 = c2:id
LEFT OUTER JOIN com.cisag.app.olap.obj.Classification c3 ON
item:classificationId3 = c3:id
WHERE c1:code = ‘100’ AND c2:code = ‘110’ AND c3:code = ‘120’
Hinweis:
Die beiden Verknüpfungen zur Vertriebs-Artikel-Klassifikation 2 und 3 müssen als s. g. „outer joins“ definiert sein, da die entsprechenden Felder im Artikelstamm keine Pflichtfelder sind.
Im Folgenden werden die für die OLAP-Statistik relevanten Attribute der Dimensionstabelle erläutert:
Attribut | Erläuterung |
id | Das Attribut enthält die numerische Identifikation der Klassifikation. Die Identifikation wird in der OLAP-Datenbank verwendet, um die Klassifikation eindeutig zu referenzieren. |
guid | Das Attribut enthält die Guid zur entsprechenden Klassifikation in der OLTP-Datenbank. |
type | Das Attribut enthält die fachliche Zuordnung der Klassifikation. Stammt der Wert z. B. aus der „Vertriebs-Artikel-Klassifikation 3“, dann hat das Attribut type den Wert „SALESITEM_HIERARCHY3“.
Folgende Werte sind möglich: · CUSTOMER_HIERARCHY1 bis 9 · SALESITEM_HIERARCHY1 bis 5 · SUPPLIER_HIERARCHY1 bis 5 · PURCHASEITEM_HIERARCHY1 bis 5 · MARKETINGPARTNER_HIERARCHY1 bis 5 · OPPORTUNITY_HIERARCHY1 bis 5 Stellt die Klassifikation einer Organisation dar, dann enthält das Attribut type einen der folgenden Werte für eine Vertriebsorganisation, Beschaffungsorganisation bzw. Lagerorganisation: · SALESORG_HIERARCHY · PURCHASINGORG_HIERARCHY · INVENTORYORG_HIERARCHY |
code | Das Attribut enthält den Code der Klassifikation incl. aller übergeordneten Ordner. Das Attribut entspricht daher dem Attribut path in der OLTP-Datenbank. |
description | Das Attribut enthält die Bezeichnung der Klassifikation. |
parentId | Das Attribut enthält die Identifikation zum übergeordneten Ordner in der Dimension „Klassifikation“. Gibt es keinen übergeordneten Ordner, dann enthält das Attribut den numerischen Wert 0 (null). |
parentGuid | Das Attribut enthält die Guid zum übergeordneten Ordner in der Dimension „Klassifikation“. Gibt es keinen übergeordneten Ordner, dann enthält das Attribut die ZERO-GUID, d. h. eine Folge von 32 Nullen. |
level | Das Attribut enthält die Ebene der Klassifikation als numerischen Wert. Die erste Ebene hat den Wert 1 (eins), die zweite Ebene den Wert 2 (zwei) u. s. w. |
leaf | Ist der Knoten ein Blatt, dann enthält das Attribut den Wert „Wahr“; ist der Knoten ein Ordner, dann enthält das Attribut den Wert „Falsch“. |
nodes | Das Attribut bildet ein Array mit den Codes der zehn ersten Ebenen der Klassifikation. Mithilfe des Attributs können Sie die Abfrage sukzessiv verfeinern, um Werte auf der jeweils untergeordneten Ebene zu umfassen (s. g. Drill-Down). Umfasst eine Klassifikation eine Ebene nicht, dann beinhaltet der Array eine leere Zeichenfolge. |
nodeDescriptions | Das Attribut bildet ein Array mit den Bezeichnungen der zehn ersten Ebenen der Klassifikation. Mithilfe des Attributs können Sie die Abfrage sukzessiv verfeinern, um Werte auf der jeweils untergeordneten Ebene zu umfassen (s. g. Drill-Down). Umfasst eine Klassifikation eine Ebene nicht, dann beinhaltet der Array eine leere Zeichenfolge. |
nodeGuids | Das Attribut bildet ein Array mit den Guids der zehn ersten Ebenen der Klassifikation. Mithilfe des Attributs können Sie die Abfrage sukzessiv verfeinern, um Werte auf der jeweils untergeordneten Ebene zu umfassen (s. g. Drill-Down). Umfasst eine Klassifikation eine Ebene nicht, dann beinhaltet der Array den Nullwert. |
4 Organisation
Die Organisationen werden im Business Entity com.cisag.app.olap.obj.OrganizationalUnit gespeichert. Über die Dimension ist die Auswertung z. B. der Vertriebsstatistik pro Vertriebsorganisation oder Firma möglich.
Im Folgenden werden die für die OLAP-Statistik relevanten Attribute der Dimensionstabelle erläutert:
Attribut | Erläuterung |
id | Das Attribut enthält die numerische Identifikation der Organisation. Die Identifikation wird in der OLAP-Datenbank verwendet, um die Organisation eindeutig zu referenzieren. |
guid | Das Attribut enthält die Guid zur entsprechenden Organisation in der OLTP-Datenbank. |
code | Das Attribut enthält den Code der Organisation ohne die übergeordneten Organisationen. |
description | Das Attribut enthält die Bezeichnung der Organisation. |
financialOrganizationalUnit | Das Attribut enthält die Guid der Firma, der die Organisation zugeordnet ist. |
salesClassificationId | Ist die Organisation eine Vertriebsorganisation, dann enthält das Attribut die Identifikation zur entsprechenden Klassifikation. Die Klassifikation ist vom Typ „SALESORG_HIERARCHY“ und enthält im Attribut code den vollen Pfad der Vertriebsorganisation.
Stellt die Organisation keine Vertriebsorganisation dar, dann enthält das Attribut den Wert 0 (null). |
purchasingClassificationId | Ist die Organisation eine Beschaffungsorganisation, dann enthält das Attribut die Identifikation zur entsprechenden Klassifikation. Die Klassifikation ist vom Typ „PURCHASINGORG_HIERARCHY“ und enthält im Attribut code den vollen Pfad der Beschaffungsorganisation.
Stellt die Organisation keine Beschaffungsorganisation dar, dann enthält das Attribut den Wert 0 (null). |
inventoryClassificationId | Ist die Organisation eine Lagerorganisation, dann enthält das Attribut die Identifikation zur entsprechenden Klassifikation. Die Klassifikation ist vom Typ „INVENTORYORG_HIERARCHY“ und enthält im Attribut code den vollen Pfad der Lagerorganisation.
Stellt die Organisation keine Lagerorganisation dar, dann enthält das Attribut den Wert 0 (null). |
financialOrganization | Ist die Organisation eine Firma, dann enthält das Attribut den Wert „Wahr“. |
5 Tag
Über die Dimensionstabelle „Tag“ ist eine zeitliche Zuordnung der Statistikfakten bis auf den Kalendertag möglich. Sie können die Dimensionstabelle nicht direkt mithilfe der Hintergrundanwendung „Statistikdimensionen aktualisieren“ aktualisieren. Bei jeder Aktualisierung der Geschäftsjahre oder der Statistikfakten wird die Dimensionstabelle automatisch um etwaige fehlende Kalenderjahre ergänzt. Bei der ersten Übertragung in einem neuen Kalenderjahr werden somit sämtliche Kalendertage vom 1. Januar bis zum 31. Dezember automatisch erzeugt.
Die Kalendertage werden im Business Entity com.cisag.app.olap.obj.Day gespeichert. Im Folgenden werden die für die OLAP-Statistik relevanten Attribute der Dimensionstabelle erläutert:
Attribut | Erläuterung |
id | Das Attribut enthält die numerische Identifikation des Kalendertages. Die Identifikation wird in der OLAP-Datenbank verwendet, um den Kalendertag eindeutig zu referenzieren. |
date | Das Attribut enthält den Kalendertag als Zeitstempel.
Alle Zeitstempel werden ohne Zeitzone aus der OLTP-Datenbank extrahiert. Bei der Übertragung in die OLAP-Datenbank wird die Zeitzone des Mandanten zum Zeitstempel hinzugefügt. Hat z. B. eine Ausgangsrechnung das Belegdatum 01.10.2005 00:00:00 MSK (Moskauer Normalzeit), dann erscheint dieser Beleg in der Statistik mit dem Rechnungsdatum 01.10.2005 00:00:00 MEZ, wenn beim Mandanten die mitteleuropäische Zeitzone hinterlegt ist. Diese symbolische Betrachtung des Datums ermöglicht eine zeitzonenunabhängige Betrachtung und liefert die gleichen Abfrageergebnisse unabhängig von der Zeitzone des Betrachters. Der Semiramis ODBC-Treiber liefert im virtuellen Attribut date_gmt das Datum auch als koordinierte Weltzeit (UTC oder Universal Time Coordonné). Dieses Format geht vom Null-Meridian durch Greenwich aus. Die Mitteleuropäische Zeit (MEZ oder auch CET) entspricht daher der UTC plus einer Stunde. Während der Sommerzeit ist die MEZ um zwei Stunden der UTC voraus. Beachten Sie daher, dass das Attribut date_gmt einen vom Attribut dayOfMonth abweichenden Wert aufweisen kann, wenn die Zeitzone nicht mit berücksichtigt wird. Kalendertage vor dem 1.1.1970 sind nicht zulässig. |
yearNumber | Das Attribut enthält eine laufende Nummer zur Identifikation des Kalenderjahres. |
quarterNumber | Das Attribut enthält eine laufende Nummer zur Identifikation des Quartals über alle Kalenderjahre hinweg. |
monthNumber | Das Attribut enthält eine laufende Nummer zur Identifikation der Geschäftsperiode über alle Kalenderjahre hinweg. |
weekNumber | Das Attribut enthält eine laufende Nummer zur Identifikation der Kalenderwoche über alle Kalenderjahre hinweg. |
dayNumber | Das Attribut enthält eine laufende Nummer zur Identifikation des Kalendertages über alle Kalenderjahre hinweg. |
year | Das Attribut enthält das Kalenderjahr als numerischen Wert. |
quarterOfYear | Das Attribut enthält das Quartal innerhalb eines Kalenderjahres als numerischen Wert. Das erste Quartal des Jahres hat den Wert 1 (eins); das zweite Quartal den Wert 2 (zwei) u. s. w. |
monthOfYear | Das Attribut enthält den Kalendermonat innerhalb eines Kalenderjahres als numerischen Wert. Der Januar hat den Wert 1 (eins); Februar den Wert 2 (zwei) u. s. w. |
weekOfYear | Das Attribut enthält die Kalenderwoche innerhalb eines Kalenderjahres als numerischen Wert. Die erste Kalenderwoche eines Jahres hat den Wert 1 (eins); die zweite Kalenderwoche den Wert 2 (zwei) u. s. w. |
dayOfMonth | Das Attribut enthält den Kalendertag innerhalb eines Kalendermonats als numerischen Wert. Der erste Kalendertag des Monats hat den Wert 1 (eins); der zweite Kalendertag den Wert 2 (zwei) u. s. w. |
dayOfWeek | Das Attribut enthält den Wochentag innerhalb einer Kalenderwoche als numerischen Wert. Der Montag hat den Wert 1 (eins); der Dienstag den Wert 2 (zwei) u. s. w. |
lastWeekOfYear | Das Attribut enthält den Wert „Wahr“, wenn die Kalenderwoche die letzte Woche des Kalenderjahres ist. |
endOfMonth | Das Attribut enthält den Wert „Wahr“, wenn der Kalendertag der letzte Tag des Kalendermonats ist. |