NextLytics Blog

Advanced Formula Debugging mit SAP Analytics Cloud

Geschrieben von Chris Fidanidis | 13.04.2023 08:26:54

Mit dem neuen Update von SAP Analytics Cloud kommt nun endlich die langersehnte Möglichkeit, erweiterte Formeln (advanced formulas) zu debuggen. Dabei kann der Entwickler sogenannte Tracepoints setzen, um nach der Ausführung der Datenaktion die Resultate zu prüfen. Die dabei gewonnenen Erkenntnisse helfen, die Datenaktion zu verbessern und eventuelle Probleme zu beheben.

Allerdings gibt es einige Besonderheiten, die Sie als erfahrener Entwickler berücksichtigen sollten. So wird im Gegensatz zu Debugging in FOX oder ABAP die Ausführung der Datenaktion nicht angehalten. Vielmehr können Sie ex post die Änderungen analysieren. Es werden auch keine Daten physisch verändert. Stattdessen wird mit einer dedizierten Tracing Version gearbeitet.

In diesem Artikel gehen wir im Detail auf die Funktionsweise von Tracing in erweiterten Formeln ein. Sie lernen, wie Sie Tracepoints setzen können, was Sie beim Debugging von Schleifen berücksichtigen müssen und wie Sie die Resultate des Tracings analysieren können.

Wie kann ich Tracepoints setzen

Wie bereits erwähnt, wird das Debugging in SAP Analytics Cloud (SAC) auf der Grundlage von Tracepoints ausgeführt. Nach der Ausführung der Datenaktion im Trace-Modus können Sie die Datenänderungen zwischen den einzelnen Tracepoints überprüfen und so Rückschlüsse auf das Verhalten von Ihrem Code ziehen.

Um einen Tracepoint zu erstellen, klicken Sie in Ihrem Skript auf den linken Rand neben der Zeilennummer. Der rote Indikator (Hier protokollieren) erscheint und wird anschließend ausgeblendet. Wenn Sie Ihre Maus über den Tracepoint bewegen, wird er wieder sichtbar. Wie Sie auf dem Screenshot sehen können, erscheint der Indikator am Ende der Zeile. Dies weist darauf hin, dass Sie die Ergebnisse nach der Ausführung von diesem Befehl sehen werden.

Sie können auch Tracepoints vor den einzelnen Schritten oder danach definieren. Klicken Sie dazu auf den Verbindungspfeil zwischen den Schritten im linken Bereich der Datenaktion.

Um einen Tracepoint zu entfernen, können Sie ihn einfach erneut anklicken. Alternativ können Sie den Protokollierungsbereich nutzen. Wenn Sie die Maus über einen Tracepunkt bewegen, erscheint das X Symbol zum löschen des Tracepoints.

Sie können den Protokollierungsbereich auch nutzen, um zwischen den einzelnen Tracepoints im Code zu springen. Wenn Sie auf einen Tracepoint klicken, wird der jeweilige Schritt im Skript ausgewählt.

Beachten Sie bitte auch die folgenden Einschränkungen. So können Tracepoints nicht im grafischen Editor gesetzt werden können. Dies ist nur in der Skript Ansicht möglich. Darüber hinaus können Sie maximal 20 Tracepoints setzen. Diese Anzahl sollte jedoch für die meisten Skripte ausreichen.

Debugging von Schleifenkonstrukten

Wenn Sie in Ihrer erweiterten Formel Schleifenkonstrukte wie FOREACH, FOREACH.BOOKED oder FOR verwenden, und diese debuggen möchten, ist das Vorgehen etwas anders.

So müssen Sie sogenannte Bedingte Protokollierungspunkte festlegen. Dabei können Sie maximal 10 Tracepoints festlegen.

Bei der Ausführung des Traces werden die Ergebnisse nur für ausgewählte Iterationen zur Verfügung stehen.

Wie Sie die Ergebnisse einsehen und analysieren können, erkläre ich im nächsten Abschnitt.

Resultate des Tracings analysieren

Nachdem Sie die gewünschten Tracepoints gesetzt haben, können Sie den Trace ausführen, um die Ergebnisse zu überprüfen. Wechseln Sie dazu zur Protokollierungs-Sicht.

Hier können Sie die gesetzten Tracepoints nochmals prüfen und den Trace starten.

Nachdem Sie in der Eingabeaufforderung die Parameter für Ihre Variablen festgelegt haben, wird die Datenaktion im Trace-Modus ausgeführt. Beachten Sie bitte, dass dabei die von Ihnen ausgewählte Zielversion nicht verändert wird. Das System legt stattdessen eine dedizierte Protokollierungsversion an, die alle Änderungen enthält.

SAP Planungswerzeuge im Vergleich -
SAP BW IP vs. BPC vs. SAC 

Im Beobachtungsbereich können Sie die Ergebnisse einsehen. Unter Parameter sehen Sie die für die Ausführung gültigen Parameterwerte. Dies beinhaltet die Parameter, die in den Einstellungen der Datenaktion festgelegt wurden, sowie die in der Eingabeaufforderung ausgewählten Werte.

Unter Variablen sehen Sie die Werte von Zahlenvariablen vom Typ «Float» bzw. «Ganzzahl». Dazu zählt zum Beispiel der Umwertungsfaktor.

 

Unter Berechnungsumfang können Sie anhand von Dimensionen den genauen Umfang der Berechnung einsehen. Falls nur ein Element der Dimension betroffen ist, wird nur dessen ID angezeigt. Falls für eine Dimension mehrere Elemente vorhanden sind, wird deren Anzahl angezeigt. Indem Sie auf die Anzahl klicken, können Sie eine Liste der verwendeten Elemente einsehen.

Unter Lookup können Sie virtuelle Variablenelemente, wie zum Beispiel #TotalQuantity, einsehen. Nachdem Sie auf die Anzahl der Zeilen klicken, wird eine Tabelle mit den Daten angezeigt.

Neben diesen Informationen bietet SAP Analytics Cloud auch ein Analysefenster an, welches Sie über den Button “Tabelle einblenden” erreichen. Dieses zeigt die Daten für einen bestimmten Tracepoint in einem story-ähnlichen Tabellenlayout an. Hier können Sie die Zeilen, Spalten und Filter konfigurieren, um die gewünschte Ansicht zu erreichen. Wenn Sie zwischen den Tracepoints schalten, werden die Änderungen in gelb hervorgehoben.

Wenn Sie mit großen Datenmengen arbeiten, empfiehlt SAP das Tracing in der Story selbst statt in dem Analysefenster auszuführen. Im nächsten Abschnitt zeige ich Ihnen, wie es geht.

Tracing in der Story

Wie Sie bereits wissen, wird zur Darstellung des Trace Protokolls eine Tracing Version erstellt. Diese Version kann in der Story eingesehen werden. Dies ist vor allem bei vielen Ausprägungen sinnvoll.

Indem Sie die relevante Tabelle auswählen, können Sie über die Versionsverwaltung und Verlauf die vorgenommene Änderungen nachvollziehen.

Nutzen Sie dazu die Bearbeitungschritte, die die von Ihnen gesetzten Tracepoints repräsentieren. Indem Sie die Schritte von unten nach oben durchgehen, sehen Sie die Änderungen direkt in der Story.

Debugging Funktion - Unser Fazit

Die Debugging Funktion in SAP Analytics Cloud (SAC) war etwas, was ich mir schon seit Jahren gewünscht habe. Denn die Scripting Logik in SAC ist vor allem für Leute, die aus der FOX Programmierung kommen, gewöhnungsbedürftig. Daher ist es wichtig, schrittweise nachvollziehen zu können, was der gerade erstellte Code eigentlich macht und warum die Ergebnisse von dem erwarteten Resultat abweichen.

Nun hat SAP endlich geliefert. Auch wenn der Tracing Ansatz von dem bekannten ABAP Debugging abweicht, ist es doch hilfreich und erlaubt einem Einblicke in die Funktionsweise des Skripts. Somit ist SAC einen Schritt näher dran, eine vollwertige Planungsfunktionalität zu bieten.

Möchten Sie mehr über Planungsmöglichkeiten von SAP Analytics Cloud erfahren? Oder benötigen Sie Unterstützung bei einer konkreten Fragestellung? Dann fordern Sie noch heute ein unverbindliches Beratungsangebot an!