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

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)
Werbung

ABAP - Performance für den SELECT

Kategorie - ABAP

In diesem Artikel schauen wir uns noch ein paar Spezialfälle mit dem SELECT an und beleuchten die Performance dieser Konstrukte. Wir zeigen dir die aktuellen Alternativen dafür und geben kleinere Tipps beim Lesen.

02.04.2021

ABAP - Objekte prüfen (Instanzen)

Kategorie - ABAP

In diesem Artikel zeigen wir dir, wie du Instanzen analysieren und auf diese korrekt reagieren kannst, wenn du diese zum Beispiel bei einer Verarbeitung übergibst und individuell reagieren möchtest.

19.03.2021

ABAP - Schleifen

Kategorie - ABAP

Mit dem modernen ABAP wurden auch neue Schleifen und Möglichkeiten zur Einschränkung von Tabelleninhalten geschaffen. Diese neuen Befehle schauen wir uns in diesem Artikel näher an.

19.02.2021

ABAP - Vergleiche

Kategorie - ABAP

Heute betrachten wir uns das Thema Vergleiche und Vergleichsoperatoren im Hinblick auf die neuen Befehle und die aktuelle Verwendung. Was hat sich bisher alles geändert und was sollte man noch tun.

12.02.2021

ABAP - String Funktionen (Teil 3)

Kategorie - ABAP

In diesem Artikel geht es um weitere neue String Funktionen und einen Ersatz für CONDENSE. Hierbei möchten wir dir noch zeigen, wieso du die neuen Funktionen verwenden solltest.

22.01.2021

Wir verwenden Cookies für unsere Dienste und Funktionen. Mehr Informationen