Show TOC

Diff-ToolLocate this document in the navigation structure

Verwendung

Kurzzusammenfassung

Das Diff Werkzeug (Diff-Tool) dient zum Vergleich zweier beliebiger ABAP Datenstrukturen.

So können z.B. zwei interne Tabellen, Strukturen, Objektinstanzen, oder auch Strings verglichen werden.

Hierbei werden typartige Unterschiede (z.B. Unterschiedliche Tabellentypen) wie auch inhaltliche Unterschiede tabellarisch dargestellt.

Zusätzlich besteht die Möglichkeit die beiden zu vergleichenden Variablen in den jeweiligen passenden Detailsichten anzuzeigen.

Diese Detailsichten sind mit dem Diff-Tool verbunden und synchronisiert. Das bedeutetet ein Doppelklick auf einen Treffer im Diff-Tool aktualisiert automatisch die Detailanzeigen, welche dann diesen Unterschied präsentieren.

Detailbeschreibung und Verwendungshinweise

Das Diff-Tool ist ein ganz normales Debugger Werkzeug welches auf allen Desktops ( Arbeitsbereichen ) eingeblendet werden kann. (Zu finden unter Spezialwerkzeuge)

Es existieren aber zwei Besonderheiten:

  • Es kann nur eine Instanz des Diff-Tools pro Desktop angezeigt werden

  • Es existiert ein dediziertes "Diff-Desktop" um mit dem Diff-Tool Variablen- Vergleiche durchzuführen

Das Diff-Tool besteht aus zwei Hauptbereichen:

  • "Historie": Hier finden sich alle Variablenpaare die bisher verglichen wurden. Ein Doppelklick auf eines dieser Paare startet einen erneuten Vergleich an

  • "ABAP Variablen vergleichen": Dies ist die eigentliche Arbeitsoberfläche um Variablen zu vergleichen

Variablen Vergleich - Vorgehensweise und Beschreibung

Im Bereich "ABAP Variablen vergleichen" finden sich zwei eingabebereite Felder "Variable1" und "Variable2. In diese trägt man die Bezeichner der beiden zu vergleichenden Variablen ein.

Nach Bestätigung der Eingabe werden die derzeitigen Inhalte der Variablen rechts neben der Eingabefelder präsentiert.

Falls die beiden Variable nicht existieren oder für einen Vergleich nicht geeignet sind, wird eine entsprechende Fehlermeldung ausgegeben und neben den Variablen erscheint eine Ikone welche die Typunterschiede verdeutlicht.

Es können folgende Variablentypen verglichen werden:

  • Einfacher Datentyp (C,N,D,T,I,P,F) mit einfachem Datentyp

  • Einfacher Datentyp mit String, XString

  • Struktur mit Struktur

  • Interne Tabelle mit interner Tabelle (Kopfzeile beachten !)

  • Objektreferenz mit Objektreferenz

  • Datenreferenz mit Datenreferenz

Falls beide Variablen existieren und für den Vergleich geeignet sind erscheinen, nach Bestätigung der Eingabe, unter den Variablen folgende Schaltflächen / Eingabefelder:

  • Die Schaltfläche "Vergleich starten" )zum Anstarten des Typ- und Wertvergleichs

  • Die Schaltfläche(Ikone) "Variablen anzeigen"( ) öffnet die für die beiden Variablen passenden Detailsichten und synchronisiert diese.

  • Das Eingabefeld "Max. Trefferanzahl" ermöglicht eine Limitierung der Treffer. Falls schon eine Ergebnisliste vorliegt bewirkt eine Änderung der maximalen Trefferanzahl einen automatischen Neustart des Vergleichs mit den neuen Einstellungen.

Nach Anstarten des Vergleichs werden die gefundenen Unterschiede tabellarische präsentiert.

Hierbei ist folgendes zu beachten:

  • Beim Wertvergleich wird die Semantik des ABAP Befehls "IF" verwendet. Das bedeutet zwei Variablen gelten als wertgleich wenn auch der IF Befehl Gleichheit feststellen würde

  • Um die Laufzeit zu limitieren wird für Unterkomponenten vom Typ Tabelle, Objektreferenzen, Datenreferenzen kein Tiefenvergleich durchgeführt. Es wird in diesen Fällen nur überprüft ob die beiden Elemente unterschiedlich sind ohne aber Details über die Unterschiede zu liefern. In der Ergebnisliste findet sich für diese Unterelemente die Schaltfläche "Vergleich anstarten" ) um durch einen erneuten Diff-Lauf Details bzgl. der Unterschiede zu erhalten. Über die "Historie" kann zu den ursprünglichen Ergebnisliste zurückgekehrt werden.

Aufbau der Ergebnisliste(Spalten):

  • Index

  • Diff: Für abgebrochen Tiefenvergleiche (Unterkomponenten mit den Typen Tabelle, Objektreferenzen, Datenreferenzen) findet sich hier die Schaltfläche "Vergleich anstarten" ) um durch einen erneuten Diff-Lauf Details bzgl. der Unterschiede zu erhalten.

  • Genereller Unterschied: Typunterschiede werden mit einem Ausrufezeichen ( ) markiert.

  • Beschreibung: Erläuternder Text

  • Fundstelle: Benennung der genauen Komponente der Variable inklusive Offset und Längenangabe in welcher der Unterschied gefunden wurde

  • <Variable1> und <Variable2>: In den Überschriften dieser Spalten finden sich die beiden ursprünglichen Variablennamen. In den jeweiligen Trefferzeilen wird der Wert der Fundstelle angezeigt

Anzeige der Treffer in den Detailsichten

Für die verschiedenen ABAP Datentypen stehen im Neuen ABAP Debugger spezialisierte Detailsichten zur Verfügung (z.B. für interne Tabellen die Tabellenanzeige ).

Im Diff-Tool können jederzeit die beiden zu vergleichenden Variablen in den zugehörigen Detailsichten angezeigt werden. (-> Schaltfläche "Variablen anzeigen" ).

Die beiden Detailanzeigen sind mit dem Diff-Tool verbunden und synchronisiert.

Synchronisiert bedeutet in diesem Zusammenhang, dass z.B. ein Scrollen in der Detailanzeige 1 ein synchrones Scrollen in Detailanzeige 2 zur Folge hat.

Diese Synchronität und Verbundenheit mit dem Diff-Tool wird in den Detailsichten durch die Ikone "Verbunden mit Diff Tool"( ) verdeutlicht.

Sobald eine Detailsicht explizit geschlossen, oder durch den User eine andere Variable in der Detailsicht angezeigt wird, wird die Verbindung zum Diff-Tool gelöst und die Detailsichten sind wieder völlig autark.

Diese Trennung vom Diff-Tool kann auch explizit über der Service Funktion "Trenne Detailanzeigen" des Diff-Tools erreicht werden.

Ein Doppelklick auf einen der Treffer führt dazu, dass in den passenden Detailsichten diese Fundstelle präsentiert wird. Mit den Blätterikonen( ) kann zum nächsten Treffer navigiert werden.

In den Services( Werkzeugdienste ) zum Werkzeug Diff-Tool findet sich die Standardfunktionalität zum Suchen in den Treffern wie auch die Möglichkeit die Trefferliste in eine lokale Datei zu sichern.