
ABAP Tools - IDE Actions (Anlage)
Legen wir gemeinsam unsere erste IDE Action für die ABAP Development Tools an. Dabei führen wir dich Schritt für Schritt durch den Prozess und die Oberflächen.
Inhaltsverzeichnis
In diesem Artikel schauen wir auf die Anlage von IDE Actions, dazu solltest du die Voraussetzungen erfüllen, wie in diesem Artikel beschrieben.
Einleitung
Für eine IDE Action brauchen wir normalerweise zwei Objekte, die IDE Action als neues Artefakt im System und die eigentliche Implementierung in einer Klasse. Weiterhin stehen uns verschiedene Formen der UI zur Verfügung, die wir uns aber im nächsten Artikel einmal genauer anschauen würden.
Anlage
In diesem Kapitel kümmern wir uns um die Anlage der IDE Action, sowie die Implementierung der verschiedenen Bestandteile, um eine erste Version zur Verfügung zu stellen.
Paket
Legen wir zuerst ein neues Demo Paket an, um alle Objekte an einem Ort zu haben. Dazu kannst du per Rechts-Klick auf ein bestehendes Paket oder das System ein neues Paket anlegen. Dazu definieren wir uns das Paket ZBS_DEMO_IDE_ACTION unter unserem Demo Paket.
Eine Neuerung im Release 2508 (ABAP Environment) war dabei, dass neue Pakete unter ZLOCAL keine Transportaufzeichnung mehr haben. Damit müssen wir keinen Transport mehr anlegen und können direkt die Objekte anlegen.
IDE Action
Definieren wir nun die erste IDE Action, dazu benötigst du allerdings auch die entsprechenden Berechtigungen. Mehr Informationen dazu, findest du im Artikel vom letzten Mal, Link dazu oben. Auf dem Paket kannst du per Rechts-Klick im Kontextmenü "New -> Other ABAP Repository Object" ein neues Objekt anlegen.
Dort suchen wir nach IDE Action als Typ und werden in der Oberkategorie "Others" fündig. Solltest du das Objekt hier nicht sehen, ist dein Release wahrscheinlich zu alt oder du hast keine Berechtigungen zur Anlage.
Neben dem bereits definierten Paket, geben wir der IDE Action einen Namen und eine Beschreibung, diese sind allerdings später nicht mehr sichtbar, sondern nur zur Zuordnung und Erzeugung.
Haben wir die IDE Action angelegt, sollte diese erst einmal leer sein. Im folgenden Screenshot haben wir bereits einige Informationen ergänzt, die wir gleich noch beschreiben.
Dazu eine Erklärung der verschiedenen Felder und Informationen:
- Title - Der Titel wird später bei der Ausführung der Aktion angezeigt und wir können aus den verschiedenen Aktionen des Systems wählen. Damit sollte der Titel schon einmal den Use-Case beschreiben.
- Summary - Die Zusammenfassung wird später angezeigt, wenn die Aktion im Popup ausgewählt wird. Damit soll später noch einmal sichergestellt werden, dass der Entwickler weitere Informationen erhält, was nach Ausführung passiert.
- Class - Hier ist einmal die Klasse für die eigentliche Aktion definiert, sowie eine zweite Klasse für eine mögliche UI. Grundsätzlich brauchen wir mindestens die Klasse für die Aktion.
- Filter: Cardinality - Die Kardinalität bestimmt, wie viele Objekte gewählt sein müssen, damit die Aktion angeboten wird. In unserem Fall definieren wir "One", damit kann maximal ein Objekt im Fokus stehen, sonst wird unsere Aktion bei der Ausführung in der Auswahl nicht angezeigt.
- Filter: Object Types - Zusätzlich können wir die verschiedenen Objekte einschränken. In unserem Beispiel soll die Aktion nur für eine Klasse (CLAS) funktionieren, sonst soll die Aktion nicht angezeigt werden. Damit kannst du verschiedene Aktionen für unterschiedliche Objekte definieren und der Entwickler sieht immer die passende Aktion.
Nachdem wir nun das Objekt auf Klasse eingestellt haben, finden wir noch weitere Subtypen und können neben der Klasse die Auswahl noch weiter einschränken. Handelt es sich um ein Klassenattribut oder eine Methode, dann können wir ebenfalls unterschiedliche Aktionen implementieren.
Implementierung
Um nun eine Implementierung für unsere Aktion zu definieren, können wir über "Browse" nach einer bestehenden Klasse suchen oder über den Link vorm Feld den Wizard zur Anlage starten. Leider wird hier nicht das passende Interface vorbelegt. Geben wir der Klasse ZCL_BS_DEMO_IDE_FIRST_ACTION noch einen Namen.
Daher suchen wir selbst nach dem Interface IF_AIA_ACTION, welches wir für die eigentliche Implementierung benötigen. Ist die Klasse angelegt, können wir beide Objekte aktivieren.
Ausführung
Damit ist die grundsätzliche Implementierung abgeschlossen und wir können die IDE Action einmal probieren. Hast du die Klasse ZCL_BS_DEMO_IDE_FIRST_ACTION noch offen, dann können wir die Aktion über zwei Punkte ausführen.
- Menü - Im Menü findest du unter dem Punkt "Run -> Run ABAP IDE Action ..." (ziemlich weit unten), den passenden Punkt.
- Shortcut - Mit dem Shortcut STRG + ALT + R kannst du ebenfalls die Aktion starten. Der Shortcut wird auch im Menü angezeigt und kann konfiguriert werden.
Es wird nun ein Popup angezeigt und alle Aktionen, die dem entsprechenden Filter passen. Da wir uns gerade in einer Klasse befinden, werden uns einige Aktionen angezeigt. Über das Suchfeld kannst du die Menge an Aktionen einschränken, wenn du eine bestimmte Aktion suchst. Hast du eine Aktion ausgewählt, findest du im unteren Teil die längere Beschreibung, um noch weitere Informationen zu erhalten, was gleich passieren wird.
Führen wir die Aktion aber aktuell aus, dann erhalten wir nur eine Fehlermeldung, da wir noch keine Ausgabe definiert haben.
Vollständiges Beispiel
Wie bei uns üblich, findest du das komplette Beispiel aus diesem Artikel bei uns in GitHub. Dafür haben wir ein neues Repository angelegt, um alle Beispiele zu den IDE Actions zu speichern. Über den folgenden Commit, findest du die Änderungen aus diesem Artikel und kannst sie im Detail nachvollziehen.
Fazit
Der erste Teil der IDE Action ist implementiert und wir können die Aktion aufrufen und erhalten zum Abschluss eine Ausgabe. Beim nächsten Mal werden wir uns dann mit der Eingabe beschäftigen und wie wir Informationen für unsere Action aufbereiten.









