Niklas Nebeling
6. April 2020

Kennen Sie diese ABAP 7.4 / 7.5 Syntax Elemente schon?

In ABAP führen ja bekanntlich viele Wege nach Rom. Sie fragen sich vielleicht: Warum die neuen Features nutzen, wenn Sie es doch auch bereits mit der aktuellen ABAP-Palette realisiert bekommen haben? Ganz einfach: Mit manchen ABAP 7.4 / 7.5 Syntax Elementen können Sie sich so einige Codezeilen sparen und Ihre Entwicklung deutlich übersichtlicher gestalten. In diesem Beitrag bringe ich ihnen einige Elemente mit, bei denen Ihre Kollegen Augen machen werden.

Unser E-Book zu den ABAP Entwicklungsrichtlinien

E-Book: ABAP Entwicklungsrichtlinien

Richtlinien zur Programmierung und Praxistipps zum Thema ABAP-Entwicklung.

Konstruktorausdrücke

ABAP Delta - Von SAP NetWeaver 7.4 auf 7.5

Lernen Sie die wichtigsten Neuerungen kennen, die Entwickler ab SAP NetWeaver 7.5 nutzen können. Neue ABAP Sprachfeatures, neue Entwicklungsobjekte und neue Technologien im Zusammenspiel mit SAP HANA.

Ein Konstruktorausdruck besteht aus…

  • einem eingebauten Konstruktoroperator,
  • einem zum Operator passenden Daten- oder Objekttyp, der über eine Angabe “#” auch implizit aus der Operandenposition abgeleitet werden kann, und
  • der Angabe von typspezifischen Parametern in Klammern.

Die komplette Referenz aller Operatoren finden Sie hier. Wir wollen im Folgenden einen genaueren Blick auf drei ausgewählte Konstruktoroperatoren werfen: VALUE, CONV und COND.

VALUE-Operator

Dieser Operator ist besonders praktisch, um sich ein paar Codezeilen zu sparen und gleichzeitig mehr Übersichtlichkeit zu gewinnen.

Value Operator Beispielcode

Value Operator – einfache Zuweisung

Der Vorteil hierbei: Während Sie früher noch die Attribute einzeln ansprechen und zuweisen mussten, können Sie hier das Ganze kompakt innerhalb der Klammern übergeben. Falls die letzte Codezeile Ihnen Rätsel aufgibt, lohnt sich übrigens ein Blick auf den Blogartikel meines Kollegen Nico Horn zur ABAP Inline-Deklaration.

Zugegeben, der Mehrwert wird in diesem einfachen Beispiel noch nicht ganz klar deutlich. Aber wir können das Ganze mal weiterspinnen:

Value Operator Beispielcode #2 ABAP 7.4/7.5

Value Operator – verschachtelte Strukturen

In diesem Beispiel wird der Einsatz des „#“ vor der umschließenden Klammer als implizite Typangabe deutlich. Dies ist nur möglich, wenn der Typ aus dem Kontext einwandfrei zu ermitteln ist. Tipp: Probieren Sie hier einfach mal unterschiedliche Ansätze aus!

Value Operator Beispielcode #3

Value Operator – Tabellen

Gerade Tabellen lassen sich damit schnell und kompakt initialisieren.

CONV-Operator

Der Conv-Operator dient, wie der Name es schon vermuten lässt, dem Konvertieren von Werten. Sie kennen das bestimmt: Sie rufen einen Funktionsbaustein auf und schon meckert er, dass ihm das Format eines numerischen Wertes nicht passt. Anstatt hier über Hilfsvariablen zu gehen, probieren Sie es mal wie folgt:

CONV Operator Codingbeispiel Vergleich ABAP 7.4/7.5

CONV-Operator – mit und ohne im Vergleich

Hier lässt sich entsprechend bequem die ein oder andere Codezeile einsparen.

COND-Operator

Auch, wenn der Name ähnlich klingen mag, hat dieser nichts mit der Konvertierung zu tun. Das Konzept des COND-Operators können Sie sich vorstellen wie ein kompaktes CASE direkt an der Operandenposition. Anstatt je nach Fall etwas zu tun, nimmt ein COND-Statement je nach Auswertung der Bedingung einen anderen Wert an. Folgendes Beispiel erläutert dies:

COND Operator Codingbeispiel

COND-Operator mit impliziter Typangabe

Die variable lv_cond nimmt je nachdem, welcher Fall Eintritt (also in diesem Fall abhängig von den Parametern) einen anderen Wert an.

Aber Vorsicht: bei impliziter Typangabe wird der erste mögliche Wert – hier ‘LT’ – als Vorlage genommen, um den Typ des Datenobjekts zu bestimmen. Dies hat zur Folge, dass dieser auch nur 2 Stellen lang ist. Wäre eines der anderen Ergebnisse länger als 2 Buchstaben, würden diese abgeschnitten. Besser ist daher eine explizite Typangabe:

COND Operator Codingbeispiel explizit

COND-Operator mit expliziter Typangabe

Wie oben zu sehen, lässt sich auch ein ELSE-Fall einbauen, falls keine der Bedingungen wahr ist.

FOR-Zusatz

Der FOR-Zusatz kann zusammen mit den Konstruktorausdrücken REDUCE, NEW und VALUE verwendet werden, um einen Iterationsausdruck als Teilausdruck einzuleiten. Folgendes Beispiel stellt die klassische Loop-Variante der Kombination aus VALUE und FOR gegenüber:

ABAP FOR Operator Codingbeispiel ABAP 7.4/7.5

Klassischer Loop vs. VALUE mit FOR-Zusatz

Das Ergebnis ist bei beiden Varianten das Gleiche.

Tabellenausdrücke

Verwenden Sie noch READ TABLE … INTO, um auf Tabellenzeilen zuzugreifen? Dann probieren Sie gerne diese neue Methode, bei der der Index oder alternativ Komponentenwerte in eckigen Klammern angegeben werden:

Tabellenzugriff über []

Tabellenzugriff über []

Gruppierung auf internen Tabellen

Wieder ein Fallbeispiel aus dem bekannten Datenmodell rund um Flüge:

  • Sie selektieren eine Menge X von Fluggesellschaften.
  • Sie möchten diese nach einem Attribut (bspw. Währungsschlüssel) gruppieren.
  • Ergebnis: Eine Tabelle, die pro Währungsschlüssel eine Tabelle von Fluggesellschaften enthält.

Anstatt nun hinzugehen und erstmal zu zählen, wie viele Währungen vorkommen, dann für jede eine Tabelle zu erstellen und dann mit einer CASE-Anweisung die Einträge in die einzelnen Tabellen zu kopieren, geht das auch einfach so:

Interne Tabellen Gruppieren

Interne Tabellen Gruppieren mit GROUP BY

Mit ein wenig Code im inneren Loop lässt sich so beispielsweise diese schöne Ausgabe erzeugen:

Interne Tabellen Gruppieren Ausgabe ABAP 7.4/7.5

Interne Tabellen Gruppieren – mögliche Ausgabe

Kniffe für Ihre ABAP-Entwicklung

Ich hoffe, Sie konnten sich aus den oben vorgestellten Elementen Einiges für Ihre zukünftige ABAP-Entwicklung mitnehmen. Kennen Sie noch andere ABAP 7.4/7.5 Kniffe, die Ihnen im Coding-Alltag Lasten abnehmen? Dann lassen Sie gerne die Leser und mich durch einen Kommentar daran teilhaben. Ich freue mich auf Ihre Tipps und Hinweise!

In diesem Webinar erfahren Sie alles rund um die SAP-Entwicklungsthemen.


Das könnte Sie auch interessieren

Als Megatrend wird allgemein eine Entwicklung bezeichnet, die besonders nachhaltig ist und tiefgreifende Veränderungen mit sich bringt. Die digitale Transformation kann man vielleicht als Megatrend bezeichnen, wenn man diesen Begriff schon benutzen möchte. Sicher ist, dass es sich dabei nicht […]

weiterlesen

Ihre Fachabteilung bereitet Daten für die Verbuchung als Excel-Tabelle vor und gibt diese anschließend einzeln und Schritt-für-Schritt ins SAP-System ein? Vielleicht hat Ihre IT-Abteilung auch bereits einen Batch-Input realisiert, der die Verbuchung anstößt. Aber wieso sollten Ihre Mitarbeiter die Excel-Daten […]

weiterlesen

Im Zuge der allgemeinen Vorbereitungen auf S/4HANA  ruft die SAP viele neue Konzepte ins Leben. Eines davon ist die SAP Cloud Platform als Entwicklungsumgebung. Hier können Entwickler in einer von SAP gehosteten Cloud Umgebung sogenannte „Side-by-Side Extensions“ für S/4HANA-Systeme entwickeln, […]

weiterlesen

Schreiben Sie einen Kommentar

Bitte füllen Sie alle mit * gekennzeichneten Felder aus. Ihre E-Mail Adresse wird nicht veröffentlicht.





Kontaktieren Sie uns!
Alexander Koessner-Maier
Alexander Kössner-Maier Kundenservice