This is a test message to test the length of the message box.
Login
|
Tools My IDE Actions
Erstellt von Software-Heroes

ADT - Select Converter [MIA]

423

Für MIA gibt es nun eine neue Aktion in den ABAP Development Tools, womit du deine alten Open SQL Statements nach ABAP SQL und ABAP Cloud konvertieren kannst.

Werbung


In diesem Artikel schauen wir uns ein Update zum Select Converter an und gehen auf die neue Integration in MIA ein und wie die Umsetzung erfolgt ist.

 

Einleitung

Auf dem ABAP Environment sind seit dem Release 2502 die IDE Actions verfügbar und wir haben bereits in einem älteren Artikel die erste Aktion mit MIA zur Verfügung gestellt. Mit IDE Actions kannst du die ABAP Development Tools an bestimmten Punkten erweitern und somit auf Basis von ABAP Erweiterungen vornehmen. So kannst du bestimmte Funktionen automatisieren, Code ersetzen oder Informationen extrahieren.

 

ABAP Select Converter 

Vor einer Weile hatten wir den ABAP Select Converter zusammen mit dem CDS Extraktor vorgestellt. Dabei ging es vor allem um die Konvertierung von SELECT Statements in die neue Welt, weg von den klassischen Tabellen, hin zu Core Data Services. Der Extraktor stellt dabei über Git die Grundlage zur Verfügung und wie das Mapping auf Feldebene aussieht. Der Converter nimmt das SELECT Statement und zerlegt es in die Bestandteile, um dann Tabellen und Felder zu ersetzen.

 

Mittlerweile hat der Converter einen Overhaul bekommen und zerlegt nun das Statement komplett, um es als ABAP SQL in der neuen Syntax zu erzeugen. Damit wird nicht nur die Tabelle ausgetauscht, sondern auch das Statement einmal modernisiert.

 

Hinweis: Da es sich hierbei um eine komplexe Aktion handelt, kann es noch zu Fehlern oder Unschärfen kommen.

 

Action

Die neue IDE Action findest du jetzt im Open Source Projekt von MIA, dort ist die Aktion dokumentiert und kann zusammen mit den anderen Aktionen installiert werden.

 

Aufbau

Hierbei handelt es sich um eine recht einfache IDE Aktion die wir hier implementiert haben. Für die Aktion definieren wir eine Klasse und das sie nur in einer Klasse ausgeführt werden kann.

 

Dazu lesen wir in der Aktion den aktuellen Code des Objekts ein und ermitteln die Position der Selektion bzw. des Cursors. Weitere Informationen dazu findest du auch in der Doku unten.

DATA(resource) = CAST if_adt_context_src_based_obj( context->get_focused_resource( ) ).
DATA(sources) = resource->get_source_code( ).
DATA(position) = resource->get_position( ).

 

Im nächsten Schritt müssen wir das gesamte SELECT Statement aus dem Quellcode extrahieren. Dazu verwenden wir eine kleine Funktion, die den Anfang und das Ende sucht und den Select auf eine Zeile bringt.

DATA(extraction) = zcl_mia_strings=>extract_statement( statement = `SELECT`
                                                       sources   = sources
                                                       start     = position->pos-start ).

 

Hat die Ermittlung funktioniert, übergeben wir den SELECT an die API, diese ruft den Endpunkt des Select Converter auf, um das Statement zu konvertieren. Das Ergebnis erhalten wir dann in unserer Antwortstruktur zurück.

DATA(conversion) = zcl_mia_core_factory=>create_swh_tools( )->convert_select_statement(
    request = VALUE #( statement  = extraction-statement
                       abap_cloud = abap_true ) ).

 

Zum Abschluss übergeben wir das neue Statement an ein Source-Change-Result, dass uns dann den passenden Dialog anbietet, damit du als Entwickler das Ergebnis überprüfen kannst.

DATA(change_result) = cl_aia_result_factory=>create_source_change_result( ).
change_result->add_code_replacement_delta( content            = conversion-data-new_statement
                                           selection_position = position ).
result = change_result.

 

Ausführung

Wie führst du nun die eigentliche Aktion aus? Dazu musst du in deinem Quellcode das SELECT Statement markieren, welches du ersetzen möchtest. Dann startest du die IDE Action mit der Tastenkombination STRG + ALT + R und wählst die IDE Action "Migrate SELECT Statement".

 

Zum Abschluss wird die der Source Code Vergleich angezeigt und du kannst entscheiden, ob du die Änderungen übernehmen möchtest. Grundsätzlich funktioniert die Aktion auch in nicht aktivierten oder aktivierbaren Source Code. Damit kannst du auch einen SELECT umwandeln, der von On-Premise kommt und den du nur ins ABAP Environment kopiert hast.

 

GitHub

Das Open Source Projekt findest du auf GitHub und kannst es frei verwenden. Wenn du Fehler findest oder Verbesserungen vorzuschlagen hast, dann eröffne einfach einen Issue in GitHub.

 

Fazit

Wenn alle Bausteine vorhanden sind, ist eine Integration als IDE Action sehr einfach umzusetzen. Anhand der SAP Dokumentation, können auch schnell Ergebnisse erzielt werden.

 

Quelle:
SAP Help - Implementing a Code Inseration


Enthaltene Themen:
ToolsADTEclipseIDE ActionsMIA
Kommentare (0)



Und weiter ...

Bist du zufrieden mit dem Inhalt des Artikels? Wir posten jeden Dienstag und Freitag neuen Content im Bereich ABAP und unregelmäßig in allen anderen Bereichen. Schaue bei unseren Tools und Apps vorbei, diese stellen wir kostenlos zur Verfügung.


ABAP Tools - Arbeiten mit Eclipse (Klassen)

Kategorie - ABAP

In diesem Artikel möchten wir einmal auf die Arbeit mit Klassen eingehen und wie du diese in Eclipse sauber und einfach erweitern kannst. Dazu schauen wir uns weitere Möglichkeiten in den ABAP Development Tools an.

21.04.2026

ADT - RAP Extension Assistent [MIA]

Kategorie - ABAP

Du möchtest ein RAP Objekt erweitern und weißt nicht genau wo du starten sollst? Vielleicht hilft dir die Idee des Extension Assistant weiter und leitet dich Schritt für Schritt durch den Prozess.

06.03.2026

ADT - RAP Analyzer [MIA]

Kategorie - ABAP

Die Einarbeitung und Übersicht in bestehende RAP Objekte kann nicht immer einfach sein, vor allem wenn es sich um komplexe Objekte handelt. Fragen wie das verwendete Pattern und wichtige Objekte müssen sich meist erarbeitet werden.

24.02.2026

ADT - Metadata Wizard [MIA]

Kategorie - ABAP

In diesem Artikel schauen wir uns den Metadata Wizard an und wie er vielleicht in Zukunft dein Leben bei der Anlage von UI-Annotationen in RAP vereinfachen könnte.

16.01.2026

030: Software-Heroes - My Community

Kategorie - YouTube

Du möchtest das neuste ABAP und SAP Wissen haben und auch nicht jeden Blog einzeln absuchen? My Community bringt den gesamten Community Content in eine Mini-App, die du nach deinen Vorstellungen anpassen kannst, um so keine Neuigkeiten mehr zu verpassen.

22.12.2025