This is a test message to test the length of the message box.
Login
ABAP RAP Generator
Erstellt von Software-Heroes

RAP - Generator (Fiori)

300

In diesem Artikel schauen wir uns den komplexeren RAP Generator als Fiori Elements Anwendung an und welche Vorteile du damit hast.

Werbung


Letzte Woche hatten wir uns den RAP Generator angeschaut der mit den ABAP Development Tools ausgeliefert wird. Dabei fiel vor allem auf, dass man nur eine Entität damit generieren konnte. In diesem Artikel schauen wir uns ein anderes Projekt an, welches mehr Möglichkeiten für die Generierung zulässt.

 

Einleitung

Schon bevor der RAP Generator in den ABAP Development Tools entwickelt wurde, gab es den RAP Generator der durch Andre Fischer, einem Mitarbeiter bei SAP, entwickelt wurde. Am Anfang handelte es sich noch um einen HTTP Service der mit einer JSON Datei konfiguriert wurde, um anschließend Objekte im System zu generieren. Mittlerweile gibt es eine eigene, recht komplexe, Fiori Elements App die durch den Generierungsprozess führt und eine hübsche Eingabe für die Daten bietet. Da es sich um ein Open Source Projekt handelt, kannst es frei für die Erzeugung von RAP Objekten einsetzen.

 

Installation

Für die Installation auf deinem System benötigst du den abapGit Client für das On-Premise System oder das abapGit Plugn für Eclipse, wenn du in der Cloud arbeitest. Über das GitHub Repository kannst du dann die Installation durchführen, dort findest du auch noch einmal eine Anleitung, da es aktuell verschiedene Versionen für die verschiedenen Umgebungen gibt. Nach der Installation darauf achten, dass alle Objekte im System aktiviert sind und zum Abschluss den OData v4 Service noch über "Publish" im System freigeben. Wenn du die Anwendung starten möchtest, geschieht dies über den Wurzelknoten "Project".

 

Tabellen

In unserem Szenario setzen wir dieses Mal auf drei Tabellen, die miteinander verknüpft sind, um so einen Hierarchie zu erzeugen und den RAP Generator auf Herz und Nieren zu testen. Das Modell und die Beziehungen sehen daher wie folgt aus:

 

Kopf
define table zbs_dmo_gen2h {
  key client         : abap.clnt not null;
  key uuid_key       : zbs_demo_key not null;
  description        : zbs_demo_description;
  is_active          : abap_boolean;
  local_last_changed : abp_locinst_lastchange_tstmpl;
  last_changed       : abp_lastchange_tstmpl;
}

 

Position
define table zbs_dmo_gen2p {
  key client         : abap.clnt not null;
  key uuid_pos       : zbs_demo_key not null;
  uuid_key           : zbs_demo_key;
  @Semantics.amount.currencyCode : 'zbs_dmo_gen2p.currency'
  price              : zbs_demo_price;
  currency           : abap.cuky;
  local_last_changed : abp_locinst_lastchange_tstmpl;
  last_changed       : abp_lastchange_tstmpl;
}

 

Unterposition
define table zbs_dmo_gen2s {
  key client         : abap.clnt not null;
  key uuid_sub_pos   : zbs_demo_key not null;
  uuid_key           : zbs_demo_key;
  uuid_pos           : zbs_demo_key;
  description        : zbs_demo_description;
  local_last_changed : abp_locinst_lastchange_tstmpl;
  last_changed       : abp_lastchange_tstmpl;
}

 

Hinweis: Es sollte immer nur einen Schlüssel als UUID pro Tabelle geben, wenn man auf die automatische Schlüsselvergabe setzt, ansonsten kann die App nicht das korrekte Schlüsselfeld ableiten. Weiterhin wird Parent und Root in den unterliegenden Tabellen zur Verknüpfung benötigt.

 

Customizing

Um mit den Einstellungen zu beginnen, starten wir die App und können mit einem Klick auf "New Project" ein neues RAP Projekt anlegen. Zuerst einmal fallen die verschiedenen Wahlmöglichkeiten auf die wir im Moment haben. So können wir als Datenquelle Tabelle, CDS oder eine abstrakte Entität angeben. Ebenso ist es möglich zwischen Managed und Unmanaged zu entscheiden. Entsprechend nehmen wir nun die folgenden Einstellungen vor.

 

Im folgenden Detailbild erhalten wir Informationen über die aktuellen Entitäten im RAP Objekt, sowie eine Zusammenfassung der Implementierungsdetails, Namenskonventionen, Lifecycle Informationen, weitere Parameter und das Log.

 

Entität pflegen

Bevor wir allerdings speichern, um den Eintrag anlegen zu können, müssen wir noch die benötigten Informationen in der Entität hinterlegen. Dazu per Vorwärtsnavigation auf den Eintrag "DMOGen2H" in die Detailseite abspringen. Hier warten noch einige Pflichtfelder, die befüllt werden müssen. Im oberen Teil werden die Informationen für das Draft Handling hinterlegt, diese wurden bereits automatisch gezogen. Der semantische Schlüssel ist entweder eine eindeutige "sprechende" ID oder der Schlüssel der Tabelle.

 

Im unteren Teil kannst du die generierten Objekte noch einmal anpassen, um die Namenskonventionen in deinem Unternehmen umzusetzen. Zumindest werden zu Beginn Defaultwerte vorgeschlagen, sodass man direkt mit der Generierung fortfahren kann.

 

Im letzten Abschnitt sind alle Felder der Tabelle aufgelistet, hier kannst du die vorgeschlagenen Aliase noch einmal anpassen, wenn dir die Namen nicht passen oder zu kurz sind.

 

Entitäten hinzufügen

Um nun weitere Entitäten zu übernehmen, musst du in der Liste den Wurzelknoten markieren und kannst über den entsprechenden Button über der Liste einen weiteren Unterknoten anlegen.

 

Auf dem Popup musst du nun entsprechend den Namen der Entität angeben und die Tabelle als Datenquelle auswählen. Die Informationen reichen dann zum Generieren der Positionen.

 

Hinweis: Es kann sein, dass der neue Eintrag nicht sofort in der Liste erscheint, in diesem Fall am besten im Browser (F5) einmal den Refresh durchführen.

 

Auf der Objektseite der Entität muss nun wieder der semantische Schlüssel definiert werden. Dazu kommen noch Informationen zur darüber liegenden Entität, damit die Schlüsselbeziehungen sauber definiert sind.

 

Entsprechend der Methode legen wir nun noch eine Unterentität an und befüllen die entsprechenden Informationen. Zum Abschluss sollten in der Liste der Entitäten unsere drei neuen Entitäten auftauchen.

 

Generierung

Auf der Objektseite des Projekts findest du im oberen Bereich die verschiedenen möglichen Optionen. Wenn du alle Informationen hinterlegt hast und das Projekt gespeichert wurde, kannst du die Generierung der Objekte über "Generate repository objects" starten.

 

Im System wird dann ein Job eingeplant, der die Generierung der Objekte durchführt. Der Jobstatus wird entsprechend in der Anwendung angezeigt.

 

In diesem Fall der Job ca. 2 Minuten. Nach Abschluss der Generierung wird der Status und ein frischer ADT Link im Header des Projektes angezeigt.

 

Test

Der RAP Generator aktiviert automatisch das Service Binding, sodass wir direkt den Fiori Elements Preview aufrufen können.

 

Mit der Preview kann man nun entsprechend arbeiten und in den Entitäten navigieren. Die Oberflächen müssen noch hübsch gemacht werden, ebenso sollte die Logik um Validierungen ergänzt werden. Der Generator hat ca. 25 Objekte generiert, die wir nun erst einmal nicht per Hand anlegen mussten, was uns einiges an Arbeit gespart hat.

 

Löschen

Im RAP Generator gibt es auch einen Button zum Löschen der generierten Objekte, hilfreich zum Nachgenerieren oder wenn man am Anfang noch neue Entitäten integriert. Bevor man auf den Button klickt, sollte man allerdings das generierte Service Bindung wieder auf "Unpublish" setzen und das Objekt in den ADTs schließen. Diese Prüfung erfolgt aber auch vor dem Löschen und informiert dich über Problemen. Ist alles in Ordnung, wird wieder ein Job im System eingeplant, der mit dem Löschen der Objekte beginnt.

 

Fazit

Der RAP Generator nimmt dir viel Arbeit ab, vor allem wenn du komplexe RAP Objekte aufbauen möchtest. Wenn du dich bereits im Aufbau und dem Handling mit RAP auskennst, empfehlen wir dir die Nutzung, um noch schneller bei der Umsetzung von Anwendungen zu werden.

 

Quelle:
SAP Blog - RAP Generator
SAP Blog - New Version of RAP Generator


Enthaltene Themen:
RAPBTPRAP GeneratorFiori Elements
Kommentare (0)



Und weiter ...

Bist du zufrieden mit dem Inhalt des Artikels? Wir posten jeden Freitag neuen Content im Bereich ABAP und unregelmäßig in allen anderen Bereichen. Schaue bei unseren Tools und Apps vorbei, diese stellen wir kostenlos zur Verfügung.


RAP - Übersetzungs-App (Beispiel)

Kategorie - ABAP

Schauen wir uns einmal ein praktisches Beispiel für die Entwicklung einer RAP Anwendung im ABAP Environment an und wie du mit wenig Aufwand eine App erstellst.

02.08.2024

RAP - Custom Entity Wertehilfe (Deep Dive)

Kategorie - ABAP

Mit der Custom Entity hast du in RAP die meisten Freiheiten in der Entwicklung von ABAP Cloud Anwendungen, doch wie sieht es mit potentiellen Fehlern aus?

12.07.2024

RAP - Deep Action in OData v4

Kategorie - ABAP

In diesem Artikel schauen wir uns einmal Aktionen mit tiefen Strukturen an, wie wir sie erzeugen und Daten an einen API Endpunkt übergeben können.

24.05.2024

BTP - Anbindung On-Premise (Consumption Model v2)

Kategorie - ABAP

In diesem Artikel wollen wir noch einmal einen Update zur Anbindung von On-Premise Systemen geben und wie dies mit einem Communication Arrangement durchgeführt wird.

15.12.2023

RAP - App Count anzeigen (Kachel)

Kategorie - ABAP

In diesem Beispiel geht es um die Anzeige eines Zählers auf der Kachel einer Fiori Elements Anwendung und wie sich so etwas umsetzen lässt.

06.10.2023