@LEVMBRS
anstatt @RELATIVE
.@CHILDREN
anstatt @RELATIVE
.@REMOVE
und @LEVMBRS
, wenn Sie nur bestimmte Elemente aus einer FIX-Anweisung ausschließen möchten.Berechnungen mit in Planning gespeicherten Daten durchführen
Planning ermöglicht Ihnen die Eingabe von Datenwerten. Beispiel: Mit dem Format MM/TT/JJJJ kann ein Startdatum als 11/01/2019 und ein Enddatum als 06/01/2020 eingegeben werden. Oracle Essbase speichert als Datum formatierte Werte als numerische Werte. Beispiel: Das oben genannte Startdatum wird als 20191101 und das Enddatum als 201200601 gespeichert. Mit Essbase-Funktionen, wie z.B. @ROUND
, @INT
oder @TRUNCATE
, können Sie die Anzahl an Monaten zwischen einem Startdatum und einem Enddatum berechnen. Das folgende Beispiel zeigt, wie die Anzahl der Monate zwischen einem Startdatum und einem Enddatum mit der Funktion @ROUND
berechnet wird:
(@ROUND ("End Date",-4) - @ROUND ("Start Date",-4))/10000*12Das Ergebnis dieser Berechnung
(20200000 - 20190000)/10000 *12
lautet "12".(@ROUND ("End Date",-2) - @ROUND ("End Date",-4))/100Das Ergebnis dieser Berechnung
(20200600 - 20200000)/100
lautet "6".(@ROUND ("Start Date",-2) - @ROUND ("Start Date",-4))/100Das Ergebnis dieser Berechnung
(20191100 - 20190000)/100
lautet "11".(12+6-11)
, um die Anzahl der Monate (7) zwischen dem Startdatum und dem Enddatum zu berechnen.
(((@ROUND ("End Date",-4) - @ROUND ("Start Date",-4))/10000*12) + ((@ROUND ("End Date",-2) - @ROUND ("End Date",-4))/100)- ((@ROUND ("Start Date",-2) - @ROUND ("Start Date",-4))/100))
Funktion @CURRMBR verwenden
Die Funktion @CURRMBR
, die den Namen des aktuell berechneten Dimensionselements zurückgibt, ist vor allem nützlich, um den Umfang komplexer Berechnungen zu definieren und komplexe Berechnungen zu verwalten. Sie müssen jedoch die Auswirkungen auf die Performance bedenken.
Die Performance wird nicht beeinträchtigt, wenn die Funktion @CURRMBR
in einer dünn besetzten Dimension verwendet wird, da der Block nur einem Element einer dünn besetzten Dimension entspricht. Die Performance dieser Funktion ist jedoch niedriger, wenn sie in einer dicht besetzten Dimension verwendet wird, da Berechnungen auf der Blockebene und nicht auf der Zellenebene ausgeführt werden. Mit dieser Funktion werden also alle Elemente einer dicht besetzten Dimension berechnet, auch wenn ein bestimmtes Element der dicht besetzten Dimension nicht in der Abfrage vorhanden ist. Daher sollte diese Funktion bei dicht besetzten Dimensionen sparsam eingesetzt werden.
Bei Verwendung der Funktion @CURRMBR
in dicht besetzten Dimensionen können außerdem unerwartete Ergebnisse oder Fehler auftreten, wenn die Funktion in Verbindung mit anderen Funktionen wie @CONCATENATE
verwendet wird. Beispiel: Wenn ein dynamisch berechnetes Element in einer Abfrage die Formel "Actual"->@MEMBER(@CONCATENATE(@NAME (@CURRMBR ("Account")),"_Total"))
enthält und die Account-Dimension dünn besetzt ist, wird die Abfrage ohne Fehler ausgeführt, sofern das Konto in der Abfrage ein gültiges Modellstrukturelement generiert. Wenn die Account-Dimension jedoch dicht besetzt ist, führt die Abfrage zu folgendem Fehler, selbst wenn das Konto in der Abfrage ein gültiges Modellstrukturelement generiert.
Fehler beim Ausführen der Formel für [Elementname] (Zeile 0): Es wurde versucht, ein @-Nullelement an Funktion [@X]
Dieser Fehler wird erzeugt, da die Funktion @CURRMBR
die Berechnung auf der Blockebene durchführt und somit alle Konten im dicht besetzten Block berechnet werden. Nicht alle Konten im Block generieren ein gültiges Modellstrukturelement, was zu der oben genannten Fehlermeldung führt. Weitere Informationen zur Funktion @CURRMBR
finden Sie unter @CURRMBR in der Dokumentation Technische Referenz zu Oracle Essbase.