Ein praktischer Leitfaden für ABAP RAP: Teil 5

Von Basant Singh

Ein praktischer Leitfaden für ABAP RAP: Teil 5

Von Basant Singh

Hallo Technophile!!

Willkommen zum fünften und letzten Teil unserer Blogserie über ABAP RAP. In den ersten vier Teilen haben wir über verschiedene Programmiermodelle von ABAP gesprochen, ABAP RAP kennengelernt, das Szenario in acht Schritte unterteilt und diese bis zum fünften Schritt implementiert. In diesem Blog werden wir nun alle verbleibenden Schritte, d.h. von Schritt 6 bis 8, implementieren. Wenn Sie unseren vorherigen Blog noch nicht gelesen haben, empfehlen wir Ihnen, ihn zuerst durchzugehen, das Szenario zu verstehen und die genannten Schritte zu implementieren hier.

In diesem Beitrag werden wir die Schritte 6 bis 8 besprechen, mit denen die Entwicklungen für unser Szenario abgeschlossen werden:

  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 einer Bindungsdefinition zusammen mit der Dienstbindung zur Definition der freizugebenden Entitäten bzw. des vom Dienst verwendeten Protokolls. Beispiel - OData V2 - UI, OData V2 - WebAPI usw.
  8. Veröffentlichen Sie den Dienst.

Schritt 6: Erstellung der Verhaltensimplementierung zum Schreiben der Geschäftslogik im Zusammenhang mit Aktionen wie Validierung, Aktion und Bestimmung.

Nachdem wir das Verhalten des Dienstes in der Verhaltensdefinition festgelegt haben, müssen wir die Geschäftslogik implementieren, damit diese Verhaltensweisen funktionieren. Dies kann durch die Erstellung der Klasse zbp_i_rap_e2e_aemp geschehen, die in der Verhaltensdefinition im vorherigen Teil definiert wurde.

Um die erwähnte Klasse zu erstellen, klicken Sie auf die Schaltfläche "Zwiebel" auf der linken Seite der Anweisung in der Zeile.

Nach der Erstellung der Klasse erhalten Sie eine Klasse mit Boilerplate-Code, der die Klassendefinition und die Implementierung für die verschiedenen Entitäten enthält, die ausgesetzt werden. Dies ist der Ort, an dem wir die Geschäftslogik weiter schreiben werden.

🤔 Wie Sie sehen, gibt es eine Methode namens get_instance_features. Sie wird generiert und scheint nicht mit dem Namen einer Validierung, Bestimmung oder Aktion übereinzustimmen. Ist das nicht seltsam?

Die Methode get_instance_features wird erstellt für dynamische Funktion Kontrolle für einige Standardvorgänge, Aktionen und auf Feldebene. Das bedeutet, dass je nach den Bedingungen des Merkmals die Operation entweder ausgeführt werden kann oder nicht. Wir werden dies für Aktionen in unserem Szenario implementieren, nämlich Mitarbeiter einstellen und Mitarbeiter kündigen.


Schauen wir uns die Geschäftslogik für die untergeordnete Klasse LHC_EMPLOYEE an, die der Entität Employee entspricht.

LHC_EMPLOYEE

Diese Klasse wurde speziell für die Entität "Mitarbeiter" erstellt. Ihre Aufgabe ist es, das Alter eines Mitarbeiters zu überprüfen, einen Mitarbeiter einzustellen und zu entlassen und ihm eine ID zuzuweisen.

Verwenden Sie den unten stehenden Code, aber aktivieren Sie das Objekt nicht.

💡 Kurzinfo: Sprache zur Manipulation von Entitäten wird verwendet, wenn es um Festlegungen, Validierung und Maßnahmen geht. Mehr dazu hier.

LHC_BESCHÄFTIGUNG

Ähnlich wie die Entität Mitarbeiter wird diese Klasse speziell für die Entität Beschäftigung erstellt. Sie ermöglicht es uns, die Geschäftslogik zu schreiben, um zu prüfen, ob einem Mitarbeiter eine Position zugewiesen ist oder nicht, und um dem Mitarbeiter zusätzliche Informationen zuzuweisen.

In der Methode checkPositionAssigned lösen wir eine Ausnahmemeldung aus, wenn einem Mitarbeiter bereits eine Position zugewiesen ist und eine andere Position zugewiesen wird. Dazu werden wir in den nächsten Schritten die notwendige Ausnahmeklasse und Nachrichtenklasse erstellen. Bis dahin sollten wir die Klasse nicht aktivieren.

Nachdem wir nun die Methoden für die gesamte Geschäftslogik implementiert haben, werden wir zusätzliche Ressourcen implementieren, die für die Ausgabe von Fehlermeldungen erforderlich sind. Zu diesem Zweck werden wir die Klasse ZCM_RAP_E2E und die Nachrichtenklasse ZRAP_E2E_MSG implementieren.

Nachrichtenklasse - ZRAP_E2E_MSG


Hier werden wir eine Nachrichtenklasse erstellen, um den gesamten Nachrichtentext mit Nachrichten-ID hinzuzufügen.

So erstellen Sie eine Nachrichtenklasse, Klicken Sie mit der rechten Maustaste auf Ihr Paket->Neu->anderes ABAP Repository Object->Texte->Nachrichtenklasse.

Geben Sie den Namen und die Beschreibung der Nachrichtenklasse an, weisen Sie einen Transportauftrag zu und wählen Sie Oberfläche.

Nachdem wir nun die Nachrichtenklasse erstellt haben, fügen wir einen Nachrichtentext zusammen mit der Nachrichten-ID ein.

Speichern und aktivieren Sie die Nachrichtenklasse.

Klasse für Ausnahmen - ZCM_RAP_E2E

Die Klasse ZCM_RAP_E2E wird als eine Ausnahmeklasse hinzugefügt. Eine Ausnahmeklasse wird verwendet, um die Unstimmigkeiten zu behandeln, die während der Ausführung eines Programms auftreten.

  • So erstellen Sie eine Ausnahmeklasse, Rechtsklick auf Ihr Paket->Neu->ABAP-Klasse.
  • Geben Sie Name und Beschreibung an und stellen Sie CX_STATIC_CHECK als Superklasse und fügen Sie IF_ABAP_BEHV_MESSAGE als Schnittstellen.
  • Weisen Sie einen Transportauftrag zu und wählen Sie Oberfläche.
  • Fügen Sie den unten angegebenen Code ein.

📢 Möchten Sie mehr erfahren? - Folgen Sie unserem GitHub-Repository

Bis jetzt ist alles in Ordnung, aber glauben Sie nicht, dass wir vergessen haben, die Prüftabelle für die Position auszufüllen, die wir verwenden werden, um die Position zu überprüfen und Informationen wie Positionstext und Gehalt hinzuzufügen? Lassen Sie uns das tun.

Wir werden eine einfache Klasse ZCL_GENERATE_E2E_DATA zum Auffüllen der Tabelle ZRAP_E2E_APOS erstellen.

Schritt 7: Erstellung einer Bindungsdefinition zusammen mit einer Dienstbindung zur Definition der freizugebenden Entitäten bzw. des vom Dienst verwendeten Protokolls. Beispiel - OData V2 - UI, OData V2 - WebAPI usw.

🥁 Trommelwirbel, wir sind fast fertig, halt durch, Kumpel.

Definition der Dienstleistung

Die Dienstdefinition sagt uns, welche Entität offengelegt werden muss. Es handelt sich um eine Projektion des Datenmodells und des damit verbundenen Verhaltens, das offengelegt werden soll.

So erstellen Sie eine Dienstdefinition, Klicken Sie mit der rechten Maustaste auf Ihr Paket->Neu->anderes ABAP Repository Object->Business Service->Service Definition.

Geben Sie einen Namen und eine Beschreibung ein und wählen Sie die "Exposed Entity" aus, indem Sie auf "Browse" klicken. Klicken Sie anschließend auf Weiter→ Fertigstellen. Hier wählen wir die Verbrauchsansicht für Manager HR.

Danach geben Sie den folgenden Code ein. Hier teilen wir dem Compiler mit, welche Ansicht ausgesetzt werden soll. In diesem Fall handelt es sich um die Ansichten "Schnittstelle" und "Verbrauch". Dies sind die Ansichten, die für das HR-Manager-Szenario benötigt werden.

Auf die gleiche Weise kann auch eine Dienstdefinition für Manager erstellt werden.

Nachdem Sie die Dienstdefinition erstellt haben, müssen Sie sie auch binden, und für diese Aufgabe werden wir Service Binding implementieren. Service Binding wird verwendet, um eine Dienstdefinition an ein Client-Server-Kommunikationsprotokoll wie OData zu binden.

Hierfür, Klicken Sie mit der rechten Maustaste auf den Ordner "Business Services", in dem Sie gerade eine Dienstdefinition erstellt haben, und klicken Sie auf Neu>Dienstbindung.

Danach geben Sie den Namen und die Beschreibung für diese Dienstbindung an. Der nächste Teil besteht darin, den Bindungstyp und die Dienstdefinition auszuwählen, für die die Dienstbindung erstellt werden soll. Wir wählen also 'OData V2 - BenutzeroberflächeDa wir diese Bindung für die Service-Definition ZUI_RAP_E2E_AEMP_M erstellen, wählen wir diese aus der Option "Durchsuchen" aus.

Klicken Sie auf Weiter, wählen Sie den entsprechenden Transportauftrag und klicken Sie auf Fertig stellen. Es wird ein Bildschirm angezeigt, der besagt, dass die Dienstbindung hergestellt ist.

Schritt 8: Veröffentlichen des Dienstes

Nun müssen Sie ihn aktivieren und dann auf "Publish local service endpoint" klicken, um ihn zu veröffentlichen. Dadurch können Sie die Vorschau des OData V2 - UI-Dienstes in Form einer Fiori-UI sehen.

Nach der Veröffentlichung können Sie die Komponenten sehen und durch Wählen Sie die Komponente aus und klicken Sie auf "Vorschau".werden Sie zur Benutzeroberfläche für das ausgewählte Element weitergeleitet.

Ebenso müssen Sie eine weitere Dienstbindung für den HR-Dienst erstellen. Wenn Sie sich nicht sicher genug fühlen, um sie zu erstellen, können Sie jederzeit unser GitHub-Repository dafür besuchen. Hier ist die Link.

Das Endergebnis

Wie Sie wissen, haben wir in unserem Szenario den UI-Zugriff, die Berechtigungen und die Anzeige für HR und HR-Manager getrennt kodiert, so dass im Folgenden die endgültigen Bildschirmvorschauen für beide zu sehen sind!

HR

Personalleiter

Damit sind wir am Ende unserer Blogserie angelangt. Wir haben alle Schritte unserer Lösung für das Einstellungsszenario abgeschlossen. In diesem Blogbeitrag haben wir die letzten drei Schritte implementiert, wobei wir zuerst die Verhaltensimplementierung für die Geschäftslogik erstellt haben, dann die Bindungsdefinition, gefolgt von den Bindungsdiensten. Im letzten Schritt haben wir alle erstellten Dienste veröffentlicht und die Funktionsweise der einzelnen veröffentlichten UI-Dienste überprüft.

Wir hoffen, dass Sie nun ein besseres Verständnis für ABAP RAP und seine Anwendung haben. Also, warum hier aufhören, gehen Sie hinaus und erstellen Sie mehr solcher Anwendungen mit Fähigkeiten wie Entwurfsbearbeitung, Multi-Inline-Edit und was nicht. Folgen Sie dem Link zu SAP-Hilfe um mehr zu lernen.

Es ist Zeit für uns, Abschied zu nehmen. Es war eine lustige und interessante Reise. Wir werden uns bald mit weiteren Beiträgen zu verschiedenen Themen zurückmelden. Bis dahin, 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