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:
Code Pal steht als Open Source Projekt via Github zur Verfügung und wird vom ATC Team betreut (Links am Ende des Artikels)
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.
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
CDS Simple Type
CDS Enumerated Type
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.
Am 6. Juni 2024 erlebte die 4. ABAPConf ihre mit Spannung erwartete Premiere als Live-Event in St. Leon-Rot! Rund 350 Entwickler:innen aus aller Welt kamen nach Deutschland, während zusätzlich 500 Personen das Event über YouTube live verfolgten.
Organisiert von Johann Fößleitner, Domi Bigl, Tobias Hofmann und Sören Schlegel, bot die ABAPConf unter dem Leitspruch „by developers for developers“ eine exklusive Gelegenheit für intensiven Wissensaustausch, Networking und praxisnahe ABAP-Erfahrungen. Diese großartige Idee entstand bei einem Treffen am SAP Stammtisch und nahm von dort ihren erfolgreichen Lauf. Dank der Unterstützung durch die SAP fand die Veranstaltung im beeindruckenden Gebäude ROT03 in St. Leon-Rot statt, was die Konferenz zu einem besonderen Erlebnis machte.
Als Teil der dreitägigen CodeConnect-Veranstaltung, die auch ReCAP und UI5Con umfasste, bildete die ABAPConf den krönenden Abschluss und das absolute Highlight für alle ABAP-Enthusiast:innen.
Anlässlich der ABAPConf widmeten Frank Engert und Michael Keller eine besondere Folge ihres „We Love Formulare“-Podcasts der Veranstaltung. Johann Fößleitner gibt darin spannende Einblicke in die Planung und Entwicklung der ABAPConf. Jetzt reinhören auf Spotify, Deezer oder Apple Podcast!
Bereit, die Highlights und Erkenntnisse der ABAPConf 2024 zu entdecken? Los geht’s!
Let’s Recap!
Wer die ABAPConf vor Ort erleben wollte, konnte sich etwa zwei Monate vor dem Event ganz einfach über die Webseite für ein kostenloses Ticket registrieren. Bereits nach der ersten Stunde waren über 250 Tickets vergeben! Ein kleiner Tipp für das nächste Jahr: Wenn Sie bei der ABAPConf 2025 dabei sein möchten, sollten Sie schnell handeln! 😉
Programm und Ablauf
Die Veranstaltung nutzte das Audimax sowie zwei zusätzliche Räume (W1/2 und W3), in denen parallel verschiedene Sessions stattfanden. Diese Struktur ermöglichte es den Teilnehmer:innen, aus einer Vielzahl von Vorträgen und Workshops zu wählen und somit ein individuell zugeschnittenes Konferenzerlebnis zu genießen.
Die ABAPConf 2024 bot ein vielfältiges Programm, welches 4 Sessions auf Deutsch und 14 Vorträge auf Englisch beinhaltete. Die Themen erstreckten sich über ein breites Spektrum rund um ABAP und wurden von SAP-Mitarbeiter:innen sowie von erfahrenen SAP-Freelancer:innen präsentiert. Die Vorträge deckten sowohl tiefgehende ABAP-Themen, Programmierstrategien und ABAP Cloud ab, als auch aktuelle Trends wie generative KI und Community-Themen. Mehr zur Agenda hier.
Für diejenigen, die nicht vor Ort teilnehmen konnten, boten unsere Live-Streams die Möglichkeit, die Konferenzinhalte bequem von Zuhause oder aus dem Büro zu verfolgen. Für alle, die während der Veranstaltung etwas verpasst haben oder die Vorträge erneut durchsehen möchten, sind die Inhalte jetzt online verfügbar. Auch die Slides der Präsentationen stehen Ihnen ab sofort als PDF zur Verfügung.
Themen
Außerdem bot die SAP in W3 die SAP Inside Experience – eine Kombination aus Vorträgen und Diskussionen über die aktuellsten Themen der Branche, vorgetragen von hervorragenden Mitarbeiter:innen der SAP.
Unter den vielen spannenden Vorträgen wollen wir „Role of ABAP CDS in the ABAP Cloud Development Model“ besonders hervorheben. Dieser Vortrag, gehalten im Rahmen der SAP Inside Experience, bot tiefgehende Einblicke in die Weiterentwicklung der ABAP Core Data Services (CDS) speziell für die Cloud.
Der Vortrag behandelte die neuesten CDS-Features für die ABAP Cloud und ermöglichte den Teilnehmer:innen, sich über zukünftige Technologien und Anwendungen zu informieren. Es wurden drei neue CDS-Entity-Typen vorgestellt, die das ABAP-Cloud-Entwicklungsmodell bereichern:
CDS Simple Type: Ermöglicht die Definition neuer, elementarer Datentypen für ABAP CDS, die anstelle von DDIC-Elementen verwendet werden können.
CDS Enumerated Type: Ein neuer Datentyp, der es erlaubt, eine vordefinierte Menge von Werten zu spezifizieren – ähnlich wie Enums in anderen Programmiersprachen.
CDS Scalar Functions: Diese Funktionen bieten die Möglichkeit, Skalarwerte in SQL-Queries zu berechnen, und sind mit ABAP Managed Database Procedures (AMDP) verknüpft.
Besonders bemerkenswert war die intensive Fragerunde am Ende der Session, bei der die Teilnehmenden tief in die Materie einsteigen konnten.
Für detailliertere Informationen zu diesem Vortrag können Sie sich das PDF hier herunterladen.
Erholung und Netzwerken
Zwischen den Sessions hatten die Konferenzbesucher:innen jeweils 15 Minuten Pause, um sich mit anderen Entwickler:innen auszutauschen, am Buffet zu schlemmen oder sich bei einem Getränk zu erfrischen. Für das leibliche Wohl war bestens gesorgt: Von einem großzügigen Frühstück über ein abwechslungsreiches Mittagessen bis hin zu einem leckeren Abendessen standen den Gästen kostenlose Buffets zur Verfügung, die sowohl Fleischgerichte als auch vegane Optionen boten.
Das Gebäude war mit gemütlichen Rückzugsorten für Telefonate und Co. ausgestattet, die Steckdosen und eine Leinwand für den Live-Stream aus dem Audimax boten, um keine wichtigen Inhalte zu verpassen.
Das schöne Wetter mit 23 Grad ermöglichte es den Teilnehmer:innen, ihre Pausen im malerischen Garten des SAP-Gebäudes zu verbringen.
Ein herzliches Danke!
Ein besonderer Dank gilt unseren Sponsoren, ohne deren Unterstützung die Konferenz nicht möglich gewesen wäre:
Ein ebenso großer Dank gilt der SAP für die großzügige Bereitstellung des beeindruckenden Gebäudes sowie der Unterstützung vor Ort durch Personen wie Karl Kessler.
Wer auch abseits der Konferenz noch profitieren wollte, konnte an 3 Ständen Infos zu brandneuen SAP Eigenprodukt-Entwicklungen sowie Workshops einholen.
Vertreten waren hier…
Neptune, die effiziente no-code/low-code Lösungen für SAP Fiori Apps anbieten:
dox42, die Lösungen zum automatischen Erstellen von SAP Formularen anbieten:
CADAXO (wir), die zusammen mit Brandeis Consulting Workshops rund um die S/4 Migration, Modern ABAP und Clean Code anbieten, sowie das SQL Cockpit – ein Tool zur effizienten Datenbankabfrage, -vergleich und -modifikation auf allen SAP Systemen – entwickelt haben.
Abschluss
Zum krönenden Abschluss der Veranstaltung fand im Audimax die feierliche Verleihung der Medaillen für den ABAPConf Legends club statt, bei der die herausragenden Beiträge der Speaker gewürdigt wurden. Mit den abschließenden Worten, die einen ersten Blick auf die nächste ABAPConf ermöglichten, wurde das Abendprogramm eröffnet. Um auf dem Laufenden zu bleiben und wichtige Neuigkeiten wie den Call for Speakers nicht zu verpassen, empfiehlt es sich, der ABAPConf LinkedIn-Gruppe beizutreten.
Die Teilnehmer:innen wurden in den Garten des SAP-Gebäudes eingeladen, um bei einem Buffet und entspannter Musik vom DJ den Abend ausklingen zu lassen.
Dieser gesellige Abschluss rundete die Veranstaltung perfekt ab und bot allen Anwesenden die Gelegenheit, in lockerer Runde noch einmal die Eindrücke der ABAPConf 2024 Revue passieren zu lassen.
Vielen Dank fürs Lesen und wir freuen uns schon darauf, die nächste ABAPConf wieder zu organisieren!
Weiterführende Links:
ABAPConf Webseite: Auf der Webseite finden Sie alle Unterlagen sowie Informationen zu der Veranstaltung
Die SQL Cockpit Version 3.9 ist fertig und bietet wieder ein paar Korrekturen/Verbesserungen und einige interessante neue Features. Nachfolgend ein Überblick über die wichtigsten Neuerungen.
Neuer Wizard für Rapid Report Generator für SAP Fiori®
Vom SELECT Statement zum fertigen Fiori Listreport in 5 Minuten! Mit dem Wizard können Sie alle notwendigen Objekte und Customizing Einträge für den Cadaxo Rapid Report Generator für SAP Fiori® anlegen.
Listen am Applikationsserver speichern
Ergebnislisten können jetzt auch am Applikationsserver abgelegt werden. Das Verzeichnis wird über einen logischen Pfad ermittelt.
Neues BAdI nach den Tabellenänderungen in der Premium Version
Das neue BAdI /CADAXO/ES_SQLC_UPDATE_DB bietet die Möglichkeit, nach dem Datenbank Update weitere Aktionen auszuführen. Mit dem Tabellenname und den geänderten Records können z.B. BI Trigger oder Änderungsbelege erzeugt werden.
Weltweit agierende SAP Kunden sind immer wieder mit länderspezifischen Adressformatierungen konfrontiert. In einem SAP System kann dies je Land eingestellt oder durch kundenindividuelles Coding ergänzt werden.
Damit man in dox42 diese Adressformatierungen verwenden kann, verwenden wir ganz einfach den Funktionsbaustein ADDRESS_INTO_PRINTFORM. Dadurch stehen uns die gleichen Adressaufbereitungen zur Verfügung, wie sie auch in den SAP internen Formulartechnologien SAPScript, SmartForms oder Adobe Forms verwendet werden.
Im ABAP Backend wird der Funktionsbaustein wie folgt aufgerufen:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
"Address Into Printform
DATA ls_address_print TYPE adrs_print.
CALL FUNCTION'ADDRESS_INTO_PRINTFORM'
EXPORTING
address_type='2'
address_number='0000011146'
person_number='0000011145'
sender_country='GB'
receiver_language='D'
IMPORTING
address_printform=ls_address_print
EXCEPTIONS
address_blocked=1
person_blocked=2
contact_person_blocked=3
addr_to_be_formated_is_blocked=4
OTHERS=5.
IFsy-subrc=0.
e_out-adr_line1=ls_address_print-line0.
e_out-adr_line2=ls_address_print-line1.
e_out-adr_line3=ls_address_print-line2.
e_out-adr_line4=ls_address_print-line3.
e_out-adr_line5=ls_address_print-line4.
ENDIF.
Die Ausgabefelder adr_line1, adr_line2, … werden über die Datamap an dox42 übergeben. In dox42 können dieses Adresszeilen dann wie alle anderen Felder verwendet werden. Ich würde bei den Adresszeilen ev. noch eine Bedingung ergänzen, dass keine Leerzeilen ausgegeben werden.
Das Ergebnis sollte dann ca. so aussehen:
Weiterführende Links zum Thema Adressenaufbereitung im SAP:
We use cookies on our website to give you the most relevant experience by remembering your preferences and repeat visits. By clicking “Accept All”, you consent to the use of ALL the cookies. However, you may visit "Cookie Settings" to provide a controlled consent.
This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary cookies are absolutely essential for the website to function properly. These cookies ensure basic functionalities and security features of the website, anonymously.
Cookie
Dauer
Beschreibung
cookielawinfo-checkbox-analytics
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics".
cookielawinfo-checkbox-functional
11 months
The cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional".
cookielawinfo-checkbox-necessary
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary".
cookielawinfo-checkbox-others
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Other.
cookielawinfo-checkbox-performance
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance".
viewed_cookie_policy
11 months
The cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data.
Functional cookies help to perform certain functionalities like sharing the content of the website on social media platforms, collect feedbacks, and other third-party features.
Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.
Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics the number of visitors, bounce rate, traffic source, etc.
Advertisement cookies are used to provide visitors with relevant ads and marketing campaigns. These cookies track visitors across websites and collect information to provide customized ads.