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

RAP - Generator (ADT)

343

Schauen wir uns heute den RAP Generator an, der bereits in die ABAP Development Tools integriert ist und wie du damit ganz leicht neue RAP Apps aufbauen kannst.

Werbung


Das Erstellen von RAP Anwendungen per Hand und den Aufbau der einzelnen Objekte kann einiges an Zeit kosten. In diesem Artikel erfährst du mehr über den RAP Generator und wie er deine Geschwindigkeit beim Erstellen von Apps erhöhen kann.

 

Einleitung

Bisher haben wir vor allem RAP Objekte mit der Hand erstellt und immer wieder den Stack manuell aufgebaut. Zum Lernen ist diese Methode hervorragend geeignet, um die verschiedenen Objekte und die Nutzung kennenzulernen. Sobald du aber alle Grundlagen kennst, wird es Zeit, etwas Geschwindigkeit in die Entwicklung zu bekommen. Dafür gibt es zwei verschiedene RAP Generatoren, der in die ADTs integrierte und die Fiori Elements Anwendung, die man erst im System installieren muss. In diesem Artikel stellen wir dir den Generator aus dem ADT vor.

 

Tabelle

Die Entwicklung beginnt daher mit der Tabelle, die wir dem Generator zur Verfügung stellen müssen. Hier solltest du bereits alle nötigen Datenelemente angelegt haben, die du später für die Definition und die Texte der Anwendung benötigst. Zusätzlich müssen zwei Pflichtfelder zur Verfügung gestellt werden, diese können sich am Ende der Tabelle befinden.

local_last_changed : abp_locinst_lastchange_tstmpl;
last_changed       : abp_lastchange_tstmpl;

 

Die Felder werden für das Sperren und den Draft benötigt und diese wird der Dialog später auch noch einfordern, falls du sie einmal vergessen hast. Für das nachfolgende Beispiel definieren wir einmal die folgende Tabelle im System:

@EndUserText.label : 'Easy RAP Generator'
define table zbs_dmo_gen1 {
  key client         : abap.clnt not null;
  key uuid_key       : zbs_demo_key not null;
  description        : zbs_demo_description;
  @Semantics.amount.currencyCode : 'zbs_dmo_gen1.currency'
  price              : zbs_demo_price;
  currency           : abap.cuky;
  local_last_changed : abp_locinst_lastchange_tstmpl;
  last_changed       : abp_lastchange_tstmpl;
}

 

Generator

Den Generator rufst du über das Kontextmenü der Tabelle auf. Mit dem Punkt " Generate ABAP Repository Objects ..." kannst du diesen nun für die gewählte Tabelle starten.

 

Auf dem nächsten Bild werden verschiedene Generatoren für verschiedene Szenarien angeboten. Möchtest du für RAP etwas generieren, stehen dir der UI und der API Generator zur Verfügung. Möchtest du mehr Konfiguration und Tabellenpflege machen, kannst du hier den Pflege-Generator verwenden. Wir machen aber mit dem UI Generator für RAP weiter.

 

Im nächsten Bild müssen wir nur das Paket bestätigen, standardmäßig wird hier das Paket der Tabelle vorgeschlagen. Solange wir vom Standard nicht abweichen, können wir dieses Bild überspringen. Im nächsten Bild konfigurieren wir die Objekte, die angelegt werden sollen und haben Einfluss auf die Namen.

 

Entsprechend müssen wir nun durch die verschiedenen Punkte des Baums navigieren und befüllen die Felder mit Informationen. Der Punkt "General" sieht wie folgt aus.

 

Unter dem Punkt "Data Model" definieren wir den Namen der Root Entität und dem vergebenen Alias. Dieser Alias kann später für den Zugriff über EML verwendet werden.

 

Beim Punkt "Behavior" wird alles mit dem Verhalten definiert, die Klasse für die Verhaltensimplementierung und der Name der Draft Tabelle. Auch das Szenario Managed ist bereits vorbelegt, kann aber nicht geändert werden.

 

Bei der "Service Projection" muss nur noch der Name des Projektions-Views definiert werden, es wird ein entsprechender Vorschlag vom System gemacht, kann aber auch überschrieben werden, um deinen Konventionen zu entsprechen.

 

Unter "Service Definition" wird der eigentliche Service ohne Protokoll definiert, unter dem Service werden alle benötigten Core Data Services freigegeben.

 

Beim letzten Punkt "Service Binding" musst du den Namen für den Service vergeben.

 

Zum Abschluss erhältst du die Liste aller Objekte, die generiert werden sollen, hier hast du noch einmal die Möglichkeit die Namenskonventionen und Objekte zu prüfen.

 

Nach Abschluss wird der Transport gewählt und die Generierung der Objekte startet. Die Generierung kann einige Sekunden in Anspruch nehmen, da einige Objekte angelegt werden müssen.

 

Aktivierung

Nachdem alle Objekte angelegt wurden, wir nun das Service Bindung des OData Service geöffnet. Hier musst du nur noch den "Publish" Button tätigen, damit der OData freigegeben wird und dann auch genutzt werden kann.

 

Die Aktivierung dauert meist etwas länger, im Anschluss können wir über den "Preview ..." Button unsere Anwendung testen.

 

Objekte

Wir hatten bereits im Generator einige Objekte benannt und angegeben, es wurden aber noch einige Objekte mehr generiert. So haben wir die beiden Verhaltendefinitionen und die Metadaten Erweiterung automatisch mit dazu bekommen. Das spart uns die Definition der Ausgabe und wir können die Demo-App direkt benutzen.

@Metadata.layer: #CORE
@UI: {
  headerInfo: {
    typeName: 'Simple', 
    typeNamePlural: 'Simples'
  }
}
annotate view ZBS_C_DMOGEN1 with
{
  @UI.facet: [ {
    id: 'idIdentification', 
    type: #IDENTIFICATION_REFERENCE, 
    label: 'Simple', 
    position: 10 
  } ]
  @UI.lineItem: [ {
    position: 10 , 
    importance: #MEDIUM, 
    label: ''
  } ]
  @UI.identification: [ {
    position: 10 , 
    label: ''
  } ]
  UuidKey;
  
  @UI.lineItem: [ {
    position: 20 , 
    importance: #MEDIUM, 
    label: ''
  } ]
  @UI.identification: [ {
    position: 20 , 
    label: ''
  } ]
  Description;
  
  @UI.lineItem: [ {
    position: 30 , 
    importance: #MEDIUM, 
    label: ''
  } ]
  @UI.identification: [ {
    position: 30 , 
    label: ''
  } ]
  Price;
  
  @UI.lineItem: [ {
    position: 40 , 
    importance: #MEDIUM, 
    label: 'Currency'
  } ]
  @UI.identification: [ {
    position: 40 , 
    label: 'Currency'
  } ]
  Currency;
  
  @UI.hidden: true
  LocalLastChanged;
}

 

Nutzung

Der RAP Generator spart vor allem Zeit bei der Generierung des RAP Stacks, die x-te App manuell aufbauen bedeutet eigentlich nur noch Fleißarbeit. Diese Arbeit nimmt dir der Generator ab und schafft dir so mehr Zeit für die eigentliche Arbeit an der App, wie Aufbau der Suchhilfen, Gestaltung der Bilder und der App. Du erhälst vom Generator:

  • Funktionierende OData v4 App
  • Integriertes Draft Handling
  • Ready-to-Use,  Ready-To-Develop
  • Maximal eine Entität generieren

 

Allerdings solltest du auch einige Dinge beachten. Der Generator stellt einmalig eine Anwendung zur Verfügung, er ist nicht für die Nachgenerierung gedacht. Alle Änderungen die du dann durchführst, bleiben soweit bestehen und die Weiterentwicklung findet dann über den Entwickler statt.

 

Beispiel

Das vollständige Beispiel findest du wie immer bei uns im GitHub Repository unter dem entsprechenden Commit, aber auch in dem Paket ZBS_DEMO_RAP_GEN1.

 

Fazit

Der RAP Generator bietet dir als RAP Experten einen schnellen Einstieg in die Entwicklung von neuen Applikationen und spart dir vor allem Zeit bei der Anlage der Objekte im System. Es werden dir verschiedene Standardfunktionalitäten geschenkt, die du bei der weiteren Entwicklung einsetzen kannst.

 

Tutorials:
Developers - Generate a RAP Business Service


Enthaltene Themen:
RAPBTPRAP GeneratorADT
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 - Suchhilfe und Schlüssel optimieren

Kategorie - ABAP

In diesem Artikel optimieren wir unsere Suchhilfen im Custom Pattern, verwenden das Additional Binding und machen unsere RAP Anwendung fit für den Endanwender.

06.05.2025

RAP - Festwert-Filter

Kategorie - ABAP

Wie verwendest du Festwerte aus einer Domäne für einen Filter und passt diesen nach deinen Bedüfnissen in RAP an? Mehr dazu hier.

02.05.2025

RAP - Custom Pattern (Verhalten)

Kategorie - ABAP

In diesem Artikel erweitern wir das Custom Pattern in RAP um zusätzliche Daten und Verhalten. Damit können wir Mehrwerte in der Implementierung schaffen.

29.04.2025

RAP - Custom Pattern

Kategorie - ABAP

Wie funktioniert das Custom Pattern in der ABAP Entwicklung und für welche Szenarien kannst du es in der Entwicklung verwenden? Lass uns dazu ein Beispiel anschauen.

25.04.2025

RAP - Tree View (Löschverhalten)

Kategorie - ABAP

In diesem Artikel schauen wir uns das Verhalten beim Löschen von Knoten im Tree View mit RAP an. Dabei gibt es einige interessante Punkte zu beachten.

15.04.2025