
Recycling Heroes - Kontakt App
In diesem Tutorial modellieren wir eine RAP Anwendung von der Datenbank, über das Modell und das UI, bis zum Deployment und Bereitstellung im System. Damit solltest du den vollen Entwicklungszyklus für modernen ABAP Cloud Anwendungen lernen.
Inhaltsverzeichnis
Heute gehen wir Schritt für Schritt durch den Prozess der Anwendungserstellung, von der Modellierung, über das Deployment bis zu den Berechtigungen.
Einleitung
Vor einer Weile sind wir mit der YouTube Serie zu den Recycling-Heroes gestartet und heute ist ein Teil der Reise abgeschlossen. Die Kontakt App wurde nun fertiggestellt und wir haben dazu noch einmal ein vollständiges Video zum Bau veröffentlicht. Dabei wird dieser Artikel das Video begleiten, um auf relevante Techniken und Beispiele einzugehen.
RAP
Das ABAP RESTful Application Programming Model ist ein wichtiger Bestandteil beim Bau von modernen Fiori Anwendungen im ABAP Cloud Umfeld. Entsprechend wichtig ist es, dieses Thema zu Lernen und in der Gänze zu verstehen. Daher sind die ersten Schritte noch recht einfach zu verstehen, doch das Meistern des Modells wird dich mindestens ein Jahr beschäftigen und du wirst auf zahlreiche Probleme stoßen. Daher haben wir verschiedene Tutorials, Anleitungen und Deep Dives, um in die verschiedenen Aspekte zu kommen.
Video
Für die ganze Serie haben wir eine vollständige Version des Videos erstellt. Auf YouTube findest du das Video und die entsprechende Playlist, wenn du dir die verschiedenen Tutorials einmal genauer anschauen willst. Unter der Beschreibung des Abschnitts, findest du weitere Artikel, die sich mit dem Thema auseinandersetzen.
Modellierung
In diesem Teil modellieren wir den RAP Stack manuell über die verschiedenen Layer. Dabei verwenden wir das Classic Pattern, da sich dieses für den Einstieg in die RAP Entwicklung am besten eignet und für lokale Neuanwendungen der Standard ist. Wir legen die Tabelle an, Modellieren den CDS Stack auf dem Objekt und aktivieren Draft, um einen OData v4 anzulegen. In der späteren Phase fixen wir dann einen Fehler, den wir durch die Benamung von Feldern im Backend erhalten. Zum Abschluss legen wir die ersten Testdaten an, um etwas im UI zu sehen.
UI Design
Beim UI Design schauen wir uns im Anschluss Stück für Stück den Aufbau der einzelnen Elemente in der Anwendung an. Wir erstellen den Filter, zeigen die Felder in der Ausgabeliste an, modellieren die Object Page und den Header und bringen die Felder in Gruppen in eine Struktur. Dabei lernst du die verschiedenen Annotationen, die du für das UI benötigst und welche Auswirkungen sie auf die Anzeige haben.
Value Helps
Nachdem wir das UI erstellt haben, möchten wir dem Anwender etwas mehr Komfort bringen und erstellen jede Menge Suchhilfen, für die verschiedenen Felder. Felder, die nur mit einem Schlüssel arbeiten, werden zusätzlich mit Texten angereichert, sodass nach und nach nur noch lesbare Informationen im UI vorhanden sind.
Virtuelle Elemente
Wir möchten nun Felder einbinden, die es eigentlich im Datenmodell nicht gibt, wie ein Icon für die Object Page. Zusätzlich wollen wir dynamisch Felder und Informationen auf dem UI ausblenden. Dazu verwenden wir virtuelle Elemente, um zusätzliche Logik zu implementieren. Dabei gehen wir auch auf die Details der Ermittlung ein und schauen uns die Besonderheiten mit ausgeblendeten Feldern an.
Factory Actions
Neben der eigentlichen Create Aktion, können wir auch Factory Actions verwenden, wenn wir spezifische Szenarien damit abbilden wollen. In dieser Folge implementieren wir für jede verschiedene Art von Kontakt eine eigene Factory Action. So können wir später besser die Berechtigungen steuern. Außerdem implementieren wir ein Late Numbering für die verschiedenen Typen und Nummern und richten in der Fiori App die Nummernkreise ein. Als Besonderheit verwenden wir die "Auxiliary Class", um Bestandteile des Codes aus der Verhaltensimplementierung zu kapseln.
Validierungen und Ermittlungen
Damit wir nur die passenden Daten erhalten und fehlerhafte Datensätze direkt bei der Eingabe herausfiltern, implementieren wir Prüfungen und automatische Ermittlungen. Dazu implementieren wir eine rudimentäre Schnittstelle, zur Ableitung von Adressdaten, für einen späteren Use-Case. Für die Generierung werfen wir einen Blick auf die IDE Action zur Generierung von neuen Klassen. Damit unser Anwender die Änderung direkt im UI sieht, implementieren wir noch einen Side Effect.
Fiori und Deployment
Die Anwendung ist nun bereit zur Erstellung im Business Application Studio. Dazu setzen wir uns eine neue Entwicklungsumgebung (Dev Space) auf, generieren die Anwendung über den Wizard und machen weitere Anpassungen (Adaption) an der Anwendung. Zum Abschluss schauen wir uns noch einmal die Struktur einer Fiori Anwendung an und beginnen mit dem Deployment ins ABAP Environment.
Launchpad Integration
Nachdem die Anwendung nun im System deployt ist, kümmern wir uns um die Einbindung der Anwendung ins Launchpad. Dazu legen wir eine IAM App und einen Business Catalog an. Diesen binden wir dann eine Business Role ein und gestalten die Pages und Spaces im System, um den Anwender seinen Standard Arbeitsplatz zur Verfügung zu stellen.
Custom Descriptor Item
In dieser Folge wollen wir die Kachel austauschen und um mehr Features erweitern, wie einen Counter, eine Einheit und Anpassungen im Design. Dabei gehen wir auf die verschiedenen Bestandteile ein und erklären die Funktionalitäten im Detail.
Feature Control
Berechtigungen sind ein wichtiger Teil der Bereitstellung von Anwendungen, daher verwenden wir Feature Controls, um einzelne UI Aktionen zu beschränken. Neben den Einschränkungen legen wir auch ein eigenes Berechtigungsobjekt an und schränken den Zugriff komplett ein. Am Ende testen die Zugriffe über einfache Berechtigungen.
Restriction Types
Da die Berechtigungen im Moment nur statisch hinterlegt sind, kümmern wir uns mit Restriction Types darum, dass wir die Berechtigungen des Anwenders über die Rollen steuern können. Dazu legen wir zusätzliche Objekte an und erklären die Wirkung im Detail.
Daten
Nachdem nun die Anwendung so gut wie vollständig ist, kümmern wir uns um die Beladung der Daten. Dazu bereiten wir eine JSON Datei vor, die wir in GitHub zur Verfügung stellen. Über ein Open Source Projekt laden wir die Daten in ABAP und verwenden diese für EML zur Beladung der Kontakte. Dadurch können wir die Logik und die Prüfungen wiederverwenden. Am Ende setzen wir die Nummerkreise zurück, um frische Daten in unser System zu bekommen. Da das UI nach der Änderung noch einige Lücken hat, passen wir die Ausgabe und die Felder noch einmal an.
App
Aktuell haben wir nur eine Anwendung im Launchpad, allerdings haben wir einen eigenen Space für unser Unternehmen aufgebaut.
Gehen wir in die Anwendung, dann werden die ersten Daten sofort geladen und wir können direkt mit der Arbeit beginnen. Dadurch das wir Admin sind, sehen wir alle Daten und alle Aktionen stehen uns zur Verfügung.
Schauen wir uns einen Kunden an, dann finden wir einen entsprechenden Header den wir aufgebaut haben. Darunter die verschiedenen Bestandteile und Gruppen der Object Page.
Fazit
Das Video und dieser Artikel soll dir beim Einstieg in die RAP Entwicklung helfen und den kompletten Weg zur Erstellung einer Anwendung beleuchten. Da die meisten Tutorials nur Bestandteile eines Schrittes beleuchten, solltest du damit eine komplette Anwendung erstellen können.
YouTube
Video



