Dominik Precht
13. Juli 2016

Neue Syntax für das Select Statement in OpenSQL

Ist Ihnen aufgefallen, dass sich die empfohlene Syntax des zentralen Select Statements von OpenSQL geändert hat, die für Sie und Ihre Mitarbeiter relevant sind? Mir ist durch Zufall aufgefallen, dass mir einige Elemente in der SAP Help Dokumentation neu waren. In diesem Beitrag möchte ich Ihnen einen Überblick über die Neuerungen geben und ein paar Hinweise für Clean Coding geben.

E-Book SAP Tabellen

E-Book: SAP Tabellen

SAP Tabellen auf einen Blick - schnörkellose tabellarische Übersicht aller in SAP ECC 6.0 vorhandenen Tabellen.

Select

Eingebetteter Editor in der Dokumentation von SAP

Integration von ABAP Source Code

Innerhalb der SAP Help zu Inner Joins beim Select Statement bin ich zuerst durch die oben abgebildete Testumgebung aufmerksam geworden. Durch diese Integration kann der ABAP Code im ABAP Editor (SE38) geöffnet, gedebuggt und ausgeführt werden. Vor allem die Funktion zum Debuggen erleichtert Entwicklern das Verständnis bei komplizierteren Beispielen. Das Ergebnis der Ausführung wird für ein besseres Verständnis entsprechend aufbereitet.

Select

Ergebnis der Ausführung in der Dokumentation

Syntax des Select Statements

Welche Punkte sind Ihnen in der ersten Abbildung aufgefallen? Was sieht ungewohnt aus?

  • Seit SAP NetWeaver 7.4 Support Package Stack 05 ist die Trennung in Listen in der OpenSQL Syntax mit Leerzeichen obsolet und wird durch die Trennung via Komma abgelöst. Dadurch ist zumindest klarer erkennbar, wann eine neue Spalte des Ergebnisses beginnt.
  • In den Ausdrücken von SQL sollen ABAP Host Variablen (im ABAP Programm deklarierte lokale oder globale Datenobjekte) mit dem Fluchtsymbol @ markiert werden. In den strikten Syntaxprüfungen ist dies sogar verpflichtend. Die Fluchtsymbole gab es schon in früheren Releases, nun leben sie wieder auf.
  • Warum? Unter anderem könnte die folgende Änderung dafür verantwortlich sein. Ab sofort ist es nicht mehr erforderlich, dass bei allen Bedingungen im ON Teil eines Joins auf der rechten Seite eine Spalte steht. Daraus folgt, dass nun innerhalb der Bedingungen des Joins auch Vergleich mit ABAP Hostvariablen gemacht werden können. Somit ergibt eine Kennzeichnung mit dem Fluchtsymbol @ auch für Clean Coding Sinn. Die Abbildung 3 zeigt ein Code Beispiel.
  • Wer sicht jetzt fragt, warum er Bedingungen von der WHERE Klausel auslagern sollte, dem hilft die folgende Notiz. Bei einem LEFT OUTER JOIN sind diese nämlich verboten und sollten in die Bedingungen des Joins verlagert werden.
Select

Auszug aus der Dokumentation von SAP

Vorschlag für Clean Code

Wie ein SELECT Statement mit der neuen Syntax aussehen könnte, sehen Sie in der folgenden Abbildung. Ich persönlich nutze seit einiger Zeit die Vorgehensweise, dass ich in dem Statement von OpenSQL immer eine neue Zeile pro Schlüsselwort, eine neue Zeile pro Bedingung, Kommata in den Listen und die Fluchtsymbole benutze. Dies verschafft meiner Meinung nach eine große Übersichtlichkeit und meidet die obsoleten Darstellungen.

Select

Eigener Vorschlag für die Formatierung des Select Statements

Beitragsbild-Wie Sie Ihre SAP-Systemlandschaft optimal auf S_4HANA vorbereiten
In diesem Webinar erfahren Sie, welche Technologien der SAP für der Umstieg auf S/4HANA wirklich wichtig sind und wie Sie das volle Potenzial von S/4HANA ausschöpfen.

Fazit

Regelmäßiges Prüfen der Release Notes, gerade wenn Sie vor einem Release Wechsel stehen, hilft Ihnen in der Entwicklung das Maximum der Möglichkeiten auszuschöpfen und Neuerungen mitzubekommen. Auch wenn die hier vorgestellten Änderungen zumeist eher kosmetischer Natur sind, ist es ratsam früh genug zu beginnen seine Gewohnheiten zu ändern.

Wie reagieren Sie auf diese oder ähnliche Änderungen? Wie werden Sie in Zukunft mit Release Notes umgehen? Wenn Ihnen mein Artikel gefallen hat, oder Sie Fragen haben, hinterlassen Sie gerne einen Kommentar oder melden Sie sich per E-Mail.

 Save as PDF

Dominik Precht

Dominik Precht

Mein Name ist Dominik Precht und ich bin begeisterter SAP Consultant bei mindsquare. Wie meine Kollegen habe ich mein Hobby zum Beruf gemacht.

Sie haben Fragen? Kontaktieren Sie mich!



Das könnte Sie auch interessieren

Die Business Application Security Initiative (BIZEC) nennt als häufigste Schwachstellen in ABAP Coding in Bezug auf Sicherheit die folgenden Punkte: ABAP Command Injection OS Command Injection Native SQL Injection Improper […]

weiterlesen

Ihre Mitarbeiter investieren viel Energie in die Testphasen der Projekte?

weiterlesen

Vermutlich geht es Ihnen wie mir – als SAP ABAP Entwickler ist die SE80 mein zweites Zuhause. Über die Jahre finde ich mich beinahe blind zurecht und habe auch die […]

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