NextLytics Blog

SAP Datasphere: Integration von Datums- und Fabrikkalenderdaten

Geschrieben von Fotios Vlantis | 27.02.2025 08:10:58

Kalenderdatensätze sind für viele Analyse- und Planungsmodelle von grundlegender Bedeutung, aber sie erfordern oft Erweiterungen, um ihr volles Potenzial zu entfalten. In diesem Artikel zeigen wir Ihnen, wie Sie eine einheitliche Kalenderansicht in SAP Datasphere erstellen, indem Sie Standard-Datumsdaten mit den Arbeitstagen des Fabrikkalenders von SAP S/4HANA kombinieren. Das Ergebnis ist ein Datensatz, der mit Hilfe von SQLScript die Arbeits- und arbeitsfreien Tage für bestimmte Regionen eindeutig identifiziert.

Verstehen von Fabrikkalendern in SAP S/4HANA

Ein Fabrikkalender in SAP S/4HANA definiert Arbeits- und arbeitsfreie Tage für bestimmte Regionen oder Geschäftseinheiten und ermöglicht so eine genaue Terminplanung, Produktionsplanung und Terminberechnung. In diesen Kalendern werden Regeln wie Feiertage, Wochenenden und benutzerdefinierte arbeitsfreie Tage gespeichert. Wichtige CDS-Sichten wie I_FACTORYCALENDAR (Stammdaten für Kalender-IDs und Gültigkeitszeiträume) und I_FACTORYCALENDARTEXT (sprachspezifische Beschreibungen) definieren Kalenderdaten, während I_PUBLICHOLIDAYCALENDAR und I_PUBLHOLIDAYCALHOLIDAYDATE Feiertagsregeln und genaue Feiertagsdaten bereitstellen. 

Für das steuerliche Berichtswesen bildet I_FISCALCALENDARDATE Datumsangaben auf Geschäftsperioden ab. 

In diesem Artikel werden wir I_FACTORYCALWORKINGDAYSPERYR verwenden, das monatliche Arbeitstage in kodierte Strings (z. B. "11100...") komprimiert, um Standard-Datumsdimensionen anzureichern. Um diesen Viewzu nutzen, stellen Sie sicher, dass sie über Replikationsflüsse mit den CDS-Views als Quelle in SAP Datasphere repliziert werden. 

Datenquellen und Einrichtung

1. SAP.TIME.M_TIME_DIMENSION

Dieser standardmäßig enthaltene Viewin SAP Datasphere enthält umfassende Datumsinformationen, darunter:

  • DATE_SQL: Kalenderdaten

  • JAHR, MONAT, QUARTAL: Hierarchische Zeiteinteilung

  • Wochen- und Tagesbezeichnungen

Voraussetzung ist: Aktivieren Sie diesen Viewin Ihrem Datasphere-Bereich.

Eine Tabelle mit Daten, Jahren, Monaten und Quartalen.

2. I_FACTORYCALWORKINGDAYSPERYR (S/4HANA CDS-View)

Dieser vorbereitete CDS-View speichert die Daten des Fabrikkalenders, einschließlich:

  • Jährliche Arbeitstage pro Monat, kodiert als Strings aus 1en (Arbeitstage) und 0en (arbeitsfreie Tage).

  • Eine Spalte FactoryCalendar zur Unterscheidung regionaler Kalender (z. B. verwendet Deutschland den Code 01).

Voraussetzung ist: Replizieren Sie diese CDS-View über einen Replikationsfluss in Datasphere.


Eine Tabelle mit Spalten wie FactoryCalendar, Year, Month01WorkingDaysString (z. B. "1111100...") usw.

Aufbau der vereinheitlichten Kalenderansicht

Zielsetzung

Kombinieren Sie die beiden Datensätze, um einen Kalender mit den folgenden Spalten zu erstellen:

  1. Datum (aus M_TIME_DIMENSION)

  2. Jahr

  3. Tagesname (z. B. Montag)

  4. Monatsname (z. B. Januar)

  5. Arbeitstage im Jahr (Gesamtarbeitstage pro Jahr)

  6. Arbeitstag (1 oder 0 zur Angabe, ob das Datum ein Arbeitstag ist)

Sehen Sie sich die Aufzeichnung unseres Webinars an: 
"SAP Datasphere and the Databricks Lakehouse Approach"

Schritt 1: Extrahieren grundlegender Datumsinformationen

Beginnen Sie mit der Abfrage von M_TIME_DIMENSION, um die ersten vier Spalten abzurufen. Verwenden Sie die in HANA integrierten Funktionen DAYNAME, MONTHNAME und INITCAP, um Tages- und Monatsnamen zu formatieren:

Erläuterung der wichtigsten HANA-Funktionen

  • DAYNAME(Datum): Extrahiert den Namen des Tages (z. B. "MONTAG") aus einem Datumsfeld. Standardmäßig wird der Name in Großbuchstaben zurückgegeben.

  • MONATSNAME(Datum): Ermittelt den Namen des Monats (z. B. "JANUAR") aus einem Datum, ebenfalls in Großbuchstaben.

  • INITCAP(text): Konvertiert den ersten Buchstaben einer Zeichenkette in Großbuchstaben und den Rest in Kleinbuchstaben. Dies wird auf DAYNAME- und MONTHNAME-Ergebnisse angewendet, um sie zur besseren Lesbarkeit als "Montag" oder "Januar" zu formatieren

Eine Tabelle mit formatierten Datumsangaben, Jahreszahlen, Tagesnamen und Monatsnamen.

Schritt 2: Arbeitstagskennzeichen extrahieren

Die Herausforderung besteht darin, die 1/0-Strings aus I_FACTORYCALWORKINGDAYSPERYR  zu analysieren. Extrahieren Sie für jedes Datum den entsprechenden Wert aus der entsprechenden Monatsspalte mit SUBSTRING:

Eine Tabelle mit dem Datenformat der Arbeitstage für jeden Monat.

Beispiel:

  • Für Januar 7, 2025: SUBSTRING("Month01WorkingDaysString", 7, 1)

  • Für Februar 2, 2025: SUBSTRING("Month02WorkingDaysString", 2, 1)

Schlüssellogik:

  • Dynamische Identifizierung der Monatsspalte (z. B. Monat01, Monat02) auf der Grundlage des Datums.

  • Verwenden Sie den Tag des Monats als Startposition für die Teilzeichenkette.

Eine endgültige Abfrage, die dynamisch Datumsdaten, basierend auf dem Datum mit den Monatsspalten kombiniert.

 

Schritt 3: Kombinieren von Daten mit einem Join

Verbinden Sie die beiden Tabellen nach Jahr und filtern Sie nach dem deutschen Fabrikkalender (FactoryCalendar = '01'):

Ein einheitlicher Kalender mit Datumsangaben, Arbeitstagen und Summen
(z. B. 2025-01-01 = 0 [arbeitsfrei], 2025-01-02 = 1 [arbeitend]).

Datums- und Fabrikkalenderdaten - Unser Fazit 

Durch die Kombination von M_TIME_DIMENSION mit Fabrikkalenderdaten haben wir einen Datensatz erstellt, welcher die folgenden Informationen bietet:

  • Anreicherung der Datumsdimensionen mit Arbeitstag-/Nichtarbeitstag Kennzeichen.

  • Vereinfacht das Reporting für regionalspezifische Geschäftsmodelle (z.B. Produktionsplanung in Deutschland).

  • Nutzt die Flexibilität von SQL, um komprimierte Zeichenkettenmuster in verwertbare Daten umzuwandeln.

Mit Blick auf die Zukunft bietetdiese einheitliche Kalenderansicht die Möglichkeitweitere praktische Erweiterungen wie zum Beispiel die Verfolgung von Verkaufstagen in einem Quartal, um den Umsatz anhand tatsächlicher Verkaufstage und nicht anhand von Kalendertagen zu vergleichen oder die Ergänzung der steuerlichen Berichterstattung durch eine jahresspezifische Periodenlogik abzubilden.

Haben Sie Fragen zu SAP Datasphere? Oder benötigen Sie Unterstützung bei einer konkreten Fragestellung? Wir helfen Ihnen gerne dabei. Nehmen Sie einfach Kontakt zu uns auf!