Wenn Sie konfigurierbare Berechnungen oder On-Demand-Regeln erstellen und validieren, die im Rahmen der Validierung Essbase-Berechnungsskripte verwenden, gibt Financial Consolidation and Close Warnungen zu Problemen aus, die beim Ausführen der Regel zu Performanceeinbußen führen können. Wählen Sie im Calculation Manager die Registerkarte Fehler und Warnungen, um diese Warnungen anzuzeigen, und klicken Sie auf die grüne Schaltfläche, um die Skriptdiagnose auszuführen.
Bei den grün hervorgehobenen Zellen im folgenden Screenshot handelt es sich um Warnungen aus Financial Consolidation and Close. Die anderen angezeigten Warnungen stammen aus Calculation Manager.
Hinweis:
Die Warnungen von Financial Consolidation and Close beim Validieren der Regeln werden auch im folgenden Modul "Empfehlungen" angezeigt. Informationen hierzu finden Sie unter Anwendungsempfehlungen anzeigen.
Warnmeldungen werden basierend auf der Zeilennummer des Skriptes sortiert und angezeigt.
Zum Anzeigen der Warnungen beim Validieren von Regeln in Calculation Manager:
In den folgenden Abschnitten finden Sie Informationen zum Beheben von Warnungen der Regelvalidierung.
Calc Manager-Skriptvalidierung für die Verwendung von Ankern
Folgen Sie diesen Richtlinien, um Anker in Calc Manager-Skripten korrekt zu verwenden:
Für Nicht-DSO-Anwendungen
Beachten Sie, dass es für konfigurierbare Berechnungen (Einfügepunkte) nicht möglich ist, ein Element aus Scenario, Year, Period, Entity oder View als Anker zu verwenden.
Für On-Demand-Regeln (ODRs) können Sie kein Element aus Scenario, Year, Period, Entity, Consolidation oder Currency als Anker verwenden.
Sie sollten kein Element aus einer Dense-Dimension als Anker verwenden. Bei Nicht-DSO-Anwendungen ist "Account" eine Dense-Dimension. Bei Dense-Elementblöcken verhilft CALCMODE(BOTTOMUP) nicht zu einem Performancevorteil.
Für DSO-Anwendungen
Bei DSO-Anwendungen ist "Movement" eine Dense-Dimension. Wenn Sie von einer Nicht-DSO- zu einer DSO-Anwendung wechseln, sollten Sie sicherstellen, dass Ihr Anker kein Element aus der Movement-Dimension ist. Sie können als Anker für den Elementblock ein Element aus der Account-Dimension auswählen, da "Account" in DSO-Anwendungen eine Sparse-Dimension ist.
Wenn Sie kein Account-Element als Anker auswählen können, wählen Sie ein Element aus einer anderen Sparse-Dimension als Anker aus.
Beachten Sie, dass es für konfigurierbare Berechnungen (Einfügepunkte) nicht möglich ist, ein Element aus Scenario, Year, Period, Entity oder View (Dense-Dimension) als Anker zu verwenden.
Für On-Demand-Regeln (ODRs) können Sie kein Element aus Scenario, Year, Period, Entity, Consolidation oder Currency als Anker verwenden.
Sie sollten kein Element aus einer Dense-Dimension als Anker verwenden. Bei DSO-Anwendungen sind "Movement" und "Period" Dense-Dimensionen. Bei Dense-Elementblöcken verhilft CALCMODE(BOTTOMUP) nicht zu einem Performancevorteil.
Nachfolgend finden Sie ein Beispiel für eine konfigurierbare Berechnung (Einfügeregel) für eine Nicht-DSO-Anwendung. Jede Zeile ist durch # gekennzeichnet, wobei es sich um die Zeilennummer handelt.
#1 FIX ("FCCS_Periodic", "FCCS_Journal Input", "FCCS_Managed Data", "IFRS_IN ", "Entity Currency", "FCCS_Mvmts_NetIncome", @relative("Total Categories", 0), @relative("Total Area", 0), @LEVMBRS("Intercompany", 0) @relative("Total Custom", 0)) #2 "FCCS_Entity Input" ( #3 IF (@ISMBR("Actual_Red")) #4 IF (@ISUDA("Entity", "B10") AND ("FCCS_Mvmts_NetIncome" <> #Missing)) #5 ENDIF #6 ENDIF #7 ) #8 ENDFIX
In diesem Skriptbeispiel generiert die Regelvalidierung die folgende Warnung:
Zeile 2:Verwenden Sie das Movement-Element FCCS_Mvmts_NetIncome als einen Anker anstelle des Ankerelements FCCS_Entity Input.
Nachfolgend finden Sie ein Beispiel für eine konfigurierbare Berechnung (Einfügeregel) für eine DSO-Anwendung. Jede Zeile ist durch # gekennzeichnet, wobei es sich um die Zeilennummer handelt.
#1 FIX("FCCS_Periodic","FCCS_No Intercompany","No operating Expense","Product1 ","CORP_IN","IC_PROFIT_ACC ") #2 "FCCS_Managed Data"( #3 @CALCMODE(BOTTOMUP); #4 IF (@ISMBR("FY21")) #5 "FCCS_OpeningBalanceAdjustment"=10; #6 ENDIF #7 ) #8 ENDFIX
In diesem Skriptbeispiel generiert die Regelvalidierung die folgende Warnung:
Zeile 2:Verwenden Sie das Account-Element IC_PROFIT_ACC als einen Anker anstelle des Ankerelements FCCS_Managed Data.
Calc Manager-Skriptvalidierung für @CALCMODE (BottomUp)
@CALCMODE(BOTTOMUP) versus @CALCMODE(TOPDOWN)
Für Financial Consolidation and Close empfiehlt sich die Verwendung von BOTTOMUP, da dies im Vergleich zu TOPDOWN unter Verwendung von konfigurierbaren Berechnungen (Einfügepunkte) oder On-Demand-Regeln (ODRs) schnellere Berechnungen ermöglicht.
Bei BOTTOMUP, dem Standardansatz für Berechnungen, bestimmt Essbase, welche der vorhandenen Datenblöcke berechnet werden müssen, bevor die Daten unter Verwendung der Sparse-Elementblöcke berechnet werden. Anschließend berechnet Essbase nur die Blöcke, die während der vollständigen Datenbankberechnungen berechnet werden müssen.
Beispiel: A = B + C
A wird nur dann berechnet, wenn B und C in der Datenbank vorhanden sind. Die Abhängigkeit des Wertes A von B und C ist vor Beginn der eigentlichen Berechnung bekannt.
Bei der TOPDOWN-Berechnung berechnet Essbase die Formel für alle potenziellen Datenblöcke unter Verwendung der Sparse-Elemente im Elementblock.
Beispiel: A = B -> D + C -> D
Zur Berechnung der Formel muss Essbase alle Kombinationen von A überprüfen, um festzustellen, ob B -> D oder C -> D vorliegt.
Essbase verwendet BOTTOMUP als Standardmechanismus zur Berechnung einer Formel, die einem Sparse-Element zugewiesen ist, sofern die Formel nicht allzu komplex ist. In diesem Fall würde eine TOPDOWN-Berechnung erfolgen.
Ein Ausdruck gilt als komplex, wenn er die folgenden Kriterien erfüllt:
Er enthält dimensionsübergreifende Operatoren [ -> ].
Er verwendet eine oder mehrere Bereichsfunktionen, beispielsweise @AVGRANGE, @MAXRANGE, @MINRANGE oder @SUMRANGE.
Er verwendet Beziehungen oder Finanzfunktionen, beispielsweise @ANCESTVAL, @NEXT, @PARENTVAL, @SHIFT, @ACCUM oder @GROWTH.
Für diese Fälle bietet Essbase die Funktion @CALCMODE(BOTTOMUP), um eine Sparse-Formelberechnung zur BOTTOMUP-Ausführung zu erzwingen.
Nachfolgend finden Sie ein Beispiel für eine konfigurierbare Berechnung (Einfügeregel). Jede Zeile ist durch # gekennzeichnet, wobei es sich um die Zeilennummer handelt.
#1 FIX ("FCCS_Periodic", "FCCS_Entity Input", "Entity Currency", "FCCS_ClosingBalance_Input","FCCS_Balance Sheet","FCCS_Total Data Source") #2 "FCCS_Income_Statement"( #3 "FCCS_Movements"=@CURRMBR("Entity")->"FCCS_Contribution" -> "FCCS_Movements"; #4 ) #5 ENDFIX
In diesem Skriptbeispiel generiert die Regelvalidierung die folgende Warnung:
Zeile 2: Verwenden Sie @CalcMode (BOTTOMUP) für den Elementblock FCCS_Income_Statement.
Weitere Informationen finden Sie im Thema: https://docs.oracle.com/cd/E57185_01/ESBTR/calcmode_func.html.
Calc Manager-Skriptvalidierung für Hybrid-BSO
Für hybride Financial Consolidation and Close-Anwendungen wird es empfohlen, sofern zutreffend SET HYBRIDBSOINCALCSCRIPT NONE/FULL festzulegen, um die besten Performance-Ergebnisse zu erzielen.
Standardmäßig müssen HYBRIDBSOINCALCSCRIPT für konfigurierbare Berechnungen (Einfügungsregeln) auf FULL gesetzt werden und HYBRIDBSOINCALCSCRIPT für On-Demand-Regeln auf NONE.
Bei der Regelvalidierung wird geprüft, ob das Skript CustomTop-Dimensionselemente des Speichertyps "Dynamische Berechnung" enthält.
Nachfolgend finden Sie ein Beispiel für eine On-Demand-Regel. Jede Zeile ist durch # gekennzeichnet, wobei es sich um die Zeilennummer handelt.
#1 FIX ("FCCS_Periodic", "FCCS_No Intercompany", "No Product", "FCCS_Mvmts_NetIncome", @RELATIVE("AllDepts", 0), "No Department") #2 FIX (@RELATIVE("TotalHFM", 0)) #3 "StkCmpRev_CE" = -("555011_CE"->"FCCS_YTD"->"FCCS_Intercompany Top") - ("555012_CE"->"FCCS_YTD"->"FCC_Intercompany Top"); #4 ENDFIX #5 ENDFIX
In diesem Skriptbeispiel generiert die Regelvalidierung die folgende Warnung:
Zeile 3: Deaktivieren Sie die hybride Berechnung für diesen Block mit SET HYBRIDBSOINCALCSCRIPT NONE.
Weitere Informationen finden Sie im Thema: https://docs.oracle.com/en/cloud/paas/analytics-cloud/tress/hybridbsoincalcscript.html.
Calc Manager-Skriptvalidierung für @CALCMODE (BLOCK)
Für diesen speziellen Anwendungsfall wird es für Financial Consolidation and Close empfohlen, wenn möglich @CalcMode (BLOCK) hinzuzufügen, um die Performance zu verbessern.
Weitere Informationen zu @CalcMode (BLOCK) finden Sie im Thema: https://docs.oracle.com/cd/E57185_01/ESBTR/calcmode_func.html.
Um festzustellen, ob @CALCMODE(BLOCK) innerhalb eines Ankerblocks sowohl für DSO- und Nicht-DSO-Anwendungen erforderlich ist, prüft die Regelvalidierung die folgenden Bedingungen:
Ob die Ausdrücke im Ankerblock komplex sind
Ob der Ausdruck bestimmte Funktionen enthält, beispielsweise @ANCEST, @CURRMBR, @ISMBR für ein Dense-Element, @MDANCESTVAL, @MDPARENTVAL, @MDSHIFT, @NEXT, @PARENT, @PARENTVAL, @PRIOR, @SANCESTVAL, @SPARENTVAL, @SHIFT
Sind diese Bedingungen erfüllt, gibt der Validierungsprozess eine Warnung mit der entsprechenden Zeilennummer aus.
Nachfolgend finden Sie ein Beispiel für eine konfigurierbare Berechnung (Einfügeregel). Jede Zeile ist durch # gekennzeichnet, wobei es sich um die Zeilennummer handelt.
#1 FIX ("FCCS_Periodic", "FCCS_Entity Input", "Entity Currency", "FCCS_ClosingBalance_Input","FCCS_Balance Sheet","FCCS_Total Data Source") #2 "FCCS_Income_Statement"( #3 "FCCS_Movements"=@CURRMBR("Entity")->"FCCS_Contribution" -> "FCCS_Movements"; #4 ) #5 ENDFIX
In diesem Skriptbeispiel generiert die Regelvalidierung die folgende Warnung:
Zeile 2: Verwenden Sie @CalcMode (BLOCK) für den Elementblock FCCS_Income_Statement.