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 auch in der Datei 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 das 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:
Der gesamte Umfang der Berechnung im Skript wird berechnet, aber nur der Kontext der markierten Datenzelle wird bei der Berechnung verfolgt.
Wenn die markierte Datenzelle nicht bei der Berechnung geändert wurde, wird dies in einer Meldung angegeben.
SET TRACE mbrList
(um das Berechnungstracing über eine Elementliste zu aktivieren) und SET TRACE OFF
(um das Berechnungstracing zu deaktivieren, bis ein neuer SET TRACE-Befehl im Skript vorkommt). Um den SET TRACE-Befehl zu verwenden, müssen Sie das Berechnungsskript außerhalb von Smart View mit Cube Designer, mit dem CLI-Befehl calc, mit dem Job Berechnung ausführen in der Essbase-Weboberfläche oder mit MaxL (execute calculation-Anweisung) ausführen.In Sample Basic wird das folgende Berechnungsskript ausgeführt. Das Skript enthält einen SET TRACE-Befehl, mit dem die Protokollierung detaillierter Informationen für die Schnittmenge (Zelle) angefordert wird, die die für die Produkt-SKU-Nummer 100-10 im Januar im kalifornischen Markt budgetierten 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 SET TRACEID-Befehl wird auch empfohlen, um zu verhindern, dass Ihre Berechnungstracingdatei ü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 werden die folgenden 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 Titeln 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.