Eclipse & ABAP Development Tools (ADT)

  • Schulung: Eclipse & Modern ABAP
  • Fokus dieses Foliensatzes:
    • Eclipse als Entwicklungsplattform
    • ABAP Development Tools (ADT)
    • Navigation, Suchen, Entwicklung
    • Refactoring & Debugging
    • Moderne Features wie ABAP Cleaner

Lernziele

Nach diesem Modul kannst du …

  • Eclipse & ADT in der ABAP-Entwicklung einordnen
  • dich sicher im Eclipse-UI bewegen
  • ABAP-Objekte effizient suchen und öffnen
  • typische Entwicklungsaufgaben in Eclipse erledigen
  • Refactoring- und Debugging-Tools gezielt nutzen
  • den ABAP Cleaner sinnvoll einsetzen

Was ist Eclipse?

  • Eclipse = generische, freie Entwicklungsplattform
    • Open Source, Eclipse Foundation
    • Erweiterbar über Plugins
  • ABAP Development Tools (ADT):
    • SAP-Plugin für ABAP-Entwicklung
    • Weitere SAP-Plugins: BW-Modellierung, HANA-Tools usw.
  • Eclipse ist nicht nur für ABAP, sondern z.B. auch für
    • Java, C/C++, Python und viele weitere Sprachen

Installation & Versionen

  • Eclipse wird häufig zentral im Unternehmen verteilt
  • Wichtiger Punkt: Kompatibilität zur Backend-Version
    • Eclipse-Version sollte in der Regel neuer sein als das ABAP-Backend
  • ADT-Updates kommen häufiger (Cloud-first)
  • Praxisempfehlung:
    • Ca. 1× pro Jahr ein Update reicht meist
    • Nicht jede Quartalsversion ist notwendig

Workspace-Konzept

  • Workspace = lokaler Ordner auf deinem Rechner
    • Enthält:
      • Projekte und Systeme
      • Eclipse-Einstellungen
      • Lokale Kopien von Quelltexten
      • Lokale Historie von Dateien
  • Best Practices:
    • Workspace immer lokal, nicht auf Netzlaufwerk
    • Kann als ZIP auf einen neuen Rechner mitgenommen werden
    • Beim Start: Workspace wählen, ggf. „immer diesen Workspace verwenden“

Perspektiven & Ansichten

  • Perspektive = vordefiniertes Layout für bestimmte Tätigkeiten
    • ABAP-Perspektive für Entwicklung
    • Debug-Perspektive für Debugging
  • Views (Ansichten):
    • Project Explorer, Outline, Problems, Console, Feed Reader, …
    • Können frei angeordnet, angedockt oder abgetrennt werden
  • Nützliche Aktionen:
    • Window → Show View (Ansichten hinzufügen)
    • Reset Perspective (Layout zurücksetzen)
    • Eigene Perspektive speichern (z.B. mit Element-Info-View)

Editor vs. Ansichten

  • Editor-Bereich:
    • Zeigt Quelltexte (Klassen, Programme, CDS-Views, Tabellen, …)
    • Bleibt beim Perspektivenwechsel erhalten
  • Ansichten (Views):
    • Bieten Zusatzinfos & Werkzeuge
    • z.B. Project Explorer, Element-Info, Properties, Problems, Bookmarks
  • Unterschied zur SAP GUI:
    • In Eclipse ist alles quellcodebasiert
    • In SAP GUI viel formularbasierte Darstellung

Navigation im Projekt-Explorer

  • Project Explorer:
    • Einstiegspunkt in Systeme & Pakete
    • Zeigt deine ABAP-Projekte (Systemverbindungen)
  • Favoriten:
    • Häufig genutzte Pakete & Objekte als Favoriten anlegen
    • Schneller Zugriff ohne lange Systemhierarchie
  • Empfehlung:
    • Eigene Struktur nach Arbeitsbereichen aufbauen
    • Namensräume/Pakete oben halten, mit denen du viel arbeitest

Element-Info & Link mit Editor

  • Element-Info View:
    • Zentrales Werkzeug zum Verständnis von Objekten
    • Anzeigen von:
      • Typdefinitionen, Methoden-Signaturen
      • DDIC-Infos (Datenelement, Domäne, Längen, Beschreibung)
  • Öffnen:
    • Window → Show View → Other… → Element Info
    • Oder F2 als Quick-Info direkt im Editor
  • Link mit Editor:
    • Synchronisiert z.B. Outline/Element-Info mit aktuellem Editor

Navigation mit Tastatur

  • Wichtige Navigationstechniken:
    • Strg+Klick: Sprung zur Definition/Implementierung
    • Alt+Pfeil links/rechts: Navigation in der Sprunghistorie
    • Strg+Tab: Wechsel zwischen geöffneten Editortabs
  • Unterschied zu SAP GUI:
    • Doppelklick markiert in Eclipse einen Bezeichner
    • Navigation erfolgt über Strg+Klick, nicht über Doppelklick
  • Ziel:
    • Möglichst effizient ohne Maus arbeiten

Objekte suchen und öffnen

  • „Open ABAP Development Object“ (z.B. Strg+Shift+A)
    • Objektname eingeben, Auto-Vervollständigung nutzen
  • Filtermöglichkeiten:
    • Objekttyp, Paket, Besitzer, Änderungsdatum
    • Mehrere Filter mit Komma trennen (z.B. *ZCL*,*YCL*)
  • Allgemeine Suche:
    • Volltextsuche in Projekten
    • Einschränkung auf bestimmte Dateitypen möglich

Entwicklung im Editor

  • Typische Aufgaben:
    • Anlegen von Klassen und Interfaces
    • Implementierung direkt im Quelltext
    • Methoden aus Signatur heraus generieren
  • Hilfen:
    • Code-Vervollständigung mit Strg+Leertaste
    • ABAP-Doc für Dokumentation von Methoden/Klassen
    • Pretty Printer / Formatierer für einheitliches Layout
  • Ausführen:
    • Lokale Testklassen/Runner per Tastenkombination starten

Zusätzliche Tools

  • Bookmarks:
    • Lesezeichen im Code für späteren Schnellzugriff
  • Properties-Ansicht:
    • Metadaten zu ausgewählten Objekten
  • Problems-Ansicht:
    • Fehler und Warnungen aus Syntaxcheck/Build
    • Filterbar nach Schweregrad oder Projekt
  • Templates:
    • Vordefinierte Codebausteine (z.B. TRY–CATCH)
    • Eigene Templates definierbar
  • Feed Reader:
    • Anzeige von Dumps, Gateway-Fehlern, Systemmeldungen
  • Transport Organizer:
    • Transportaufträge einsehen, neue Anfragen erstellen

Refactoring-Werkzeuge

  • Quick Fix (Strg+1):
    • Unbenutzte Variablen löschen
    • Typen/Variablen automatisch anlegen
  • Umbenennen (Rename):
    • Variablen, Methoden, Klassen konsistent umbenennen
  • Methoden extrahieren:
    • Langen Code in kleinere Methoden zerlegen
  • Lokale Historie:
    • Eclipse speichert Versionen der Datei lokal
    • Vergleich & Rücksetzen möglich
  • Vergleiche:
    • Versionen lokal vs. Backend
    • Objekte in verschiedenen Systemen vergleichen

Debugging-Grundlagen

  • Start des Debuggers:
    • Über Breakpoint in Code
    • Über expliziten Debug-Start aus der Anwendung
  • Debug-Perspektive:
    • Call Stack, Variables, Breakpoints, Expressions, …
  • Grundbegriffe:
    • Breakpoint: Haltepunkt im Code
    • Step Into / Over / Return: Schrittweise Ausführung
    • Call Stack: Aufrufhierarchie von Programmen und Methoden

Breakpoints und Einstellungen

  • Breakpoint-Typen:
    • Benutzer-Breakpoints
    • Externe Breakpoints (z.B. für OData/HTTP-Aufrufe)
    • Breakpoints auf Exceptions oder Nachrichten
  • Einstellungen:
    • System-Debugging für Systemcode
    • Update-Debugging für Update-Tasks
    • Einschränkung auf bestimmte Projekte oder Benutzer
  • Eigenschaften:
    • Aktiv/Deaktiv
    • Bedingungen (Conditional Breakpoints)
    • Gültigkeitsbereich (z.B. nur für aktuellen Benutzer)

Debugging: Werte & Layout

  • Variablen-Ansicht:
    • Lokale Variablen, globale Attribute, statische Attribute
  • Interne Tabellen:
    • Vollständige Anzeige mit Filtermöglichkeiten
    • „Pinning“ für parallele Anzeige mehrerer Tabellen
  • Werte ändern:
    • Skalare Variablen direkt im Debugger editieren
    • Tabelleneinträge hinzufügen/ändern/löschen
  • Layout:
    • Debug-Views neu anordnen
    • Eigenes Debug-Perspektivenlayout speichern

Debugging: Speicher & Performance

  • Speicheranalyse:
    • Memory Inspector zur Analyse des Speicherverbrauchs
    • Hilfreich bei Performance- oder Out-of-Memory-Problemen
  • Automatic Refresh:
    • Automatische Aktualisierung der Speicheransicht
    • Kann Performance beeinflussen
  • Typische Einsatzszenarien:
    • Große interne Tabellen identifizieren
    • Speicherverhalten vor/nach Operationen vergleichen

Moderne Features in Eclipse

  • Unterstützung moderner ABAP-Features:
    • Inline-Deklarationen mit DATA(...)
    • Konstruktor-Ausdrücke im Editor mit Autovervollständigung
    • ABAP-Doc mit Template-Unterstützung
  • Produktive Editorfunktionen:
    • Block-Editor / Spaltenmodus für Mehrfachbearbeitung
    • Multi-Cursor-Bearbeitung
  • Hilft, Modern-ABAP-Stil effektiv umzusetzen

ABAP Cleaner

  • Motivation:
    • Jahrzehnte gewachsene ABAP-Codebasis
    • Heterogene Stilrichtungen in Projekten
  • ABAP Cleaner:
    • Community-Tool, angelehnt an Clean-ABAP-Richtlinien
    • Über 100 Regeln zur automatischen Codebereinigung
  • Beispiele für Regeln:
    • APPENDINSERT INTO TABLE
    • Entfernen von unnötigen RECEIVING/EXPORTING
    • Vereinheitlichung von Einrückung und Zeilenumbrüchen

ABAP Cleaner im Team

  • Profile:
    • Regeln zu Profilen bündeln (z.B. „Team-Standard“)
    • Export/Import von Profilen im Projekt
  • Einsatzmodi:
    • Vorschau mit manueller Auswahl der Änderungen
    • Vollautomatische Bereinigung nach Profil
  • Team-Aspekt:
    • Gemeinsames Profil verhindert Code-Ping-Pong
    • Empfehlung: vor Check-in einmal ABAP Cleaner ausführen

Zusammenfassung Eclipse & ADT

  • Eclipse + ADT ist die moderne Standardumgebung für ABAP
  • Wichtige Bausteine:
    • Perspektiven, Views und Editor verstehen
    • Navigation und Suchfunktionen beherrschen
    • Refactoring- und Debugging-Tools nutzen
    • ABAP Cleaner zur Vereinheitlichung einsetzen
  • Nächste Schritte:
    • Eigenen Workspace einrichten
    • Erste Projekte/Objekte in Eclipse bearbeiten
    • Alten Code schrittweise modernisieren