Ein praktischer Leitfaden für ABAP RAP: Teil 4

Von Basant Singh

Ein praktischer Leitfaden für ABAP RAP: Teil 4

Von Basant Singh

Hallo Technophile!!

Willkommen zum vierten Teil unserer Blogserie über ABAP RAP. In den ersten drei Teilen haben wir verschiedene Programmiermodelle von ABAP besprochen, ABAP RAP kennengelernt, das Szenario in acht Schritte unterteilt und die ersten vier Schritte unserer Lösung implementiert. Wenn Sie unseren vorherigen Blog noch nicht gelesen haben, empfehlen wir Ihnen, diesen zuerst durchzuarbeiten, das Szenario zu verstehen und die genannten Schritte zu implementieren hier.

In diesem Beitrag werden wir den fünften Schritt besprechen:

  1. Erstellung eines Pakets zur Speicherung von Projektressourcen.
  2. Erstellung von drei Tabellen zusammen mit einem Datenelement, das in diesen Tabellen verwendet wird.
    1. Mitarbeiterinformationen: zum Speichern grundlegender Informationen über einen Mitarbeiter.
    2. Beschäftigungsinformationen: zur Speicherung von Beschäftigungskomponenten wie Eintrittsdatum und Gehalt.
    3. Positionsinformationen: zum Speichern von positionsbezogenen Informationen (diese werden als Wertehilfe/Prüftabelle verwendet).
  3. Erstellung einer CDS-Schnittstellensicht zur Erstellung einer Basisansicht ohne umfangreiche Informationen, die von verschiedenen Diensten genutzt werden kann.
  4. Erstellung einer CDS-Projektionsansicht, die ein Unterelement der CDS-Schnittstellensicht darstellt. Sie ist dienstunabhängig.
  5. Erstellung einer Metadatenerweiterung für UI-Elemente und Erstellung einer Verhaltensdefinition und -projektion zur Definition der möglichen Aktionen für den Dienst. Beispiel: Erstellen, Aktualisieren, Löschen, Bestimmung usw.
  6. Erstellung einer Verhaltensimplementierung zum Schreiben der Geschäftslogik in Bezug auf Aktionen wie Validierung, Aktion und Bestimmung.
  7. Erstellung eines Binding-Dienstes zur Definition des vom Dienst verwendeten Protokolls. Beispiel - OData V2 - UI, OData V2 - WebAPI usw.
  8. Legen Sie den Dienst offen.

Metadaten-Erweiterung

Die meisten von Ihnen wissen vielleicht schon, was Metadaten sind, aber für diejenigen, die es nicht wissen, hier ein kurzer Überblick:

Metadaten helfen dabei, Daten zu organisieren und zu finden, indem sie eine Beschreibung derselben enthalten. Kurz gesagt, Metadaten sind Daten über Daten.

Wenn Sie zum Beispiel ein Dokument speichern, enthält es Titel, Ersteller, Erstellungszeit, letzte Änderung usw. Dies gibt Aufschluss über alle Einzelheiten des erstellten Dokuments und gibt Aufschluss darüber, wann, von wem und wie viele Änderungen vorgenommen wurden.

Im Grunde ist die Metadatenerweiterung also eine Möglichkeit, eine CDS-Entität mit CDS-Annotationen zu erweitern, die nicht im CDS-Quellcode definiert sind.

Im Kontext von ABAP RAP hilft die Metadatenerweiterung bei der Definition der UI-bezogenen CDS-Annotationen in einem separaten CDS-Quellcode, der unabhängig von der CDS-Entität, für die er definiert wird, transportiert und aktiviert werden kann. Diese Unterstützung von Separation-of-Concern-Konzepten (SoC) ermöglicht eine bessere Lesbarkeit des CDS-Quellcodes.

Was ist, wenn ich keine Metadatenerweiterung hinzufüge?

Wenn Sie die Metadatenerweiterung nicht hinzufügen, müssen Sie beim Erscheinen der Benutzeroberfläche die anzuzeigenden Spalten manuell auswählen. Dieser zusätzliche Schritt wird vermieden, wenn die Metadaten vorhanden sind. Die Benutzeroberfläche wählt automatisch die Daten und Felder aus, die angezeigt werden sollen.

Definition von Verhaltensweisen

Schauen wir uns zunächst an, was "Verhalten" laut Google bedeutet -

Substantiv: Verhalten

die Art und Weise, wie man handelt oder sich verhält, insbesondere gegenüber anderen.

Nehmen wir nun an, Sie sind auf einer Party und die Organisatoren scheinen sehr glücklich und erfreut darüber zu sein, dass Sie sich ihnen anschließen. Wie würden Sie ihr Verhalten Ihnen gegenüber beschreiben? Sie könnten sagen, dass sie ein sehr angenehmes und höfliches Verhalten an den Tag legen. Als Menschen zeigen wir alle zu jeder Zeit Verhaltensweisen. ABAP RAP ist da nicht anders. Es zeigt auch Verhaltensweisen und benötigt dafür eine Verhaltensdefinition.

Eine Verhaltensdefinition ist ein ABAP-Repository-Objekt, das das Verhalten von Business-Objekten im Kontext von ABAP RAP darstellt. Sie bezieht sich immer auf ein CDS-Datenmodell und stützt sich direkt auf die CDS-Wurzelentität. Verhaltensdefinitionen für ein bestimmtes Composition Model werden für die CDS-Root-View erstellt und enthalten die Definition aller Entitäten.


Da wir nun wissen, was eine Metadatenerweiterung und eine Verhaltensdefinition ist, können wir mit der Erstellung dieser beiden Elemente fortfahren.

Schritt 5: Erstellung von Metadatenerweiterungen für UI-Elemente und Erstellung von Verhaltensdefinitionen und Projektionen zur Definition der möglichen Aktionen für den Dienst. Beispiel: Erstellen, Aktualisieren, Löschen, Bestimmen, usw.

5.1 Metadatenerweiterung für ZC_RAP_E2E_AEMP

Voraussetzung für die Erweiterung einer CDS-Entität um Metadatenerweiterungen ist, dass im DDL-Quellcode der CDS-Entität die Annotation Metadata.allowExtensions mit dem Standardwert true angegeben ist.

Klicken Sie mit der rechten Maustaste auf das von Ihnen erstellte Paket in der erster Schritt und gehen Sie zu Neu → Andere Repository-Objekte. Suchen Sie und wählen Sie "Metadatenerweiterung".

Geben Sie einen geeigneten Namen und eine Beschreibung ein und klicken Sie auf Weiter, wählen Sie den Transportauftrag und klicken Sie auf Fertig stellen.

💡 Wichtig: Die Namen der Metadatenerweiterungen sind die gleichen wie die der zugehörigen CDS-Entitäten.

Sobald Sie das Layout haben, fügen Sie den folgenden Code hinzu.

Die Metadaten-Erweiterung informiert über das Layout, die Positionierung und weitere UI-bezogene Informationen für die anzuzeigenden Felder.

5.2 Metadatenerweiterung für ZC_RAP_E2E_AEMPL

5.3 Metadatenerweiterung für ZC_RAP_E2E_AEMP_M

5.4 Metadatenerweiterung für ZC_RAP_E2E_AEMPL_M



5.5 Erstellung einer Verhaltensdefinition

Die Verhaltensdefinition wird für die Stammansicht der CDS-Schnittstelle und die Verhaltensprojektion für die Stammansicht der CDS-Projektion erstellt.

Der erste Teil dieses Schritts besteht wie immer darin, dass Sie zu Neu → Andere Repository-Objekte gehen. Suchen Sie dann nach "Verhaltensdefinition" und geben Sie eine passende Beschreibung dafür ein. Klicken Sie dann auf "Durchsuchen", um nach der "Root-Entität" zu suchen.

Nach der Auswahl der Stammansicht der CDS-Schnittstelle wird der Implementierungstyp automatisch zu Verwaltet.

Da die Art der Implementierung verwaltetmüssen wir es in der ersten Zeile erwähnen. Dies ermöglicht es RAP, die Erstellung, Aktualisierung und Löschung zu übernehmen. Hier Klasse zbp_i_rap_e2e_aemp ist die Klasse, in der wir die Geschäftslogik aller Verhaltensweisen definieren, die wir selbst implementieren, wie z. B. Aktion, Bestimmung, Validierung.

🗒️ Diese Klasse ZBP_I_RAP_E2E_AEMP wird im nächsten Teil unserer Blogserie erstellt.

Für die Schnittstellensicht Mitarbeiter definieren wir zwei Aktionen, eine Validierung und ein Bestimmungsverhalten.

Aktion

  1. hireEmployee - um den Status eines Mitarbeiters als aktiv zu setzen
  2. retireEmployee - um den Status eines Mitarbeiters auf inaktiv zu setzen

Validierung

  1. validateAge - zur Überprüfung des Alters eines Mitarbeiters anhand des Feldes DateOfBirth während der Speichersequenz des Erstellungsvorgangs.

Bestimmung

  1. assignIDs - um die EmployeeID während des Erstellungsvorgangs für einen Mitarbeiter zu erzeugen.

💡 Ermittlung beim Speichern - Die Ermittlung wird während der Speichersequenz am Ende einer Transaktion durchgeführt, wenn Änderungen aus dem Transaktionspuffer auf der Datenbank persistent sind.

Für die Sicht auf die Beschäftigungsschnittstelle definieren wir zwei Bestimmungen.

Bestimmung

  1. checkPositonAssigned - um zu prüfen, ob dem Mitarbeiter während des Erstellungsvorgangs bereits eine Stelle zugewiesen ist. Wenn eine Stelle bereits zugewiesen ist, wird bei der Erstellung einer neuen Stelle für denselben Mitarbeiter ein Fehler ausgegeben.

💡 Festlegung auf ändern

Die Ermittlung wird unmittelbar nach Datenänderungen im Transaktionspuffer ausgeführt, so dass das Ergebnis während der Transaktion zur Verfügung steht.

  1. assignAdditionalInfo - um dem Mitarbeiter automatisch das Gehalt in Abhängigkeit von der PositionID zuzuweisen.

5.6 Erstellung einer Verhaltensprojektion

Sobald die Verhaltensdefinition für die Root-Interface-View des Composition Models definiert ist, können wir mit der Erstellung der Verhaltensprojektion fortfahren.

Die Verhaltensprojektion wird unter Verwendung der Stamm-CDS-Projektionsansicht des Kompositionsmodells erstellt. In unserem Fall haben wir zwei Root-CDS-Projektionsansichten, also werden wir zwei Verhaltensprojektionen erstellen.

Nach der Auswahl der CDS-Stammansicht für die Projektion wird der Implementierungstyp automatisch auf Projektion umgestellt.

💡 Erstellen Sie eine Verhaltensprojektion für den Verbrauch des Managers, indem Sie die gleichen Schritte wie oben beschrieben ausführen oder die GitHub Repository für die Betrachtung aller Schritte von Anfang bis Ende.

Damit sind wir am Ende dieses Blogteils angelangt. Wir haben den fünften Schritt unserer Lösung abgeschlossen. In diesem Blog-Beitrag haben wir einen weiteren Schritt für unser praktisches Szenario zur Einstellung von Mitarbeitern implementiert. Außerdem haben wir die Verwendung und Anwendung von Verhaltensdefinition und -projektion sowie die Erweiterung von Metadaten verstanden.

Im nächsten und letzten Teil unserer Blogserie werden wir uns mit der Implementierung der Geschäftslogik für die Verhaltensdefinition befassen, gefolgt von der Dienstbindung und der Offenlegung des Dienstes. Bleiben Sie uns bis dahin verbunden und lernen Sie weiter mit uns, und vergessen Sie nicht, die GitHub Repository.

Das war's für den Moment, wir werden unsere Reise des Lernens von ABAP RAP bald fortsetzen. Auf Wiedersehen und viel Spaß beim Lernen!

Je effizienter die Digitalisierung und der Datenfluss sind, desto höher sind der Unternehmenswert und die Wettbewerbsfähigkeit.

Möchten Sie ein INTEGRTR werden?

DE