Systemdatum anhand einer Geschäftsregel in Planning auffüllen

Oracle Essbase speichert Datumsangaben aus Planning als numerische Werte. Beispiel: Das Startdatum 21. Mai 2021 wird als 20210521 gespeichert.

Geschäftsprozesse außerhalb von Planning, die die Essbase-Datenbank verwenden, nutzen eine Datumsfunktionalität, bei der diese Datumsangaben anhand der Anzahl der verstrichenen Sekunden seit Mitternacht am 1. Januar 1970 gespeichert werden (ein nicht numerisches Format, das sich von der Speicherart von Datumswerten in Planning unterscheidet).

Sie können das Essbase-Datumsformat in das Planning-Format konvertieren, um damit in Formularen das Systemdatum (das aktuelle Datum) in Planning-Datumselementen aufzufüllen.

Beispiel: Sie möchten ein systemgeneriertes Datum (basierend auf dem aktuellen Systemdatum) über eine Berechnung in einem Formular dynamisch als "Start_Date" zu einem Planning-Element hinzufügen. Möglicherweise ist das erforderlich, wenn eine Auditanforderung vorschreibt, eine schreibgeschützte, nicht vom Benutzer eingegebene Datumsangabe für einen Datensatz dynamisch hinzuzufügen, um den Zeitpunkt der Erstellung des neuen Vertrags oder Kunden zu identifizieren.

Um den Essbase-Datumswert 21. Mai 2021 in einen äquivalenten numerischen Planning-Wert zu konvertieren, multiplizieren Sie den Monat mit 100 und das Jahr mit 10.100. Addieren Sie dann die Produkte dieser Berechnungen wie unten gezeigt mit der Anzahl an Tagen:

Year = 2021 * 10,000 = 2021000 
Month = 05 * 100 = 500
Day = 21
2021000 + 500 + 21 = 2021521

Dazu können Sie eine Geschäftsregel verwenden, indem Sie die Essbase-Datumselemente in Variablen speichern, bis Sie das Ergebnis in ein Planning-Element schreiben. Zu diesem Zweck stellt Essbase-Funktionen bereit, mit denen Sie das aktuelle Datum extrahieren (@TODAY) und den Tag, den Monat oder das Jahr ab diesem Datum ableiten können (@DATEPART).

Das folgende Beispiel zeigt, wie Sie mit @TODAY und @DATEPART Variablen erstellen, die das Datum, den Monat und das Jahr des Systemdatums im Essbase-Format speichern, die Berechnung zum Konvertieren in das Planning-Datumsformat ausführen und das Planning-Datumsformat in einer Variable speichern, um "Start_Date" nach Bedarf aufzufüllen:

Var_Day = @DATEPART(@TODAY(),DP_DAY);
Var_Month ==@DATEPART(@TODAY(),DP_MONTH)*100;
Var_Year = @DATEPART(@TODAY(),DP_YEAR)*10000;
Var_TodayDate = @sum(Var_Day, Var_Month, Var_Year);

Start_Date = Var_TodayDate;

Sie könnten eine Formel mit einer Syntax wie der folgenden verwenden, um das Systemdatum einem Element dynamisch als "Start_Date" hinzuzufügen:

@MEMBER(@HspNthMbr(@name(@descendants("AllMembers")),nextMember))->"Start_Date"=Var_TodayDate;