Mit Essbase-Berechnungsskripten arbeiten

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

  • Semikolon
    • Am Ende jeder Anweisung erforderlich
    • Beispiel: Sales = Sales * 1.50;
    • Nicht erforderlich nach FIX und ENDFIX
  • Doppelte Anführungszeichen
    • Elementnamen mit Leerzeichen/Sonderzeichen/Zahl am Anfang
    • Setzen Sie Elementnamen am besten immer in doppelte Anführungszeichen
    • Beispiel: "Cash Ratio" = "Cash"/"Current Liabilities";
  • Dimensionübergreifender Operator
    • Verwenden Sie ->, um Schnittmengen von mehr als einer Dimension anzugeben.
    • Beispiel: "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:

Verschachteltes Beispiel 1 für Essbase

Die oben aufgeführte Berechnung kann auch wie folgt geschrieben werden:

Verschachteltes Beispiel 2 für Essbase

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:

FIX-Beispiel 3 für Essbase

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:

FIX-Beispiel 4 für Essbase

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:

FIX-Beispiel 5 für Essbase

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:

FIX-Beispiel 6 für Essbase

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:

FIX-Beispiel 7 für Essbase

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.

FIX-Beispiel 8 für Essbase

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:

Essbase-Elementblock Beispiel 1

Im Folgenden finden Sie ein Beispiel für Elementblockanweisungen:

Essbase-Elementblock Beispiel 2

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.