ABAPConf Learnings – Teil #2

Willkommen zurück zu weiteren Learnings der ABAPConf 2024! In diesem Beitrag präsentieren wir eine Zusammenfassung eines besonders wertvollen Beitrags aus der letzten Konferenz. Hier erfahrt ihr die wichtigsten Inhalte, Tipps und Tricks, die für euch von Interesse sein könnten. Wie immer findet ihr am Ende des Blogbeitrags alle relevanten Links zu weiteren Ressourcen.

Diesmal werfen wir einen Blick auf …

ABAP Tools für Clean Code

Am letzten Tag der 3tägigen CodeConnect-Veranstaltung war der Vortrag „ABAP Tools for Clean ABAP“ von Björn Jüliger und Jörg-Michael Grassau. Diesen wollen wir kurz im Folgenden Revue passieren lassen.

Warum Clean ABAP?

Zeit in Clean ABAP Code ist gut investiert, denn:

  • Code wird lesbarer, testbarer und wartbarer.
  • Wir verbringen mehr Zeit damit unseren Code zu lesen, als ihn zu schreiben.
  • ABAP gibt es schon sehr lange mit großer Rückwärtskompatibilität, weshalb man oft auch in der Zukunft nochmal damit konfrontiert ist.

Um Clean Code noch erfolgreicher umzusetzen, gibt es ein paar hilfreiche Tools, die wir gerne näher beleuchten.

Code Pal

Code Pal ist ein Clean Code Unterstützungstool und kann innerhalb des ABAP Test Cockpits (ATC) eingeschaltet werden.

Es bietet Kontrolle über einige Checks für die Umsetzung von Clean ABAP:

Dabei ist zu beachten:

  1. Code Pal steht als Open Source Projekt via Github zur Verfügung und wird vom ATC Team betreut (Links am Ende des Artikels)
  2. Integriert werden kann ATC in den ABAP development tools (ADT) von Eclipse

ABAP Cleaner

ABAP Cleaner ist ein konfigurierbares Open-Source Tool mit dem Ziel alles, was in Zusammenhang mit ABAP Code Styling automatisiert werden kann, zu automatisieren.

Sprich: Ein konfigurierbarer Pretty Printer!

Vor allem, wenn man im Team arbeitet, kann so ein Tool sehr nützlich sein, um ein gewolltes Styling schnell zu implementieren.

Der ABAP Cleaner ist auch wieder im ADT verfügbar. (Links unten.)

Danke für’s Lesen!

Du möchtest keine weiteren ABAP Tipps und Tricks verpassen?

Dann folge uns jetzt auf LinkedIn oder abonniere unseren Newsletter, um stets über die neuesten Entwicklungen in ABAP informiert zu bleiben und keine Neuigkeiten zur ABAPConf am 5. Dezember 2024 zu verpassen.

Nähere Ausführungen zum Thema Clean ABAP entnehmen Sie bitte dem PDF oder der offiziellen Website der ABAPConf.

Zum LinkedIn-Beitrag der ABAPConf South Africa am 13. November 2024 geht es hier.

Dieser Artikel wurde verfasst von: Jonathan Rumpl, SAP Consultant der Cadaxo GmbH.

Ressourcen

Code Pal

Code pal (Classic)

  • Available for on-premise: AS ABAP 7.40 SP08 (++), not remote-enabled 

NEW: Code pal (Cloud Edition)

ABAP Cleaner

Open Source repository

Updatesite for Eclipse plug-in

Demo

Webinar

Blog post

ABAPConf Learnings – Teil #1

Unsere nächste ABAPConf findet noch dieses Jahr statt – und zwar am 5. Dezember 2024!

Zu unserer Freude hält nun Südafrika am 13. November 2024 auch eine eigene ABAPConf 2024 South Africa ab, und das unterstützen wir natürlich! Link dazu am Ende dieses Beitrags.

Wieder erwarten uns viele spannende Themen sowie hilfreiche Tipps und Tricks rundum ABAP.

Um die Wartezeit etwas zu verkürzen und einen Vorgeschmack für jene anzubieten, die die letzte ABAPConf verpasst haben oder nicht alle Vorträge gesehen haben, gibt es hier eine kurze Zusammenfassung eines sehr relevanten Beitrags:

Neues für ABAP CDS im ABAP Cloud Development Model

Dieser Vortrag wurde live von SAP-internen Mitarbeitern gehalten.

Wie der Titel bereits verrät, geht es um die Weiterführung der ABAP Core Data Services im ABAP Cloud Development Model, welches immer zentraler wird.

Deshalb gibt es nun einen kurzen Ein- und Ausblick, welche neuen Anwendungen und Technologien da auf uns zukommen.

3 neue CDS Entity Types

Diese drei sind

  1. CDS Simple Type
  2. CDS Enumerated Type
  3. CDS Scalar Function

und erweitern somit den Katalog:

Sehen wir sie uns näher an, beginnend mit dem

CDS Simple Type

Dieser Typ erlaubt das Definieren von elementaren Datentypen, die anstelle von DDIC Elementen in ABAP CDS verwendet werden können.

Angelegt werden kann so ein Simple Type folgendermaßen:

Anstelle des built-in data types abap.char( 30 ) könnte auch ein weiterer solcher Simple Type oder auch ein Data Element verwendet werden. Die Annotation versorgt den Datentypen mit Metadaten, die man herkömmlicherweise bei DDIC Elementen in der SE11 pflegen würde.

Dieser neue User-definierte Datentyp kann ganz einfach wie gewohnt in CDS View Entities oder in ABAP-Coding zur Typisierung von Variablen genutzt werden.

CDS Enumerated Type

Dieser Typ entspricht den aus vielen Programmiersprachen bekannten Enum Datentyp, und bildet somit ein definierte Menge an Werten. Objekte dieses Datentyps können somit nur Werte, die in diesem Enumerated Type definiert sind, annehmen.

Hier ein kurzer Ausschnitt wie der Enumerated Type definiert wird:

CDS Scalar Functions

Der Begriff Skalar kommt aus dem Teilbereich der linearen Algebra der Mathematik und bezeichnet einen dimensionslose Zahl, die üblicherweise auf Vektoren oder Matrizen angewendet wird, um diese entweder zu verkleinern oder vergrößern, sprich skalieren.

Skalarfunktionen im Kontext von SQL sind Funktionen, die einen oder mehrere Parameter entgegennehmen, und einen einzelnen Wert (= Skalar) zurückgeben.

Ein typisches Beispiel hierfür ist die AVG( )-Funktion, die den Mittelwert einer Menge von Werten zurückliefert.

Die User-definierten Skalarfunktionen sind mit AMDP (= ABAP Managed Database Procedures) verknüpft und werden mittels SQLScript implementiert.

Hier ein Beispiel um Zollgebühren zu berechnen:

Fazit

Mit diesen Erweiterungen kann jetzt noch flüssiger programmiert werden und Kundenanforderungen lassen sich noch präziser und maßgeschneiderter umsetzen, ohne erhöhten Aufwand oder an Performance zu verlieren und der Code wird noch stabiler.

Top.

Du möchtest keine weiteren ABAP Tipps und Tricks verpassen?

Dann folge uns jetzt auf LinkedIn und wir halten dich am Laufenden über die neuesten Möglichkeiten in ABAP sowie die nächste ABAPConf am 5. Dezember 2024.

Weitere Ausführungen zu dem Thema der CDS Views in ABAP Cloud entnehmen Sie bitte dem PDF oder der offiziellen Website der ABAPConf.

Zum LinkedIn-Beitrag der ABAPConf South Africa am 13. November 2024 geht es hier.

Fuzzy Search für Rapid Report Generator Reports

Fuzzy Search für Rapid Report Generator Reports

Die SAP HANA Datenbank bietet mit der FUZZY Funktion eine fehlertolerante Textsuche. Während diese Suche für Fiori Applikationen relativ einfach über CDS-Annotations aktiviert werden kann, muss man für ABAP SQL oder ABAP ein paar Objekte anlegen und ein wenig programmieren.

Der Rapid Report Generator – RRG – kann neben ALV Reports auch CDS Views und ABAP Klassen als Datenquelle verwenden. Damit ergeben sich zwei Möglichkeiten eine Fuzzy Suche in RRG Reports anzubieten. In diesem Post schauen wir uns die AMDP Variante an.

AMDPs – ABAP Managed Database Procedures

AMDP bieten die Möglichkeit, SAP HANA Features zu verwenden, die nicht über openSQL/ABAP SQL bereitgestellt werden (z.B. Fuzzy-Suche). Sie sind also eine Erweiterung des bekannten EXEC_SQL. Da AMDP als Methoden in globalen Klassen implementiert sind, können sie auch aus jedem ABAP Coding aufgerufen werden.

Was man für AMDP braucht und wie man die Fuzzy-Suche nutzt steht hier in einem unseren älteren Beiträgen: AMDP – Fuzzy Search im ABAP® mit SAP HANA®

Im RRG kann man ABAP Coding über den Report Typ ABAPCLASS einbinden.

Bei diesem Report Typ erfolgt die Datenbeschaffung über das Interface /CADAXO/IF_UI38_TYPE_ABAPCLASS. Wir erstellen also eine Klasse mit diesem Interface und legen den Report an.

Methode EXECUTE_QUERY

Wir verwenden dafür die vorhandene Klasse aus dem Post, ergänzen sie um das Interface und implementieren die Methode /cadaxo/if_ui38_type_abapclass~execute_query.

Wir holen uns den eingegebenen Suchbegriff aus dem Filterfeld für Name, rufen die AMDP Methode search_orders( ) auf und liefern das Ergebnis an das RRG Framework.

RRG Report

Mit der Transaktion /CADAXO/UI§(_ADMIN legen wir den RRG Report SEARCH_ORDERS_FUZZY mit dem Typ ABAPCLASS an. Als Result Structure verwenden wir /CADAXO/UI38D_Demo_Orders und als ABAP Klasse natürlich /CADAXO/CL_UI38_DMO_ORDER_AMDP.

Die wichtigsten Einstellungen erfolgen bei den Feldern. Hier muss im Bereich Filter Fields der Feld Name als filterbar gekennzeichnet werden. Weiters macht es Sinn den Filter als Pflichtfeld zu definieren und nur einen Einzelwert zuzulassen.

Ergebnisliste

Wir haben jetzt einen Fiori List Report mit fehlertoleranter Suche nach Kundennamen – implementiert in einer ABAP Managed Database Procedure.

ABAP CDS Table Functions – AMDPs für CDS

Mit CDS Table Functions können AMDPs als Datenquelle von CDS Views dienen. Diese können dann in openSQL/ABAP SQL Queries verwendet werden. Ein Post hierzu folgt demnächst! Stay tuned 😉

Links

Hier eine kleine Sammlung an relevanten und nützlichen Links zu diesem Thema:

SAP HANA Fuzzy Search https://help.sap.com/docs/SAP_HANA_PLATFORM/691cb949c1034198800afde3e5be6570/cc602780bb5710148aa2bf6cab3c015b.html?&locale=en-US

Fuzzy Search für Fiori Anwendung https://help.sap.com/docs/ABAP_PLATFORM_BW4HANA/cc0c305d2fab47bd808adcad3ca7ee9d/6f9212bbaf5e4d598c774b96d93f7b79.html?locale=en-US

AMDP https://help.sap.com/doc/abapdocu_753_index_htm/7.53/de-DE/abenamdp.htm

Webinar_RAP Teil 3

Webinar – ABAP® RESTful Application Programming Model (RAP) – Teil 3

Vielen Dank für Ihre Teilnahme an unserem Webinar!

Das spannende Thema RAP wird uns alle noch viele Jahre beschäftigen. In unseren nächsten Webinaren werden wir uns erst einmal wieder anderen ABAP Themen beschäftigen. Wir sind noch nicht sicher, ob unser nächstes Webinare im November stattfinden wird. Unsere ganze Aufmerksamkeit gilt nämlich nun der ABAPConf welche am 9. Dezember 2021 über die Bühne gehen wird. Ein Tag an dem sich alles um ABAP dreht! Einfach hier auf Eventbrite registrieren, damit ihr in der Sache am Laufenden bleibt! Für das Event selber ist keine Registrierung notwendig.

Unterlagen/Links zum Webinar „ABAP RESTful Application Programming Model (RAP) – 3. Teil“

Links

Im Laufe des Webinars haben wir über folgende Sites gesprochen:

Teilnehmer

  • Deutschland 44%
  • Österreich 41%
  • Schweiz  3.5 %
  • Rest 11.5 % (Tschechien, Ungarn, Türkei, Weißrussland, UK)

Twitter

Unsere nächtes Webinar

Findet vielleicht im noch im November oder erst im nächsten Jahr statt. Aber dafür gibt es mit der ABAPconf einen perfekten Ersatz! Wir würden uns freuen, wenn wir Euch bei der ABAPConf wieder sehen würden.

Webinar_RAP Teil 2

Webinar – ABAP® RESTful Application Programming Model (RAP) – Teil 2

Vielen Dank für Ihre Teilnahme an unserem Webinar!

Auch das nächste Webinar im September wird zum Thema RAP sein. Es gibt genug Themen. – Anmeldelink befindet sich ganz unten in diesem Blog.

Unterlagen/Links zum Webinar „ABAP RESTful Application Programming Model (RAP) – 2. Teil“

Teilnehmer

  • Deutschland 52%
  • Österreich 38%
  • Schweiz  5 %
  • Rest 5 % (Belgien, Frankreich, Polen, USA)

Twitter

Unsere nächtes Webinar

Webinar_RAP Teil 1

Webinar – ABAP® RESTful Application Programming Model (RAP)

Vielen Dank für Ihre Teilnahme an unserem Webinar!

Wie angekündigt, werden wir uns auch im nächsten Webinar mit RAP beschäftigen. Dann etwas mehr im Detail. – Anmeldelink befindet sich ganz unten in diesem Blog.

Unterlagen/Links zum Webinar „ABAP RESTful Application Programming Model (RAP)“

Blogs/Links

FAQ

Es gab einige Fragen im Verlauf des Webinars:

  • Frage: Ist das ABAP RESTful Programming Model, zu dem es ja auch Literatur von SAP Press gibt, das selbe wie RAP?
    • Antwort: Ja genau RAP = RESTful Applicatino Programming Model
  • Frage: Wie kann ich verhindern, dass bei Projections auf einen Root-View, die Compositionen verlorenen gehen?
    • Antwort: Bei der Projection muss man die Composition umbiegen auf die Projection des „Kindes“
  • Frage: OData V4 geht auf onPrem mit 2020 SPS01.
    • Antwort: Jop!
  • Frage: Die neuen, nicht mehr DDIC basierten, View-Entities kann man leider nicht mit den SE16* Transaktionen auswerten. Wisst ihr da einen Workaround? Ist gerade für Troubleshooting auf Nicht-Entwicklungssystemen und Mandanten immer ganz praktisch, da man dort oft keinen ADT Zugriff hat. Zudem ist es für Nicht-Entwickler auch nützlich im die Views, bzw. die Daten zu validieren.
  • Frage: Welche Eclipse Version habt Ihr im Einsatz?
    • Antwort: Eclipse 2020-12 mit ABAP 3.16 -> immer the Latest and greatest! – Ergänzung Föß: Ich aktualisiere Eclipse immer alle 3 Monate, sobald eine neue Version rauskommt. ADT Update checke und update ich ggf. täglich.
  • Frage: Was ist der unterschied von define root view und definde root view entity?
    • Antwort: ROOT VIEW ist noch DDIC basiert (DDIC View)
  • Frage: Gibt es hier ein Thema Locking auf den DB-Tabellen?
    • Antwort: Locking geht natürlich auch: Sperrobjekte, Optimistisches Locking im eTag (das kommt beim nächsten Mal ganz sicher), Draft
  • Frage: Domi hat das managed Szenario oder?
    • Antwort: Domi verwendet das Managed Szenario, aber dem EML ist es egal was drunter läuft – ob managed oder un-managed
  • Frage: Starkes Webinar. Vielen Dank für den Vortrag. Macht das ganze viel sympatischer wenn es live (coding) durchgeführt wird!
    • Antwort: Danke dir!
  • Frage: Danke. Wollte nur wissen, ob man die neueste Version nutzen kann, nicht das es Probleme gibt.
    • Antwort: Immer die neueste von ADT und Eclipse – man sollte aber 1 bis 2 Wochen warten mit dem Eclipse update, bis auch die SAP 100%ig nachgezogen hat 🙂
  • Frage: Eine Verständnisfrage, in den Beispielen der SAP sieht man immer die Implementierung auf Basis „selbst“ erstellter Tabellen. Aber wie funktioniert das ganze Model, wenn ich auf APIs (OneOrder, BP usw) zugreifen muss. Ich will ja nicht unbedingt Daten lesen und schreiben mit direktem Tabellen Zugriff.
    • Antwort: Dieses Thema versuchen wir beim nächsten oder übernächsten Webinar aufzugreifen.

CDS View Entities / CDS Root View Entities

Wir haben im Webinar immer mit CDS ROOT VIEW ENTITIES gearbeitet. CDS View Entites sind ab aber erst ABAP 7.55 verfügbar und es handelt sich dabei um eine verbesserte / erweiterte Möglichkeit der CDS DDIC-based Views. CDS View Entities sind sozusagen der Nachfolger der CDS DDIC-based Views.

Unterschiede:

  • Keine zusätzlicher DB View notwendig (@AbapCatalog.sqlViewName … ) – daher aber auch kein SE16 …
  • Schnellere Aktivierung
  • Vereinfachte Syntax
  • Verbesserter / strikterer Syntaxcheck um potentielle Fehler bereits bei der Aktivierung zu erkennen

Teilnehmer

  • Deutschland 50%
  • Österreich 41%
  • Rest 9 % (Schweiz, Russland, Rumänien, Indien, Frankreich)

Twitter

Unsere nächtes Webinar

Webinar – ABAP® 7.55 Releaseabhängige Änderungen

Vielen Dank für Ihre Teilnahme an unserem Webinar!

Unterlagen/Links zum Webinar „ABAP 7.55 Releaseabhängige Änderungen

Links

Blogs/Links

Unsere nächtes Webinar

SAP Community Call

SAP® Community Call – Was muss ein ABAP® Entwickler wissen um in S/4 bestehen zu können

Am 15. Dezember 2020 haben wir in einem von der SAP organisierten Community Call über ABAP und was ein Entwickler unbedingt wissen sollte um in S/4 bestehen zu können gesprochen. Natürlich gäbe es viel mehr Themen und mancher Teilnehmer sieht den einen oder anderen Punkt vielleicht anders. Jedenfalls haben wir im Call über die aus unserer Sicht wichtigsten Punkte gesprochen:

  • ABAP Syntax: ABAP Objects, Expressions
  • Code Pushdown: SQL Expressions, CTEs, CDS Views, AMDP
  • IDEs: ADT, BAS, Visual Studio Code
  • Tools in ABAP: Statische Codechecks, Analysetools in ABAP
  • Programmiermodelle: BOPF, RAP, OData, Fiori Elements, Gateway
  • Erweiterbarkeit: OnPrem, In-App, Side-by-Side
  • ABAP Steampunk
  • ABAP Open Source: dotabap.org, abapgit
  • Clean Code: Clean ABAP, Refactoring, Unit Tests

Der Community Call wurde aufgezeichnet und steht via https://www.youtube.com/watch?v=MdHwS_C7mHE&feature=youtu.be zur Verfügung.

PDF Slides mit Links: SAP Community Call S4ABAP Link

Webinar – SAP Fiori® Elements

Vielen Dank für Ihre Teilnahme an unserem Webinar!

 

Mit den SAP Fiori Elements hat uns SAP ein ziemlich cooles Werkzeug in die Hand gegeben, welches die Erstellung von Fiori Anwendungen extrem beschleunigt und vereinfacht. Als ABAP Entwickler kann man sich auf das Wesentliche konzentrieren, während sich das SAP Fiori Elements Framework darum kümmert, dass ein schönes, einheitliches Fiori Userinterface generiert werden.

In diesem Webinar haben wir einen Überblick über die SAP Fiori Elements vermittelt. Angereichert um ein paar live Demos.

Diesmal hat uns erneut Sören Schlegel von der Consilio unterstützt. Vielen Dank dafür!

Da wir wesentlich mehr Demos vorbereitet hätten, werden wir das nächste Webinar auch zum Thema „SAP Fiori Elements“ machen. Diesmal aber – No Slides, Just Code! Weitere Details weiter unten in diesem Blog bzw. direkter Link zur Anmeldung hier: SAP Fiori Elements Part 2 – Just Code.

Slides & Video

Links

Übersicht

SAP Blogs

Videos

Developer Tutorials

Buchtipp

Nicht vergessen, als DSAG Mitglied bekommt man bei SAP Press einen Preisnachlass. https://www.rheinwerk-verlag.de/dsag

Sonstige Links

Unser nächstes Webinar

Heuer findet noch ein weiteres Webinar statt. Da wir viel umfangreichere Live Demos vorbereitet hätten, wollen wir einen 2. Teil zum Thema SAP Fiori Elements machen. Diesmal jedoch NO SLIDES und gleich mal zur Sicherheit für 90 Minuten eingeplant. 60 Minuten Talk, 30 Minuten Q&A.

Webinar – SAP®/ABAP® und Microsoft

Vielen Dank für Ihre Teilnahme an unserem Webinar!

Ein Datenaustausch zwischen MS und SAP muss nicht immer ein CSV Up- oder Download sein. Dass hier mehr möglich ist, haben wir in diesem Webinar gezeigt.

Diesmal hat uns Sören Schlegel von der Consilio unterstützt. Vielen Dank dafür!

Unterlagen/Links zum Webinar „SAP/ABAP und Microsoft

Links

Unser nächtes Webinar

Das nächste Webinar findet nach der Sommerpause statt. Das Thema wird noch rechtzeitig bekannt gegeben, aber mit Sicherheit wird es wieder sehr interessant!