
ABAP Tools - Arbeiten mit Eclipse (Informationen)
Bist du neu in den ABAP Development Tools, dann ist die Beschaffung der nötigen Informationen zu einem Objekt nicht immer einfach. In diesem Artikel zeigen dir wir ein paar Quellen dafür.
Inhaltsverzeichnis
In diesem Artikel gehen wir auf verschiedene Views und Shortcuts ein, damit du die bestmöglichen Informationen in der Entwicklung zur Hand hast.
Einleitung
Ein großer Teil der Entwicklungszeit geht in vielen Fällen für die Beschaffung von Informationen drauf. Wir navigieren durch Objekte, um an einen Typ, eine Länge, eine Dokumentation oder an andere Informationen zu kommen. Die ABAP Development Tools in Eclipse bieten verschiedene Möglichkeiten und Views, schneller an diese Informationen zu gelangen. Deshalb schauen wir uns einmal ein paar Views und ihre Möglichkeiten an.
Element Info
Den ersten Shortcut den wir dir empfehlen, ist die Verwendung von F2 auf jedem Objekt, worüber du Informationen erhalten möchtest. Dies blendet die Element Info ein und gibt dir Hinweise zum aktuell markierten Objekt. Schauen wir uns zum Beispiel einen Core Data Service im Quellcode an, dann erhalten wir Informationen wie das Client Handling, wie wir das Objekt erweitern können und natürlich die verschiedenen Spalten im View. Über die enthaltenen Objekte, wie zum Beispiel Datenelemente, können wir dann ebenfalls weiter navigieren, ohne das Objekt zu öffnen. Möchtest du dann ein Objekt im Editor öffnen, kannst du den markierten Button verwenden und das Objekt wird geöffnet.
Im nächsten Beispiel holen wir uns Informationen zu verschiedenen Variablen, die wir in der Methode GET_COUNTRY_FROM_INPUT verwenden. Da wir Clean ABAP verwenden, ist vielleicht erst einmal die Nutzung nicht immer klar. Öffnen wir eine Variable über die Element Info, dann erhalten wir eine Information zum Typ und ein Icon mit der Art der Variable. Da du am Anfang wahrscheinlich nicht alle Icons kennen wirst, findest du im Mouse-Over auch noch einmal die sprechende Beschreibung.
Viele Entwickler pinnen sich den View auch in einem leicht zugänglichen Bereich an und zeigen diesen die ganze Zeit an. Wenn du die markierte Synchronisierung aktivierst, dann musst du im Editor nur den Cursor auf ein Objekt, eine Variable oder etwas anderes mit Kontext legen und die Information wird sofort angezeigt. Spart den Druck auf die F2-Taste, kostet aber etwas Performance, da die Info immer angefordert wird.
Verwendungsnachweis
Im nächsten Schritt möchten wir Informationen zur Verwendung eines Objektes erhalten. Der Verwendungsnachweiß war schon immer zentraler Bestandteil der ABAP Entwicklung, um weitere Beispiele im System zu finden oder zu prüfen, wer noch deine Objekte verwendet. Dazu markierst du das Objekt und verwendest die Tastenkombination STRG + SHIFT + G oder du gehst per Rechts-Klick über das Kontextmenü.
Je nach Backend-System erhältst du noch eine Vorauswahl, in welchen Objekten du suchen möchtest, um die Menge weiter einzuschränken. In älteren Releases wirst du diese Funktion nicht finden.
Das Ergebnis wird dann im Search-View angezeigt. Dort hast du die Möglichkeit die Implementierung anzuzeigen, indem du das Objekt aufklappst. Das Ergebnis steht dir die ganze Zeit im View zur Verfügung, sodass du die Objekte in Ruhe durchsuchen kannst. Im View stehen dir weitere Optionen zur Verfügung, wie die Navigation, weitere Filter, Anzeige nach Paketen. So kannst du die Menge noch einmal weiter einschränken, um die passenden Objekte zu finden.
Relation Explorer
Möchtest du eine Übersicht über die verwendeten Objekte und Beziehungen machen? Dann kannst den Relation Explorer verwenden. Dieser gibt dir eine schnelle Übersicht, welche verschiedenen Objekte dein aktuelles Objekt verwendet. Schauen wir uns zum Beispiel unsere Klasse an:
So sehen wir zum Beispiel, welche Standard Datenelemente wir verwenden, wenn wir die Klasse zum Beispiel auf ein anderes System migrieren wollen oder sicherstellen, dass wir vom Standard entkoppelt arbeiten.
Outlines
Grundsätzlich findest du im Project Explorer unter einer Klasse die Outlines, allerdings musst du diese erst öffnen. Ist zum Beispiel das Objekt nicht synchronisiert, weil du eine Standard-Klasse offen hast, wären einige Schritte notwendig, um die Informationen zu erhalten.
Einfacher ist da die Verwendung des Outline-Views, da dieser dir die Informationen zum aktuellen Objekt lädt. Weiterhin hast du verschiedene Möglichkeiten die Sicht einzustellen, wie zum Beispiel die Methoden und Typen nach Namen zu Sortieren oder private Methoden/Attribute zu verstecken, wenn du nur mit dem öffentlichen Teil arbeitest.
Type Hierarchy
Wollen wir uns zum Beispiel zum Interface IF_XCO_CP_TM_DATE_FORMAT die entsprechenden Implementierungen anschauen, dann können wir das Über die Type Hierarchy machen. Dazu steht die die Tastenkombination F4 (ABAP Type Hierarchy) oder STRG + T (Quick Type Hierarchy) zur Verfügung. Ebenfalls findest du die Option im Kontextmenü recht weit oben. Hier einmal das Beispiel der Quick Type Hierarchy.
Der Unterschied der beiden Views ist, dass wir nach der Navigation mit der Quick Type Hierarchy keine Persistenz der Informationen in einem View haben. Wollen wir nur zu einem bestimmten Objekt navigieren, dann reicht diese Ansicht. Wollen wir verschiedene Klassen durchsuchen, solltest du die ABAP Type Hierarchy verwenden.
Beispiel
Hier findest du das Beispiel, welches wir für unseren Test verwendet haben. Wenn du die Klasse in deinem System nutzt, kannst du unsere Beispiele besser nachvollziehen. Wir verwenden dabei auch unsere eigene Implementierung der Systemfelder, wenn du die Klasse oder weitere Hinweise dazu möchtest.
CLASS zcl_bs_demo_tool_info DEFINITION
PUBLIC FINAL
CREATE PUBLIC.
PUBLIC SECTION.
INTERFACES if_oo_adt_classrun.
PRIVATE SECTION.
METHODS get_country_from_input
IMPORTING country_id TYPE land1
RETURNING VALUE(result) TYPE i_country.
METHODS validate_country
IMPORTING country_id TYPE land1
RETURNING VALUE(result) TYPE abap_boolean.
ENDCLASS.
CLASS zcl_bs_demo_tool_info IMPLEMENTATION.
METHOD if_oo_adt_classrun~main.
DATA(country) = get_country_from_input( 'US' ).
IF validate_country( country-Country ) = abap_false.
out->write( `Country is not home` ).
ENDIF.
out->write( country-BankPostalCheckRule ).
DATA(date) = xco_cp=>sy->date( )->as( xco_cp_time=>format->abap )->value.
out->write( date ).
ENDMETHOD.
METHOD get_country_from_input.
SELECT SINGLE FROM I_Country
FIELDS *
WHERE Country = @country_id
INTO @result.
IF zcl_syst=>create( )->return_code( ) <> 0.
CLEAR result.
ENDIF.
ENDMETHOD.
METHOD validate_country.
RETURN xsdbool( country_id = 'DE' ).
ENDMETHOD.
ENDCLASS.
Fazit
Es gibt viele verschiedene Möglichkeiten, um schnell an Informationen während der Entwicklung zu kommen. Nutzt du sie effektiv während der Entwicklung, kannst du so viel Zeit sparen und musst nicht oft zwischen verschiedenen Objekten navigieren.