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.