ABAP in Eclipse

Gesamtüberblick

  • ABAP-Entwicklung mit den ABAP Development Tools (ADT) in Eclipse
  • Ersatz und Ergänzung zur klassischen SE80 in der SAP GUI
  • Fokus:
    • Projekte & Systemverbindungen
    • Navigation & Suchen
    • Programmieren & Refactoring
    • Debugging
    • Shortcuts & Tipps

Agenda Eclipse

  • Einführung: Eclipse & ADT
  • Installation, Plug-ins & Workspace
  • Eclipse-Projekte und Systemverbindungen
  • Navigation, Working Sets & eigene Bäume
  • Suchen in Eclipse (Objekte & Volltext)
  • Programmieren mit ADT, Refactoring & Templates
  • Debugging in Eclipse
  • Wichtige Shortcuts
  • Zusammenfassung & Ressourcen

Warum ABAP in Eclipse?

  • Eclipse ist eine generische, erweiterbare IDE
    • Open Source, Plugin-basiert
  • ADT bringt ABAP vollständig in diese IDE
    • Klassen, Programme, CDS, RAP, SQL, Debugging, Testen, …
  • Vorteile gegenüber der SAP GUI
    • Moderner Editor, bessere Navigation, Refactoring-Features
    • Einheitliche Oberfläche für verschiedene Technologien
  • Strategie von SAP
    • Neue Features kommen zuerst in ADT
    • SE80 wird langfristig eher „Wartungsmodus“

Eclipse & ADT im Überblick

  • Eclipse selbst ist sprachneutral
    • Wird auch für Java, C/C++, Model-Driven Development etc. genutzt
  • ABAP Development Tools (ADT)
    • Plugin für ABAP-Entwicklung
    • Weitere SAP-Plugins: BW, HANA, Cloud-Tools, RAP-Modellierung
  • Versionen & Updates
    • Eclipse-Version sollte mindestens so aktuell sein wie das Backend
    • In vielen Firmen: 1× pro Jahr ein Update ausreichend
  • Empfehlung
    • ADT-Leitfaden der DSAG als Referenz für Best Practices

Installation und Plug-ins

  • Eclipse-Installation
    • In vielen Unternehmen zentral verteilt
    • Ansonsten: Download „Eclipse IDE for Enterprise Java and Web Developers“
  • ADT installieren
    • Über „Install New Software…“ und ADT-Update-Site
  • Weitere Plug-ins nach Bedarf
    • z.B. Code-Analyse, Git-Integration, XML-/YAML-Editoren
  • Typischer Screenshot der Plug-in-Installation:

Menü: Installation von Plug-Ins

Workspace-Konzept

  • Workspace = lokaler Ordner mit allen wichtigen Einstellungen:
    • Projekte und Systemverbindungen
    • Eclipse-Einstellungen (Themes, Fonts, Tastenkürzel)
    • Lokale Historie von Dateien
  • Best Practices
    • Workspace lokal auf dem Rechner, nicht auf Netzlaufwerken
    • Workspace kann auf neuen Rechner kopiert werden
    • Beim Start von Eclipse gewünschten Workspace auswählen
  • Screenshot Workspace-Übersicht:

Workspace und Projekte

Oberfläche: Views und Perspektiven

  • Oberfläche besteht aus:
    • Views (z.B. Project Explorer, Outline, Problems, Console)
    • Editoren (Quelltext im Hauptbereich)
  • Views können:
    • Angedockt, verschoben, abgetrennt werden
    • Über „Window → Show View → Other…“ hinzugefügt werden
  • Perspektiven
    • Vordefinierte Anordnungen von Views für einen Zweck (ABAP, Debug, Git, …)
    • Unten rechts als Symbolleiste sichtbar
  • Beispiel-Views in ADT:

Views und Perspektiven

Perspektiven speichern und zurücksetzen

  • Eigene Perspektiven
    • Besonders gelungene View-Anordnungen unter eigenem Namen speichern
    • Z.B. „Debug-Layout“, „CDS-Layout“ etc.
  • Zurücksetzen
    • Wenn „verkonfiguriert“: über „Reset Perspective…“ wieder auf Standard zurück
  • Beispiel-Screenshots:
    • Perspektivenleiste und Perspektiven-Dialog
    • Gespeicherte Perspektiven-Auswahl

Perspektiven verwalten

Perspektivenleiste

Aufbau der ADT-Oberfläche

  • Typische Aufteilung:
    • Links: Navigation (Project Explorer, Favoriten, Working Sets)
    • Rechts oben: Editoren für Quellcode, DDIC, CDS, SQL, …
    • Unten: zusätzliche Infos (Problems, Console, Transport Organizer, Feed Reader)
  • Navigations- und Editorbereich sind synchronisierbar:
    • „Link with Editor“ sorgt für Hervorhebung des geöffneten Objekts im Explorer
  • Ziel:
    • Möglichst viel relevanter Kontext gleichzeitig im Blick behalten

Was sind Eclipse-Projekte?

  • Eclipse-Projekt = Verbindung zu einem SAP-System
    • Beinhaltet die ABAP-Entwicklungsobjekte eines Backends
  • Pro System können mehrere Projekte sinnvoll sein
    • Z.B. Trennung nach Mandanten, Rollen oder Produktlinien
  • Änderungen am Quellcode werden direkt im Backend gespeichert
  • ABAP-Projekte ersetzen die Transaktionen SE80/SE38 als Einstiegspunkt

ABAP-Projekt anlegen

  • Ablauf:
    • Rechtsklick im Project Explorer → „ABAP Project…“
    • System aus der Liste oder per Filter auswählen
    • Verbindungseinstellungen prüfen (z.B. Host, Instanz)
  • Screenshot aus dem Projekt-Anlege-Dialog:

ABAP Project anlegen

Systemdaten prüfen

  • Im Anlagedialog werden wichtige Systeminformationen angezeigt:
    • System-ID, Beschreibung, Mandanten, Unicode-Status
    • Benutzer- und ACL-Informationen
  • Vor dem Anlegen prüfen:
    • Ist es das richtige System (DEV/QA/PRD)?
    • Stimmt die Systemrolle?
  • Beispiel-Screenshot „Systemdaten prüfen“:

Systemdaten prüfen

Benutzer, Mandant und Sprache

  • Beim ersten Verbinden unbedingt prüfen:
    • Benutzername
    • Passwort
    • Mandant
    • Sprache
  • Wichtig:
    • Client ist häufig nicht vorbelegt
    • Sprache beeinflusst Textobjekte (Textpool, Nachrichten, Hilfetexte)
  • Screenshot zum Eintragen der Zugangsdaten:

Eintragen von Name, Sprache, Passwort und Mandant

Navigation: Editor und Explorer

  • Project Explorer
    • Einstieg in Pakete, Klassen, Programme, CDS-Views
    • Favoriten für häufig benötigte Pakete/Objekte
  • Link mit Editor
    • Markiert das aktuell im Editor geöffnete Objekt im Explorer
  • Outline
    • Zeigt Methoden, Attribute und lokale Klassen der aktuellen Klasse
  • Beispiel „Link Editor ↔ Navigation“:

Editor & Navigation verknüpfen

Eigene Bäume und Working Sets

  • Eigene Bäume
    • Spezielle Explorer-Views für bestimmte Use-Cases
    • Z.B. nur eigene Pakete, nur RAP-Objekte, nur Test-Code
  • Working Sets
    • Gruppieren von Projekten/Objekten z.B. nach Kunde, Produkt oder Team
    • In großen Systemlandschaften sehr hilfreich
  • Screenshots:
    • Eigene Bäume in einer speziellen View
    • Working-Set-Dialog

Eigene Bäume

Working Sets

Navigation mit Tastatur

  • Typische Tastenkombinationen:
    • Strg + Klick: Sprung zur Definition/Implementierung
    • Alt + Pfeil links/rechts: Rückwärts/Vorwärts in der Sprunghistorie
    • Strg + Tab: Wechsel zwischen offenen Editortabs
    • F3: Alternativ „Open Declaration“ für markiertes Element
  • Navigation innerhalb des Editors:
    • Doppelklick markiert ein Wort
    • Strg + L: Springt zu einer bestimmten Zeile
  • Ziel: möglichst effizient ohne Maus arbeiten

Suchen von ABAP-Objekten

  • Dialog „Open ABAP Development Object“
    • Typischerweise Strg + Shift + A
    • Name (oder Teile) eingeben, Autovervollständigung nutzen
  • Es kann nach verschiedenen Kriterien gesucht werden:
    • Objekttyp (z.B. Klasse, Programm, CDS, Tabelle)
    • Paket
    • Verantwortlicher Benutzer
    • Datum der letzten Änderung
  • Beispiel-Screenshot des Objekt-Suchdialogs:

Suchen von Objekten

Suchen mit Filtern und Vorschlägen

  • Filterung
    • Mehrere Filter durch Komma trennen, z.B. *ZCL*,*YCL*
    • Einschränkung auf Namensmuster oder Pakete
  • Weitere Kriterien über Suchoptionen
    • z.B. Klassen, die eine bestimmte Zeichenkette im Namen enthalten
  • Tastaturhilfe
    • Mit Strg + Leertaste alle Suchoptionen anzeigen lassen
  • Beispiel-Screenshots:

Filtersuche

Vorschläge im Suchdialog

Volltextsuche im Code

  • Allgemeine Suche (Strg + H)
    • Sucht Text in Dateien des Workspaces
    • Einschränkung auf Projekte/Packages/Dateitypen möglich
  • Anwendungsfälle:
    • Verwendungen eines Funktionsbausteins, einer Klasse, eines Feldes
    • Suche nach TODO-Kommentaren oder Logtexten
  • Ergebnisse:
    • Trefferliste mit direkten Sprüngen in den Editor
    • Schnellnavigation über Tastatur

Programmieren mit ADT

  • Typische Entwicklungsobjekte:
    • Klassen, Interfaces, Reports, Testklassen, CDS-Views, SQL-Scripts
  • Editor-Features:
    • Syntax-Highlighting, Code-Vervollständigung (Strg + Leertaste)
    • Schnelle Hilfe und ABAP Doc im Editor
    • Direktes Anlegen von Methoden/Konstruktoren aus der Signatur
  • Konsolenprogramme
    • Interface IF_OO_ADT_CLASSRUN für Klassen mit Konsolenausgabe
    • Ideal für kleine Tests, Demos, Datenmigrationen

Refactoring in Eclipse

  • Wichtige Refactoring-Funktionen:
    • Methoden extrahieren
    • Umbenennen von Methoden/Variablen/Klassen
    • Inline-Deklarationen in explizite Variablen/Parameter/Attribute umwandeln
  • Unterstützt Clean-ABAP-Stil:
    • Kleinere, klar benannte Methoden
    • Reduktion von Code-Duplikaten
  • Beispielhafte Schritte:
    • Markieren eines Codeblocks → „Extract Method“
    • Rename mit automatischer Anpassung aller Verwendungen

Templates in Eclipse

  • Motivation:
    • Immer wieder ähnliche Codemuster schreiben (TRY/CATCH, LOOP/ENDLOOP, ASSERT, …)
  • Templates:
    • Vordefinierte Vorlagen für ABAP-Code
    • Eigenes Kürzel definieren, z.B. try, loop, ifn
    • Über Strg + Leertaste Vorschläge erhalten
  • Beispiel-Screenshot „Arbeiten mit Templates“ (bestehender Foliensatz):

Arbeiten mit Templates

Wichtige Shortcuts

  • Editor & Navigation:
    • Strg + 3: „Find Actions“ – zentrale Kommando-Suche
    • Strg + Shift + A: Open ABAP Development Object
    • Strg + H: Suchdialog
  • Editor-Bearbeitung:
    • Strg + F: Suchen & Ersetzen im Editor
    • Strg + Leertaste: Code-Vorschläge
    • Alt + Shift + A: Blockmodus an/aus
  • Ausführen:
    • F8: Ausführen in der SAP GUI
    • F9: Ausführen in der Konsole (falls implementiert)

Debugging in Eclipse

  • Debugging-Themen:
    • Breakpoints setzen und verwalten
    • Debugging-Perspektive
    • Call-Stack-Navigation
    • Variablen-View und Expressions
  • Start des Debuggers:
    • Über gesetzte Breakpoints im Code
    • Über expliziten Start von Programmen aus Eclipse
  • Vorteil gegenüber SAP GUI:
    • Mehr Kontext auf einen Blick
    • Bessere Unterstützung für Objektorientierung und interne Tabellen

Breakpoints und Debug-Einstellungen

  • Breakpoint-Typen:
    • Zeilen-Breakpoints in Methoden/Reports
    • Method Breakpoints
    • Exception-Breakpoints und Message-Breakpoints
  • Benutzer- & externe Breakpoints:
    • Externe Breakpoints für HTTP/OData/RFC-Aufrufe
    • Debugging für andere Benutzer möglich (mit Berechtigung)
  • Debug-Einstellungen:
    • System-Debugging für Systemcode
    • Update-Debugging für Update-Tasks
    • Einschränkung auf bestimmte Projekte/Sessions

Variablen und Tabellen im Debugger

  • Variablen-View:
    • Lokale Variablen, globale Attribute, statische Attribute
    • Objektstrukturen aufklappen
  • Interne Tabellen:
    • Anzeige mit Filter- und Sortiermöglichkeiten
    • „Pinning“ für parallele Anzeige mehrerer Tabellen
  • Werte ändern:
    • Skalare Variablen direkt editieren
    • Tabelleneinträge hinzufügen, ändern oder löschen
  • Layout:
    • Debug-Views anpassen, eigenes Layout speichern

System-, Update-Debugging und Speicheranalyse

  • System-Debugging:
    • Debuggen von System- bzw. Framework-Code
    • Vorsichtig einsetzen, v.a. in produktionsnahen Systemen
  • Update-Debugging:
    • Debuggen von Update-Tasks
    • Aktivierung in den Debug-Einstellungen
  • Speicheranalyse & Memory Inspector:
    • Übersicht über Speicherverbrauch der Session
    • Hilfreich bei großen internen Tabellen und Performance-Themen
    • Optional mit „Automatic Refresh“ – kann Performance beeinflussen

Zusammenfassung Eclipse

  • Eclipse + ADT ist die Standardumgebung für moderne ABAP-Entwicklung
  • Zentrale Punkte:
    • Projekte & Workspace sauber aufsetzen
    • Navigation & Suchen beherrschen
    • Programmieren mit Refactoring & Templates kombinieren
    • Debugging intensiv nutzen (inkl. System-/Update-Debugging)
    • Shortcuts einüben, um effizient zu arbeiten
  • Empfehlung:
    • Eigene Übungsprojekte anlegen
    • Alten Code schrittweise nach Modern-ABAP-Konventionen migrieren
    • DSAG-ADT-Leitfaden und Clean-ABAP-Empfehlungen nutzen