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 Nummernvergabe ist ein wesentlicher Bestandteil von ABAP RAP Anwendungen. Konkret geht es bei der Nummernvergabe darum, wie die Schlüsselfelder der Entität mit Werten versorgt werden. RAP bietet uns hier verschieden Lösungsansätze, welche jedoch manchmal auch zur Verwirrung führen und ich deshalb hier kurz erläutern möchte.
Zuerst müssen wir einmal klären, was Früh/Spät und Managed/Unmanaged bei der Nummernvergabe bedeutet.
Frühe- und Späte Nummernvergabe
Bei der frühen Nummerierung geht es darum, dass die Nummer bereits durch den Consumer oder durch das RAP-Framework zu einem frühen Zeitpunkt erzeugt wird. Bei der späten Nummerierung werden die eigentlichen Keys erst zum SAVE-Zeitpunkt vergeben, wodurch eine lückenlose Nummerierung realisiert werden kann.
Managed und Unmanaged
Wenn man als Key-Feld eine Guid hat, kann man sich für eine automatische (=managed) Nummerierung entscheiden. Bei der unmanaged Nummerierung wird die Nummernvergabe durch entsprechende ABAP Codes realisiert.
Folgende Kombinationsmöglichkeiten sind vorhanden:
Frühe Nummernvergabe
Späte Nummernvergabe
Extern
X
Managed
X
X
Unmanaged
X
X
Frühe externe Nummernvergabe
Bei der frühen externen Nummernvergabe werden die Key-Felder bereits durch den Consumer gefüllt. In der Behavior-Definition müssen wir dafür sorgen, dass das Feld bei der Erstellung änderbar ist, bei Änderungen jedoch nicht mehr geändert werden kann.
In der Behavior Definition ist für diese Nummerierung keine spezielle Angabe zu machen. Jedoch sollten die Key-Felder bei Updates auf readonly gesetzt werden:
field ( readonly : update ) orderId;
Frühe interne Nummernvergabe
Die frühe interne Nummernvergabe kann nur angewendet werden, wenn es sich bei dem Key-Feld um eine Guid (Raw 16) handelt. In der Behavior Definition sind auch in diesem Scenario nur zwei kleine Definitionen für das Key-Feld vorzunehmen:
field ( readonly ) orderGuid; field ( numbering : managed ) orderGuid;
Zuerst setzen wir die Guid auf readonly und in zweiten Zeile legen wir die automatische interne Nummerierung auf die Guid fest.
Unmanaged interne Nummernvergabe
Diese unmanaged interne Nummernvergabe kann sowohl für managed als auch unmanaged RAP Business Objekte verwendet werden. Auf Entity Level müssen wir eben in der Behavior Definition diese Nummerierung mit early numbering definieren. Ebenso sollten die Key-Felder auf readonly gesetzt werden.
Nun kann man entweder über Quick-Fix oder manuell eine Implementierung für die Nummerierung vornehmen. Die Methodensignatur sieht wie folgt aus:
METHODS earlyNumberingOrder method for NUMBERING [IMPORTING] entities FOR CREATE business_object_entity …
In der Methode ist nun die Nummernvergabe für die Objekte in entities umzusetzen. Wichtig ist, dass die erfolgreichen Nummernvergaben in die Exporttabelle mapped bekannt gegeben werden müssen.
Unmanaged späte Nummernvergabe
Auch die unmanaged späte Nummernvergabe kann für beide RAP Szenarien verwendet werden. Auf Entity Level wird dies durch late numbering definiert. Ebenso sollten die Key-Felder auf readonly gesetzt werden.
Die Implementierung der Nummernvergabe erfolgt in einer Methode adjust_numbering, welche im Zuge der save sequence – nach dem Point of no return – aufgerufen wird. Die Methode kann man sich wieder mit einem Quick-Fix erzeugen lassen.
Die erzeugte Nummer muss über den Export-Parameter mapped mit dem internen temporären Key zugeordnet werden.
Internationalization in UI5 – using i18n properties files – is the way to translate text into other languages. In this blog post I will share you the way, how to use i18n text with parameters in XML Views.
Das SQL Cockpit for SAP Systems hat sich in der Praxis bereits mehrfach bewährt. Das Resultat ist eine mittlerweile enge Zusammenarbeit mit unseren langjährigen, zufriedenen Kunden. Unter diesen befindet sich die WienIT.
Wir haben mit Georg Grabner, SAP® Service Portfolio Manager bei WienIT, über das SQL Cockpit und dessen Einsatz im Unternehmen gesprochen.
In diesem Interview erfahren Sie, in welchem Umfang unser Tool derzeit bei der WienIT eingesetzt wird, welche Features ganz besonders geschätzt werden sowie Details über unsere Zusammenarbeit.
Was war vor dem SQL Cockpit deine größte Herausforderung bei der WienIT?
Aus meiner Sicht war der ganze administrative Teil einer Produktivsetzung immer sehr umfangreich. Den kann ich mir durch den Einsatz mit dem SQL Cockpit ersparen, da ich nun sehr schnell und effizient Datenauswertungen direkt auf einem Produktivsystem durchführen kann. Zusätzlich kann ich bereits im Zuge der Entwicklung einerseits die Korrektheit meiner Selektion und andererseits die Performance prüfen.
Wie und wo wird das SQL Cockpit bei der WienIT eingesetzt?
Einerseits nutzen hauptsächlich unsere Entwickler und Business Consultants das Tool, um Auswertungen durchzuführen und Reports zu generieren. Zusätzlich arbeiten unsere Applikationsspezialisten mit dem SQL Cockpit, um periodisch Qualitätschecks des Systems durchzuführen.
Das SQL Cockpit ist sehr vielseitig einsetzbar und man muss kein SQL-Profi sein, um damit zu arbeiten. Man ist relativ schnell firm in der Anwendung.
Gab es ein spezielles Feature, das dich direkt überzeugt hat?
Mich hat vor allem die Grundfunktionalität der Selektionen überzeugt. Der SAP® Standard stellt bekanntlich kein Tool zur Verfügung, mit dem man direkt SQL Statements absetzen sowie hochkomplexe Selektionen durchführen kann. Natürlich gibt es Mittel und Wege, aber in dieser Art und Weise und ohne Einschränkungen gab es das vorher nicht. Damit hat die Cadaxo eine Marktlücke geschlossen.
Ein weiterer großer Vorteil ist die Möglichkeit der sauber dokumentierten Datenmanipulation. Es ist manchmal einfach notwendig, Daten entweder punktuell oder massenhaft „gerade zu ziehen“. Das geht mit dem SQL Cockpit sehr gut und vor allem unkompliziert. Zusätzlich ist das gesamte Vorgehen der Datenmanipulation von einem Wirtschaftsprüfer abgenommen und zertifiziert.
Würdest du das SQL Cockpit weiterempfehlen?
Ich würde es definitiv weiterempfehlen. Wir haben das SQL Cockpit auf allen unseren Systemen, die wir betreuen, im Einsatz. Ich finde es immer sehr amüsant, wenn wir mit externen Beratern oder Entwicklern zusammenarbeiten, die mühsam mit SAP® Standard Tools Daten selektieren wollen. Wenn ich ihnen dann das SQL Cockpit vorstelle, stoße ich immer wieder auf Begeisterung, dass es ein derartiges Tool auf dem Markt gibt.
Kannst du etwas besonders Positives hervorheben in Bezug auf deine Zusammenarbeit mit Cadaxo?
Ich kenne Föß* und Domi** gut. Ich weiß, dass sie viel unter Dampf stehen und unter Wasser sind. Ich finde es großartig, wie schnell sie dennoch immer reagieren und Bereitschaft zeigen, kleine Bugs zu beheben und Verbesserungsvorschläge anzunehmen. Wir waren auch bereits als Beta-Tester für zusätzliche Features im Einsatz. Das ist für uns natürlich auch ein Vorteil, da wir so schon vorab neue Releases erhalten.
Hier können Sie Georg Grabner finden: LinkedIn | Xing
Das ist die WienIT
„WienIT ist der digitale Backbone der Wiener Stadtwerke-Gruppe. Wir digitalisieren die, die Wien zur l(i)ebenswertesten Stadt der Welt machen. Als zentraler IT & Business Partner bringen wir so die Wiener Linien ins Rollen, Wien Energie zum Leuchten und bilden das Network der Wiener Netze. Wir finden Lösungen für konzernweite Cases – egal ob IT-Pionierarbeit, Personalprozesse oder Print-Jobs. Wir schaffen smarte Services und machen so Wien gemeinsam futureproof. #dedicatedtoprogress für die Wiener Stadtwerke. Und für dich.“
SQL Cockpit for SAP Systems – So nah waren Sie Ihren Daten noch nie
Das einzigartige Datenbank-, Abfrage-, Vergleichs- und Modifikationstool für Ihr SAP System. Direkte ABAP® SQL Abfragen absetzen ohne eine einzige Zeile Code zu schreiben? Komplexe Joins, Unions, CDS Views, DB Hints, uvm. ganz ohne ADT, aber mit umfangreichem Berechtigungskonzept? Das alles und noch viel mehr ermöglicht das SQL Cockpit for SAP® Systems.
*Johann Fößleitner: CEO & Co-Founder, ABAP®, UI5/ SAP Fiori® und dox42® Integration|**Domi Bigl: SAP® Senior Consultant, ABAP® Programmierung, Konzeption technischer Lösungen
During the work on some Freestyle UI5 Apps I always look for a way how to save constants in Frontend. I would like to share following practice with you, which I use currently.
Define JSON File with Constants
I am going to create a new File in my project root folder. In this file all constant and values will be stored as a JSON Object.
/webapp/model/constants.json
Constants JSON file example
JavaScript
1
2
3
4
5
6
{
"ConstantString":"Hello World",
"ConstantInt":123
}
Define JSON Model in manifest.json file
I my project manifest.json, I am going to define a new JSON Model with created JSON file in URI
Manifest.json file example
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
"models":{
"i18n":{
...
},
"constants":{
"type":"sap.ui.model.json.JSONModel",
"uri":"model/constants.json"
},
"":{
...
}
}
Using Constants in View
From now on it is possible to use the constant model in View:
Constants JSON file example
XHTML
1
2
3
4
5
6
7
...
<Page id="page"title="Cadaxo UI5 Snippets #1">
<content>
<Text text="{constants>/ConstantString}" />
</content>
</Page>
...
Using Constants in Controller
And of course also in Controllers. For example like this:
Wer mich kennt weiß, dass ich Low-Code/No-Code Lösungen mit einer gewissen Skepsis betrachte. Nicht weil es sich dabei um schwache Lösungen handelt. Low-Code / No-Code Anwendungen können durchaus den Flaschenhals des „Fachkräftemangel“ lindern.
SAP® und Low-Code/No-Code – Eine Reise durch die Zeit
Als ich mich mit dem Blogbeitrag erstmals auseinandergesetzt hab, ist mir schnell bewusst geworden, dass ich eigentlich vor 30 Jahren als Low-Code ABAP Entwickler angefangen habe. Ich habe damals im R/2 Reports erstellt. Diese wurden mit Hilfe von logischen Datenbanken realisiert. Ein Entwickler musste lediglich ein paar wenige Kommandos wie GET, CHECK oder WRITE verwenden.
Eigentlich sehr genial, denn damals konnten wir Business-Anforderungen teilweise noch in wenigen Stunden umsetzen. Für Transaktionen konnten wir einen einfachen Screen Painter verwenden und mit PBO und PAI wurde eine sehr simple Dynprologik implementiert.
Schnittstellen wurden mit Hilfe von Batch-Input Mappen auf die Transaktionen realisiert. Eine einheitliche Schnittstellentechnologie für alle – wirklich alle – SAP-Transaktion. Genial!
Am Anfang von R/3 gab es erstmals modulspezifische Berichtsfunktionen (z.B. Report Writer/Report Painter), welche bald durch SAP Query bzw. Quick Viewer ergänzt wurden. Nur zur Verdeutlichung, wir reden hier von einer Zeit vor der 2000er Wende. GuiXT sollte man auch nicht unerwähnt lassen. Ein Tool, mit dem man SAP Gui Screens einfach adaptieren/optimieren konnte.
Und Mitte der 2000er Jahre hat SAP mit dem Visual Composer bzw. dem Composite Application Framework erstmals einen (meiner Meinung nach erfolglosen) Versuch in Richtung Low-Code/No-Code Applikation gestartet.
Aktuelle Low-Code/No-Code Tools der SAP®
Derzeit zählen Tools wie Screen Personas, Fiori Elements oder ganz aktuell SAP AppGyver zu den Low-Code/No-Code Tools der SAP. Im nachfolgenden Teil gehe ich ganz kurz auf diese Anwendungen ein und stelle wie immer weiterführende Links zur Verfügung.
Screen Personas
Ziel von Screen Personas ist es bestehende SAP Gui Transaktionen – auch Kundenentwicklungen – in ein modernes, zeitgemäßes Erscheinungsbild zu bringen. Diese können auch ganz einfach in ein Fiori Launchpad integriert werden. Die Möglichkeiten von Screen Personas sind überschaubar, können aber durch Scripts erweitert werden.
Fiori Elements kann man auch zu den Low-Code Tools zählen. Die Darstellung und das Verhalten von Fiori Elements Anwendungen wird rein durch Metadaten (lokal oder vom Backend) gesteuert. Die Daten werden mittels OData (z.B. ABAP RAP oder CAP) prozessiert. SAP selber liefert viele ihrer Fiori Anwendungen in Form von Fiori Elements aus.
Fiori Elements werden mit dem Business Application Studio oder Visual Studio Code erstellt und können bei Bedarf mit Hilfe von den Fiori Tools auch relativ einfach erweitert werden.
Das ist der jüngste Zukauf der SAP aus dem Jahre 2021. Der finnische Anbieter ist ein weltweit bekannter Anbieter von No-Code Tools und wird derzeit von der SAP sehr gepusht. Auf den ersten Blick sieht das Tool interessant aus. Aber da die Erweiterungsmöglichkeiten sehr, sehr eingeschränkt sind, bin ich nicht sicher ob sich dieses Tool zum Erstellen von Apps für S/4HANA eigenen kann.
Natürlich bietet nicht nur SAP Low-Code Tools (für SAP) an. Ich möchte hier drei bekannte Anbieter aufzählen, die ebenfalls im Low-Code Teich fischen. Alle Anbieter gehören eher zu den Low-Code Anbietern, sprich die erstellten Anwendungen können mehr oder weniger individuell erweitert werden. Wie genau, muss man sich von Hersteller zu Hersteller speziell ansehen. Und natürlich sind hier extra Lizenzen für die Hersteller zu entrichten.
Neptune
Neptune wurde bereits 2011 von zwei erfahrenen SAP-Beratern gegründet. Von Anfang an mit dem Fokus das Leben eines SAP Developers einfacher zu gestalten. Neptune ist in über 40 Ländern im Einsatz und verfügt über 600 Kunden.
Interessant ist Neptune deshalb, da es weder Gateway noch RAP für die Erstellung von SAPUI5 Anwendungen benötigt und direkt im SAP als Transaktion verfügbar ist.
Simplifier
Simplifier bzw. die Vorgängerfirm iTiZZiMO ist seit 2012 am Markt und verfügt laut eigenen Angaben über viele produktive Referenzen. Simplifier scheint auf den ersten Blick auch für eine Pro-Entwickler interessant zu sein, da es viele Erweiterungsmöglichkeiten gibt.
Mendix
Von Mendix habe ich zuerst vor 3 oder 4 Jahren bei einer TechEd erstmals im Zusammenhang mit SAP gehört. Laut eigenen Angaben zählt Mendix zu den Weltmarktführern im Low-Code Bereich und wurde 2018 von Siemens übernommen. In letzter Zeit habe ich jedoch nicht mehr so oft von SAP & Mendix gehört.
Low-Code/No-Code – Einbahn?
Generelles Risiko von Low-Code/No-Code ist die eingeschränkte oder überhaupt unmögliche Erweiterung durch individuelles Coding. Sobald man sich für einen Low-Code/No-Code Ansatz entscheidet muss man sich diesem Risiko bewusst sein.
Beispielsweise kann ich aus eigener Erfahrung bestätigen, dass man die Fiori Elements umfangreich erweitern kann. Bei AppGyver ist dies laut meinem Kenntnisstand derzeit nicht oder nur in sehr geringem Ausmaß möglich.
Mitten in der S/4HANA Einführung kommen die Anforderungen aus dem Fachbereich. „Wir brauchen aber die Lagerstandsauswertung XY nach VKORG unbedingt auch. Ohne der können wir nicht arbeiten.“ Verständlich, denn die Mitarbeiter beschäftigen sich jetzt intensiv mit dem neuen System und versuchen ihre bestehenden Prozesse nachzuspielen.
Aber da fehlt jetzt was. Klar, die bestehenden Auswertungen und Listen, die in jedem alten R/3 System vorhanden sind. Ohne sie wird der weitere Prozess schwierig.
Aber das Projekt ist bereits in vollem Gange, die Aufwände sind budgetiert und die Ressourcen eingeteilt. Klar, man will immerhin rechtzeitig fertig werden.
Und der Druck wird größer. Auch wenn man im neuen System vielleicht eine andere Herangehensweise an die Prozesse hat, die Leute aus dem Fachbereich wollen dennoch eine gewisse Stabilität. Vielleicht wird man einige dieser Listen im Laufe der Zeit wieder los – vielleicht aber auch nicht. Jedenfalls jetzt – kurz vor GoLive – wo alle nervös sind und die Lage angespannt ist, ist der falsche Zeitpunkt dafür. Also werden die wichtigsten dieser Reports in die neue Fiori Oberfläche übertragen.
Aber wer kennt sich genau aus, wie der Report funktioniert? Wie die Daten gelesen werden? 3000 Zeilen Spaghetti Code aus dem Jahre 1998 wollen auch erst einmal neu gebaut werden.
Mit etwas Customizing wird der Report einfach in eine moderne Fiori Applikation verwandelt.
Die Logik der Datenbeschaffung bleibt im Report. Der Selektionsbildschirm und die Ergebnisliste werden transformiert.
Die Navigation in Business Objekte kann auch durch Fiori Links ersetzt werden.
Auch der „Warenausgang“ kann gebucht werden. Sowie beliebige andere Aktionen können ausgeführt werden.
UI38 (so war unser interner Arbeitstitel) kann aber noch viel mehr. Sie haben eine zentrale Stelle, um auch neue Reports anzulegen. Egal ob CDS View basiert, oder in Methoden ausprogrammiert, mit simplem Customizing bekommen Sie diese schnell und einfach in Ihr Fiori Launchpad. Die Arbeit des Rapid Report Generators ist also mit der Einführung noch nicht zu Ende. Im Gegenteil, er ist das zentrale Tool, um Informationen aus dem ERP System schnell an die gesamte Belegschaft zu übermitteln!
Fazit
Unserer Erfahrung nach gibt es diese absolut notwendigen Reports in jedem Unternehmen. Mal sind es 7, mal 100 Listen. Das ist von Unternehmen zu Unternehmen unterschiedlich. Mit dem Rapid Report Generator bekommen Sie diese, unabhängig von der Anzahl, in kürzester Zeit in die Fiori Oberfläche. Somit sparen Sie jede Menge Zeit und kostbare Nerven bei der Integration und können sich um die wesentlichen Dinge kümmern!
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.