Berechnungen tracen

Mit dem Essbase-Berechnungstracing können Sie Einblicke in die Verarbeitung von Elementformeln erlangen und Ihre Block-Storage-Berechnungsskripte debuggen und verfeinern. Aktivieren Sie CALCTRACE für kontextabhängiges Smart View-Berechnungstracing, oder verwenden Sie den SET TRACE-Befehl, um zu tracende Schnittmengen auszuwählen.

Mit Berechnungstracing können Sie auf protokollierte Informationen zu einer Berechnung zugreifen, nachdem das Berechnungsskript erfolgreich für einen Cube ausgeführt wurde.

Das Tracing hat keinen Einfluss auf das Berechnungsverhalten. Wurde in Smart View eine Berechnung gestartet, für die auf dem verbundenen Server das Berechnungstracing durch einen Administrator aktiviert wurde, zeigt Smart View nach Ausführung der Berechnung ein Popup-Dialogfeld mit Details an. Die Informationen zum Berechnungstracing können vom Popup-Dialogfeld in einen Texteditor eingefügt werden. Dieselben Informationen finden Sie in calc_trace.txt im Verzeichnis der Datenbankdateien in Essbase.

Mithilfe der Informationen zum Berechnungstracing können Sie die Ausführung des Berechnungsskripts debuggen, falls die Ergebnisse der Berechnung nicht wie erwartet ausfallen.

Berechnungstracing wird in Anwendungen mit aktiviertem Szenariomanagement nicht unterstützt.

Um die Berechnungstracing zu aktivieren, muss der Administrator zunächst den Anwendungskonfigurationsparameter CALCTRACE einschalten. Wenn das Berechnungstracing für Ihre Anwendung aktiviert ist, können Sie es auf zwei Arten nutzen:

  • In Smart View können Sie kontextabhängiges Tracing für einen einzelnen Zellenwert verwenden.
    1. Verbinden Sie ein Abfrageblatt in Smart View mit der Anwendung, für die Sie das Berechnungstracing aktiviert haben.
    2. Markieren Sie eine Datenzelle, deren berechneten Wert Sie tracen möchten.
    3. Klicken Sie im Datenbereich des Essbase-Registers auf die Schaltfläche Berechnen, und wählen Sie ein Berechnungsskript aus, das ausgeführt werden soll. Sie sehen den Point of View aus der markierten Datenzelle in den Laufzeit-Prompts für das Elementtracing.
    4. Klicken Sie auf Starten, um das Berechnungsskript auszuführen.

      Der gesamte Umfang der Berechnung im Skript wird berechnet, aber nur der Kontext der markierten Datenzelle wird bei der Berechnung verfolgt.

    5. Prüfen Sie am Ende des Berechnungsskripts das Dialogfeld Berechnungsergebnis, in dem die Ergebnisse vor und nach der Berechnung für die markierte Datenzelle angezeigt werden.

      Wenn die markierte Datenzelle nicht bei der Berechnung geändert wurde, wird dies in einer Meldung angegeben.

  • Sie können die zu tracenden Datenschnittmengen in Berechnungsskripten mit dem Berechnungsbefehl SET TRACE auswählen. Mit SET TRACE können Sie mehrere Datenzellen tracen. Darüber hinaus können Sie Abschnitte von Berechnungsskripten mit einer Kombination aus SET TRACE mbrList (um die Berechnungstracing über eine Elementliste zu deaktivieren) und SET TRACE OFF (um die Berechnungstracing zu deaktivieren, bis ein neuer SET TRACE-Befehl im Skript vorkommt) verfolgen. Um den Befehl SET TRACE verwenden zu können, müssen Sie das Berechnungsskript außerhalb von Smart View mit Cube Designer, dem CLI-Befehl calc, einem Run Calculation-Job in der Essbase-Weboberfläche oder MaxL (Anweisung execute Calculation) ausführen.

In Sample Basic wird das folgende Berechnungsskript ausgeführt. Das Skript enthält einen SET TRACE-Befehl. Mit diesem Befehl wird die Protokollierung detaillierter Informationen für die Datenschnittmenge (Zelle) angefordert, die für die Produkt-SKU‑Nummer 100-10 im kalifornischen Markt budgetierte Umsätze darstellt.

SET TRACEID "id042"
SET TRACE ("100-10", "California", "Jan", "Sales", "Budget");
FIX("California", "Budget")
   "Sales" (
      "100-10" = @MEMBER(@CONCATENATE(@NAME(@PARENT("Product")), "-20")) / 10;
   );
ENDFIX;

Hinweis:

Der Befehl SET TRACEID wird ebenfalls empfohlen, um zu verhindern, dass die Calc Tracing-Datei überschrieben wird.

Sample Basic enthält zwei dünn besetzte Dimensionen: Product und Market. Die Elementformel gehört zu "Sales", einem Element der Dense-Dimension "Measures"-. Die Elementliste der FIX-Anweisung enthält nur ein dünn besetztes Element, nämlich "California" aus der Market-Dimension.

Die Anzahl der im FIX-Geltungsbereich vorhandenen Blöcke bestimmt, wie oft die getracte Zelle berechnet wird. In diesem Beispiel durchläuft die Berechnung alle vorhandenen Kombinationen des Elements "California" aus einer Sparse-Dimension. Jede dieser Kombinationen stellt einen Block dar.

Nach Abschluss der Berechnung wird die folgende Tracinginformationen protokolliert und in calc_trace_id042.txt angezeigt:

Tracing cell: [100-10][California][Jan][Sales][Budget]  (Cell update count: 1)
Previous value: 840.00
Dependent values: 
	[100-20][California][Jan][Sales][Budget] = 140.00
New value: [100-10][California][Jan][Sales][Budget] = 14.00

Computed in lines: [91 - 93] using:
"Sales"(
"100-10"=@MEMBER(@CONCATENATE(@NAME(@PARENT("Product")),"-20"))/10;
)

Tracing cell: [100-10][California][Jan][Sales][Budget]  (Cell update count: 2)
Block from FIX scope: [100-30][California]
Actual block used in calculation: [100-10][California]
Previous value: 14.00
Dependent values: 
	[100-20][California][Jan][Sales][Budget] = 140.00
New value: [100-10][California][Jan][Sales][Budget] = 14.00
Computed in lines: [91 - 93] using:
"Sales"(
"100-10"=@MEMBER(@CONCATENATE(@NAME(@PARENT("Product")),"-20"))/10;
)

Tracing cell: [100-10][California][Jan][Sales][Budget]  (Cell update count: 3)
Block from FIX scope: [200-10][California]
Actual block used in calculation: [100-10][California]
Previous value: 14.00
Dependent values: 
	[200-20][California][Jan][Sales][Budget] = 520.00
New value: [100-10][California][Jan][Sales][Budget] = 52.00
Computed in lines: [91 - 93] using:
"Sales"(
"100-10"=@MEMBER(@CONCATENATE(@NAME(@PARENT("Product")),"-20"))/10;
)

[...calc iterations 4-7 are omitted from example...]

Tracing cell: [100-10][California][Jan][Sales][Budget]  (Cell update count: 8)
Block from FIX scope: [400-30][California]
Actual block used in calculation: [100-10][California]
Previous value: 9.00
Dependent values: 
	[400-20][California][Jan][Sales][Budget] = 90.00
New value: [100-10][California][Jan][Sales][Budget] = 9.00
Computed in lines: [91 - 93] using:
"Sales"(
"100-10"=@MEMBER(@CONCATENATE(@NAME(@PARENT("Product")),"-20"))/10;
)

Die Logdatei zum Berechnungstracing bietet die folgenden Einblicke in die Berechnung der getracten Zelle:

  • Die getracte Zelle wurde mehrmals berechnet, und der Zellenwert wurde jedes Mal mit dem neuen Wert überschrieben (die Anzahl der gemeldeten Zellenaktualisierungen endet bei 8).

  • Vor der Berechnung hatte die Zelle den Wert 840.00.

  • Für jede Berechnung werden die abhängigen und neuen Werte gezeigt. Abhängige Werte stammen aus der Elementformel in der FIX-Anweisung.

  • Der endgültige Wert der getracten Zelle nach Abschluss aller Berechnungen ist 9. Er stellt aber den Wert des Produkts "400-20"->California geteilt durch 10 dar.

  • Für die aktualisierten Werte sind die Zeilen 91-93 des Berechnungsskripts verantwortlich, die eine Elementformel für Sales enthalten.

In allen durchlaufenen Blöcken wird "Sales" mit der folgenden Formel berechnet:

"100-10"=@MEMBER(@CONCATENATE(@NAME(@PARENT("Product")),"-20"))/10

Die Formel enthält links ein Element aus dünn besetzter Dimension, das zu einer Abweichung des tatsächlichen Berechnungsblocks gegenüber des anfänglichen FIX-Blocks führen könnte. Beispiel: Wenn die Berechnung "California"->"100-20" durchläuft, werden die tatsächlichen Berechnungen in "California"->"100-10" durchgeführt.

Die Tracelogeinträge mit den Bezeichnungen Block from FIX scope und Actual block used in calculation werden nur ausgegeben, wenn eine Diskrepanz zwischen den Blöcken in der FIX-Anweisung und dem in der Elementformel dargestellten Block besteht. Diese Logeinträge können Rückschlüsse auf die Ursache doppelter Berechnungen zulassen, sodass Sie Ihre Berechnungsskripte einfacher debuggen können.