This is a test message to test the length of the message box.
Login
der neue Select
Erstellt von Software-Heroes

ABAP - Der neue Select

1559

Die Anpassung der Sprache ABAP haben auch Auswirkungen und Verbesserungen für den alt bekannten und wichtigen Select. In diesem Artikel wollen wir dir kurz beschreiben, was sich so alles geändert hat und was du für Vorteile erlangst.

Werbung


Wie schon in einem früheren Artikel beschrieben, hat sich auch der Select etwas geändert. Es gibt nun zwei Varianten bei der Ausführung und Schreibweise. Die bisherige Variante bleibt bestehen und ändert sich nicht, dadurch bleiben alle alten Programme aktuell.

 

Änderungen

Was hat sich also mit dem Modernen ABAP alles verändert? Im Grunde lässt sich das mit einigen wenigen Punkten beschreiben:

  • Es können beim Aufruf nun Funktionen an den Select bzw. die Ergebnisse dieser Funktionen übergeben werden. Viele Funktionen wurden auch komplett neu, nur für den Select, implementiert.
  • Es können dynamische Rückgabetabellen/-variablen zur Laufzeit erzeugt werden.
  • Die Reihenfolge des Aufbaus hat sich etwas gändert.

 

Für dich heißt das, es gibt einige neue Features die du unbedingt mit dem Select probieren solltest.

 

Beispiele

Dazu zwei Beispiele um die neuen Funktionen einmal etwas näher bringen. Im ersten Beispiel gehen wir vor allem auf die Erzeugung von internen Tabellen mit Dummy Feldern ein und wie du diese dynamisch zur Laufzeit erzeugen kannst.


" Erstellung Select-Option
SELECT
  'I' AS sign,
  'EQ' AS option,
  bukrs AS low,
  ' ' AS high
 FROM t001
 WHERE land1 <> 'DE'
 INTO TABLE @DATA(lt_range).

Wie du anhand der Felder schon richtig vermutet hast, bekommen wir als Ergebnis eine Select-Option die fertig befüllt ist mit den Buchungskreisen, die sich nicht in Deutschland befinden.

  • Mit dem AS Zusatz geben wir den Felder neue Namen, was bereits mit dem "alten" Select möglich war. Die einzelnen Felder werden nun mit Komma getrennt.
  • Wir geben den Feldern einen Defaultwert und weisen sie dem Feld zu. Für einen leeren Wert muss in dem Literal zwingend ein Leerzeichen enthalten sein, ein leeres Literal wird vom Kompiler als Fehler angezeigt.
  • Es wird per Escape-Zeichen und DATA eine Tabelle zur Laufzeit erzeugt. Diese Tabelle hat genau die Felder, die wir im Select angegeben werden.
  • Der INTO Befehl ist nun ans Ende der Anweisung gerutscht, die ist soweit von SAP auch so vorgesehen als neue Stelle der Anweisung.

 

Als zweites Beispiel wollen wir vor allem auf die vielen neuen Inline-Fuktionen hinweisen, die vor allem für den Select implementiert wurden.


" Erstellung der Variable
DATA(ld_waers) = 'eur'.

" Select mit Funktionen
SELECT
  bukrs AS bukrs,
  CAST( kokfi AS CHAR( 20 ) ) AS text,
  CASE WHEN stceg = ' ' THEN '-'
       ELSE stceg
  END AS tax
 FROM t001
 WHERE bukrs LIKE 'A%'
   AND waers = @( to_upper( ld_waers ) )
 INTO TABLE @DATA(lt_bukrs).

Bei diesem Beispiel sind vor allem die Funktionen interessant, die die Werte an den Select übergeben oder bestimmte Abfragen auf die Daten des Selects machen.

  • Die Cast Funktion konvertiert das Zahlenfeld in ein Textfeld mit 20 Zeichen, damit kann direkt bei der Rückgabe der Datentyp ins Zielformat gebracht werden.
  • Mit einer Case Anweisung wird der Steuerschlüssel geprüft, ist dieser nicht leer, wird er übernommen, sollte er aber leer sein, dann wir ein einfacher Minus gesetzt.
  • In der Where-Clause konvertieren wir noch das Währungsfeld mit UPPER auf Großbuchstaben, bevor wir es an den Select übergeben. Wie immer wird ein Escape-Zeichen verwendet, um die Funktion aufzurufen.

 

Auf den Punkt

Das beste Feature ist die dynamische Generierung der Zielstruktur beim Select. Damit befinden sich nur die ermittelten Felder in der Tabelle, die Tabelle bleibt im Speicher klein und es muss kein spezieller Typ vorher definiert werden und nicht mal die Zielvariable.


" einfacher Select
SELECT bukrs, butxt, stceg, waers
 FROM t001
 WHERE land1 <> 'DE'
 INTO TABLE @DATA(lt_bukrs).

Immer wichtig ist die Verwendung des Komma zwischen der Aufzählung der Felder und der Escape der DATA Anweisung, um die Tabelle zu erstellen.

 

Fazit

Am Select hat sich viel geändert, auch weil die CDS Views nun in Konkurenz zu diesen stehen und ebenfalls sehr mächtig sind. Wir hoffen wir konnten dich neugierig machen? Dann schau dir in der SAP Dokumentation doch mal die neuen Funktionen zum Open SQL an.

 

Quelle:
SAP Dokumentation - Open SQL


Enthaltene Themen:
Modernes ABAPSelect
Kommentare (0)



Und weiter ...

Bist du zufrieden mit dem Inhalt des Artikels? Wir posten jeden 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 - Type Casting

Kategorie - ABAP

Wie kommst du eigentlich an den ursprünglichen Typ einer Klasse bzw. Instanz, wenn diese in einer generischen Tabelle übergeben wird? In diesem Artikel prüfen wir die Möglichkeiten.

16.04.2024

ABAP - RETURN value

Kategorie - ABAP

Nach all den Jahren ist nun endlich der "echte" Return in ABAP angekommen, in diesem Artikel zeigen wir dir, wie der funktioniert und was er kann.

13.02.2024

ABAP Deep Dive - FOR (Schleifen)

Kategorie - ABAP

Schauen wir uns einmal die FOR Schleife etwas näher an. Wie funktioniert sie? Was muss ich beachten und was kann ich damit tun?

14.04.2023

ABAP Deep Dive - Tabellenzugriff (intern)

Kategorie - ABAP

Schauen wir uns in diesem Artikel einmal den Tabellenzugriff auf interne Tabellen an und wie sie den READ TABLE ablösen.

03.02.2023

ABAP - FINAL

Kategorie - ABAP

In diesem Artikel schauen wir uns einmal das neue FINAL Sprachkonstrukt an, wie es funktioniert und was du damit anstellen kannst.

23.12.2022