Das Essbase-Berechnungsskript ist die Sprache, die Ihnen zum Schreiben einer eigenen benutzerdefinierten Geschäftslogik in Financial Consolidation and Close zur Verfügung steht. Dieser Abschnitt enthält einige grundlegende Essbase-Konstrukte sowie Einschränkungen, die für Financial Consolidation and Close gelten. Ausführliche Informationen zum Essbase-Berechnungsskript finden Sie in der Dokumentation Erste Schritte mit Essbase Cloud for Administrators.
Allgemeine Syntax
Sales = Sales * 1.50;
"Cash Ratio" = "Cash"/"Current Liabilities";
->
, um Schnittmengen von mehr als einer Dimension anzugeben."Sales"->"Changes In Net Income"->"Product1";
Kommentare
Kommentare beginnen mit /*
und enden mit */
.
Kommentare mit einer oder mehreren Zeilen werden unterstützt.
Sie können das Symbol in der Symbolleiste verwenden, um Kommentarblöcke festzulegen oder zu entfernen.
FIX/ENDFIX
FIX/ENDFIX ist einer der grundlegenden Bausteine jedes Berechnungsskripts. Um Berechnungen auszuführen, müssen Sie einen FIX/ENDFIX-Abschnitt definieren und die tatsächlichen Geschäftsberechnungen in diesen Abschnitt einfügen.
Beispiel: "Products" ist Ihre benutzerdefinierte Dimension, und Sie möchten die Anzahl der verkauften Fernsehgeräte berechnen. Sie können folgende Syntax verwenden:
FIX("Televisions")
"Units_Sold" = "LED_TVs" + "UHD_TVs";
ENDFIX
Die tatsächliche Geschäftsberechnung sieht wie folgt aus:
"Units_Sold = "LED_TVs" + "UHD_TVs";
. Damit wird die Anzahl der verkauften Fernsehgeräte berechnet.
Hinweis:
Sie müssen ein Semikolon am Ende jeder Berechnungsanweisung einfügen, außer bei FIX oder ENDFIX.Der FIX/ENDFIX-Abschnitt grenzt die Elemente aus verschiedenen Dimensionen für die Berechnung ein. In diesem Beispiel werden nur Fernsehgeräte bei den Berechnungen berücksichtigt.
Sie können auch verschachtelte FIX-Anweisungen definieren. Beispiel:
Die oben aufgeführte Berechnung kann auch wie folgt geschrieben werden:
Beispiel: @List ist eine Essbase-Funktion. Essbase stellt zahlreiche Funktionen bereit. Financial Consolidation and Close unterstützt jedoch nicht alle Essbase-Funktionen. Im Abschnitt "Unterstützte Essbase-Funktionen" finden Sie eine Liste der unterstützen Funktionen.
FIX für Financial Consolidation and Close-Dimensionen
Eine Financial Consolidation and Close-Anwendung kann je nach den aktivierten Anwendungsfunktionen bis zu 13 Dimensionen enthalten. Von diesen 13 möglichen Dimensionen sind für folgende Dimensionen keine FIX-Anweisungen zulässig, da das System auf diese Dimensionen automatisch eine FIX-Anweisung anwendet, wenn ein Benutzer den Konsolidierungsprozess aufruft.
Scenario
Year
Period
View
Entity
Beispiel: Sie haben die folgende Anweisung:
Das System kann das Deployment nicht ausführen, und eine Fehlermeldung mit den entsprechenden Informationen wird in der Jobkonsole geloggt.
Dies bedeutet jedoch nicht, dass Sie diese Dimensionen nicht im Skript verwenden können. In der Regel weist eine Berechnung in etwa folgende Syntax auf:
Beachten Sie, dass Sie in der FIX-Anweisung und auf der linken Seite der Gleichung keine Elemente aus der Scenario-, Year-, Period-, Entity- und View-Dimension verwenden können. Auf der rechten Seite der Gleichung gilt diese Beschränkung nicht.
Folgende Syntax wäre zulässig:
Für die übrigen acht Dimensionen werden alle Elemente aus der jeweiligen Dimension berücksichtigt, wenn Sie keine FIX-Anweisung auf diese Dimensionen anwenden. Beispiel: Sie haben die folgende Anweisung:
In diesem Beispiel weisen alle übrigen Dimensionen, außer Account, eine FIX-Anweisung auf. In diesem Fall berücksichtigt Essbase alle Elemente aus der Account-Dimension für Berechnungen im FIX/ENDFIX-Abschnitt.
Eingeschränkte Elemente in Financial Consolidation and Close
Für bestimmte Systemelemente in Financial Consolidation and Close gelten Einschränkungen im Hinblick auf die Verwendung oder Berechnung im Berechnungsskript. Wenn eingeschränkte Elemente in der Berechnung verwendet werden, kann das System die Validierung oder das Deployment nicht ausführen, und eine Fehlermeldung wird in der Jobkonsole geloggt.
Wenn keine Elemente für die Dimension angegeben werden, berücksichtigt das System ALLE Elemente in dieser Dimension. Da eingeschränkte Elemente jedoch nicht in den Prozess eingeschlossen werden dürfen, müssen Sie diese eingeschränkten Elemente in den FIX-Dimensionsanweisungen oder auf der linken Seite des Ausdrucks explizit ausschließen.
Die folgende Tabelle enthält eine vollständige Liste der Dimensionselemente, die in Financial Consolidation and Close eingeschränkt sind. Beachten Sie, dass die Elemente für die Currency- und Consolidation-Dimension basierend auf der verwendeten Einfügeregel eingeschränkt werden. Jede vordefinierte Einfügeregel enthält im Kommentarabschnitt Informationen dazu, welches Element der Currency- und Consolidation-Dimension für diese Regel eingefügt werden kann.
Tabelle 20-5 Eingeschränkte Dimensionselemente
Dimension | Element | Ausdruck Linke Seite | Ausdruck Rechte Seite |
---|---|---|---|
Scenario | Alle Elemente | Nein | Ja |
Year | Alle Elemente | Nein | Ja |
Period | Alle Elemente | Nein | Ja |
View | Alle Elemente | Nein | Ja |
Entity | Alle Elemente | Nein | Ja |
Account | FCCS_CSTATUS | Nein | Ja |
FCCS_CSTATUS FILTER | Nein | Ja | |
Wechselkurse - Endkurs | Nein | Ja | |
Wechselkurse - Durchschnittlicher Kurs | Nein | Ja | |
Durchschnittlicher Kurs | Nein | Ja | |
Endkurs | Nein | Ja | |
SrcAverageRate | Nein | Ja | |
TgtAverageRate | Nein | Ja | |
SrcEndingRate | Nein | Ja | |
TgtEndingRate | Nein | Ja | |
FCCS_Balance | Nein | Ja | |
FCCS_CTA | Nein | Ja | |
FCCS_CICTA | Nein | Ja | |
FCCS_Percent Control | Nein | Ja | |
FCCS_Current Ratio | Nein | Ja | |
FCCS_Quick Ratio | Nein | Ja | |
FCCS_Cash Ratio | Nein | Ja | |
FCCS_Inventory Turnover | Nein | Ja | |
FCCS_Asset Turnover | Nein | Ja | |
FCCS_Days Sales In Receivables | Nein | Ja | |
FCCS_Days Sales In Inventory | Nein | Ja | |
FCCS_Gross Profit Margin | Nein | Ja | |
FCCS_Return on Sales | Nein | Ja | |
FCCS_Return on Equity | Nein | Ja | |
FCCS_Debt to Equity Ratio | Nein | Ja | |
FCCS_Debt Ratio | Nein | Ja | |
Data Source | FCCS_System Types | Nein | Ja |
FCCS_Rate Override | Nein | Ja | |
FCCS_Account Override | Nein | Ja | |
FCCS_PCON | Nein | Ja | |
FCCS_Driver Source | Nein | Ja | |
Movement | FCCS_Opening Balance | Nein | Ja |
FCCS_OpeningBalance_Cash | Nein | Ja | |
FCCS_FX_Total_NonCash | Nein | Ja | |
FCCS_ClosingBalanceCash | Nein | Ja |
FIX für alle Elemente einer Dimension außer für eingeschränkte Elemente
Ein häufiger Anwendungsfall ist, dass eine FIX-Anweisung auf alle Dimensionselemente der Ebene 0 angewendet werden muss, die Dimension jedoch möglicherweise eingeschränkte Elemente enthält. Das folgende Beispiel zeigt, wie eine FIX-Anweisung auf alle Elemente der Ebene 0 außer auf die eingeschränkten Elemente dieser Dimension optimal angewendet wird.
Beispiel: Die Account-Dimension weist die höchste Anzahl an eingeschränkten Elementen auf.
Folgendes Code-Snippet des Berechnungsskripts kann verwendet werden, um eine FIX-Anweisung auf alle Account-Elemente der Ebene 0 außer auf eingeschränkte Elemente anzuwenden:
@REMOVE( @LEVMBRS( "Account", 0 ), @LIST( @RELATIVE( "FCCS_System Account", 0 ),@RELATIVE( "FCCS_Drivers", 0 ),@RELATIVE( "FCCS_Ratios", 0 ),@RELATIVE( "Exchange Rates", 0 ) ) )
FIX für Sparse- und Dense-Dimensionen
Eine FIX-Anweisung ist effektiver, wenn sie auf Sparse-Dimensionen angewendet wird. In diesem Fall führt die FIX-Anweisung dazu, dass Essbase nur Blöcke für die Kombination von Sparse-Dimensionselementen abruft, die in der FIX-Anweisung definiert sind. Die restlichen Elemente werden übersprungen.
Diese Sparse-Kombinationen fungieren als Indizes für Essbase, um die mit den Indizes übereinstimmenden Datenblöcke zu suchen und für Berechnungen abzurufen. Dadurch werden nicht alle Blöcke zur Verarbeitung abgerufen.
Wenn eine FIX-Anweisung für eine Dense-Dimension verwendet wird, sind Dense-Elemente in jedem Datenblock in Essbase vorhanden. Bei falscher Verwendung hätte dies Auswirkungen auf die Performance. Wenn eine FIX-Anweisung für eine Dense-Dimension angewendet wird, ruft Essbase alle Datenblöcke ohne Einschränkung ab. Eine Einschränkung erfolgt nur für einen Teil innerhalb der einzelnen Blöcke. Aus diesem Grund sind möglicherweise mehrere Durchgänge erforderlich, um die Informationen aus der Datenbank abzurufen.
Beispiel: Sie können "Sales" und "PostSales" aus der Account-Dimension mit den folgenden Anweisungen referenzieren:
Wenn das System die erste FIX-Anweisung für "Sales" verarbeitet, ruft Essbase alle Datenblöcke der Account-Dimension ab, verarbeitet jedoch nur das Konto "Sales".
Bei der FIX-Anweisung für "PostSales" ruft Essbase später erneut alle Datenblöcke der Account-Dimension ab, verarbeitet jedoch nur das Konto "PostSales". In diesem Fall erfolgen zwei Durchgänge in der Datenbank für diese beiden Konten.
Um Performanceprobleme zu vermeiden, können Sie anstatt einer FIX-Anweisung für die Account-Dimension eine IF...THEN-Anweisung für eine Dense-Dimension verwenden.
In diesem Beispiel, in dem Sie keine FIX-Anweisung verwenden, ist nur ein Durchgang in der Essbase-Datenbank notwendig.
Es wird empfohlen, FIX-Anweisungen für Sparse-Dimensionen und IF..THEN-Anweisungen für Dense-Dimensionen zu verwenden, um eine optimale Berechnungsperformance sicherzustellen.
Elementblock
Elementblöcke sind auch als Berechnungsblöcke bekannt. Gelegentlich wird auch der Begriff "Anker" für Elementblöcke verwendet. Die Syntax eines Elementblocks lautet wie folgt:
Im Folgenden finden Sie ein Beispiel für Elementblockanweisungen:
In diesem Beispiel wird "My Total Opening Balance" als Berechnungsblockelement oder Anker bezeichnet. Dieses Element sollte nach Möglichkeit ein Element aus einer Dense-Dimension sein.
In der oben aufgeführten Berechnung beschränken wir die Anweisung nur auf das Element "My FX Opening". Die Berechnungen werden für das in der FIX-Anweisung angegebene Element durchgeführt.
Beachten Sie, dass Sie bei der Verwendung von IF-Anweisungen einen Elementblock benötigen. Sie können IF-Anweisungen nicht außerhalb von Elementblöcken schreiben.