Website-Icon Developers4SAP

SEGW-Projekt (OData Service) mitsamt Implementierung kopieren

Der Gateway Service Builder (Transaktion SEGW) ist das allseits bekannte Werkzeug zur Implementierung eines OData Service auf einem SAP ABAP-System. Der Service Builder bietet die Funktion ein SEGW-Projekt zu kopieren. Das Kopieren kann notwendig sein, wenn

Die Kopierfunktion im Service Builder kopiert jedoch nur das Model, aber nicht die Laufzeitartefakte (MPC- und DPC-Klassen). In diesem Blog beschreibe ich, wie man mit ein bisschen Handarbeit die Laufzeitartefakte kopiert, um dann eine vollständig funktionale Kopie des Service zu erhalten. Als  Beispiel nehme ich den Service GWSAMPLE_BASIC, welcher viele Aspekte der OData-Entwicklung aufzeigt… Also auf gehts mit der Kopie eines SEGW-Projekt.

1. Kopieren des Service Builder Projekts /IWBEP/GWSAMPLE_BASIC

Starte den Service Builder und öffne das Projekt /IWBEP/GWSAMPLE_BASIC. Die Laufzeitartefakte für den Service bestehen ABAP-seitig aus globalen Klassen /IWBEP/CL_GWSAMPLE_BAS_DPC, /IWBEP/CL_GWSAMPLE_BAS_DPC_EXT, /IWBEP/CL_GWSAMPLE_BAS_MPC und /IWBEP/CL_GWSAMPLE_BAS_MPC_EXT.

Die folgende Abbildung zeigt das Kopieren auf das neue Projekt ZRLGWSAMPLE_BASIC.

Ein Generieren des neuen Projekts erzeugt die Laufzeitartefakte in den globalen ABAP-Klassen ZCL_ZRLGWSAMPLE_BASIC_DPC, ZCL_ZRLGWSAMPLE_BASIC_DPC_EXT, ZCL_ZRLGWSAMPLE_BASIC_MPC, ZCL_ZRLGWSAMPLE_BASIC_MPC_EXT.

2. MPC_EXT-Klasse: Neuanlage und Anpassen der Vererbung

Nun lösche die generierte ZCL_ZRLGWSAMPLE_BASIC_MPC_EXT-Klasse. Lege sie danach als Kopie von Klasse /IWBEP/CL_GWSAMPLE_BAS_MPC_EXT neu an.

Ändere die Vererbung der Klasse CL_ZRLGWSAMPLE_BASIC_MPC_EXT von /IWBEP/CL_GWSAMPLE_BAS_MPC auf Klasse ZCL_ZRLGWSAMPLE_BASIC_MPC. Es kommt das Popup mit der Frage, ob Methodenredefinitonen erhalten bleiben sollen. Diese Frage mit Ja beantworten.

 

3. MPC_EXT-Klasse: Anpassen des Codes

Die Typen in der Klasse ZCL_ZRLGWSAMPLE_BASIC_MPC_EXT referenzieren noch die originäre MPC-Klasse /IWBEP/CL_GWSAMPLE_BAS_MPC. Deshalb in die Quelltextansicht wechseln und /IWBEP/CL_GWSAMPLE_BAS_MPC durch ZCL_ZRLGWSAMPLE_BASIC_MPC ersetzen.

4. DPC_EXT-Klasse: Neuanlage und Anpassen der Vererbung

Das Vorgehen bei der DPC_EXT-Klasse ist analog zur MPC_EXT-Klasse.

  1. Klasse ZCL_ZRLGWSAMPLE_BASIC_DPC_EXT löschen
  2. Klasse ZCL_ZRLGWSAMPLE_BASIC_DPC_EXT neu anlegen als Kopie von /IWBEP/CL_GWSAMPLE_BAS_DPC_EXT
  3. Vererbung von /IWBEP/CL_GWSAMPLE_BAS_DPC auf ZCL_ZRLGWSAMPLE_BASIC_DPC ändern. Im Popup die Frage nach dem Erhalt der Redefinitionen wieder mit Ja beantworten

5. DPC_EXT-Klasse: Anpassen des Codes

Im Code der DPC_EXT-Klasse ZCL_ZRLGWSAMPLE_BASIC_DPC_EXT nun die Referenzen auf /IWBEP/CL_GWSAMPLE_BAS_MPC durch ZCL_ZRLGWSAMPLE_BASIC_MPC ersetzen. Rund 80 Ersetzungen werden damit durchgeführt. Jetzt kannst Du aktivieren und solltest keine Syntaxfehler bekommen.

6. Zusammenfassung

Das war es schon! Wir haben den GWSAMPLE_BASIC mitsamt seiner Implementierung in den neuen Service ZRLGWSAMPLE_BASIC kopiert. Wir mussten hierfür lediglich die DPC_EXT- und MPC_EXT-Klassen ein wenig anpassen.

Hast du noch Fragen zur Kopie von einem SEGW-Projekt oder zu anderen Themen?

Nutze gerne unsere Kommentarfunktion oder schreib mir direkt eine eMail

Du programmierst, bist ABAP-interessiert und hast Lust coole Projekte mit uns zu machen? Wir suchen dich! Schau doch mal in unserer Stellenbeschreibung vorbei.

 

Die mobile Version verlassen