Seit SAP Netweaver 7.4 SP05 besteht die komfortable Möglichkeit CDS Views in Eclipse zu erstellen und per Annotation auf dem SAP Gateway zu veröffentlichen. Mithilfe der verfügbaren Templates in der SAP WebIDE, lässt sich zu den CDS Views ganz einfach eine Oberfläche generieren. So entsteht mit wenigen Zeilen Code eine vollständige SAP Fiori Applikation. Doch die Nachteile werden bei dem Versuch, die so generierte Anwendung zu erweitern, schnell deutlich: Vergeblich sucht man im Projekt nach den bekannten XML Views oder JavaScript Controllern.

Im Folgenden wird beschrieben, wie sich ein CDS View mit zugehöriger Metadata Extension in ein bestehendes SEGW Projekt integrieren lassen. Anschließend werden Standard UI5 Smart Controls in einer klassischen UI5 Anwendung verwendet, um diese Daten zu konsumieren. Die dabei entstehende UI5 Anwendung, verbindet die Vorteile der CDS Views mit denen, der manuellen Entwicklung.

Anwendungsfall

Für das vorliegende Beispiel wird eine App im List Report Layout verwendet. Durch nachträgliche Anpassungen wird die App mit XML und JavaScript personalisiert.

Finale List Report Applikation

Bild 1: Finale List Report Applikation

Erstellen der CDS Views

Basis des CDS Consumption Views ‚ZMASTERSEARCH‘ sind verschiedene Interface Views. Da das Thema der Anlage und Struktur von CDS Views hinreichend beschrieben ist, wird an dieser Stelle nicht weiter darauf eingegangen.

Auszug des Consumption Views ZMASTERSEARCH, der im Folgenden für unsere Applikation verwendet wird

Bild 2: Auszug des Consumption Views ZMASTERSEARCH, der im Folgenden für unsere Applikation verwendet wird.

 

Metadata Extension für ZMASTERSEARCH

Bild 3: Metadata Extension für ZMASTERSEARCH

Erstellen des SEGW Projekts

Ein bestehendes SEGW Projekt wird um den Consumption View erweitert:

SEGW

Bild 4: SEGW

 

Auswahl des CDS Views

Bild 5: Auswahl des CDS Views

SEGW und CDS

Bild 6: SEGW und CDS

Nach dem Neugenerieren des Projekts kann die Entität über den Service erreicht werden.

Erfolgreicher Read auf den CDS View

Bild 7: Erfolgreicher Read auf den CDS View

Die Consumption View ist damit im SEGW Projekt integriert und kann in der UI5 Anwendung verwendet werden.

 

Annotation Service

Für die spätere Verwendung in der UI5 Anwendung müssen neben den Daten auch die Annotations vom Gateway zur Verfügung gestellt werden. Nachdem die CDS View in die SEGW integriert und das Projekt aktiviert wurde, erscheint unter den Laufzeitartefakten das Annotation Model.

Runtime Artifacts

Bild 8: Runtime Artifacts

Über den SAP Gateway Client können die Annotations angezeigt und mit einem Browser heruntergeladen werden. Dafür wird die Transaktion /N/IWFND/MAINT_SERVICE aufgerufen und der Gateway Client gestartet.

Katalog Service

Bild 9: Katalog Service

Annotation

Bild 10: Annotation

https://:/sap/opu/odata/IWFND/CATALOGSERVICE;v=2/Annotations(TechnicalName=’_ANNO_MDL‘,Version=’0001′)/$value

Die Annotations können heruntergeladen werden, um sie lokal zu verwenden.

Erstellen der UI5 Applikation

Zu Beginn der Entwicklung bietet es sich an, ein aktuelles Template aus der WebIDE zu laden.

 

Templates in der WebIDE

Bild 11: Templates in der WebIDE 

In der neuen Anwendung wird als erstes die manifest.json angepasst, sodass neben den Metadaten auch  Zugriff auf die Annotations besteht.

Annotation
Angepasste manifest.json

Bild 12: Angepasste manifest.json

Annotations- und Metadaten werden auf bekanntem Weg in die Applikation eingefügt.

 

webapp annotation
webapp annotation

Ab diesem Punkt hat man eine voll funktionsfähige UI5 List Report Anwendung, die über alle im Template und CDS View definierten Funktionen verfügt.

 

Konsum der CDS Views in der Applikation

Der View der UI5 Anwendung bekommt eine Smart Filter Bar und ein Smart Table Control. Beide Controlls erhalten das Entityset zmastersearch zugewiesen.
Die sap.m.Table innerhalb der SmartTable sorgt in diesem Fall für das farbliche Hervorheben der Ergebnistypen (highlight=“{path:’type‘, formatter:‘.formatter.lineHighlighter‘}“).

smartFilter
Smart Controls

Bild 15/16: Angepasste Smart Controls im View

Anschließend kann die Smart Table mit den üblichen Mitteln angepasst werden. In diesem Beispiel wurde der Zeilentyp manipuliert und entsprechende Handler eingefügt.

 

Copy to Clipboard

Autor: Tobias G.