SAP River sagt HelloWorld

Nachdem ich im letzten Blog die Installation von River in unserer HANA beschrieben habe, möchte ich in diesem Blog die Schritte zum Erstellen eines Projektes zeigen. Wie es sich für den Anfang mit einer neuen Programmiersprache gehört, werden wir natürlich HelloWorld in River umsetzen.

Zunächst müssen wir eine River-Umgebung erstellen. Dazu rufen wir als SYSTEM-User oder als Benutzer mit den entsprechenden Berechtigungen die zuvor erzeugte Funktion CREATE_RIVER_ENVIRONMENT auf:

create_environment

Unsere Umgebung soll also „RiverHelloWorld01“ heißen. Nach erfolgreichem Aufruf erscheint im Content ein neues Package:

content_RiverHelloWorld

und  die Runtime-Rolle sowie die Entwickler-Rolle sind erstellt:

river_role

Jetzt legen wir einen Benutzer für den Entwickler an:

call_add_user_river_dt_role

und weisen ihm auch die Runtime-Role zu:

call_add_user_river_rt_role

Hier wird kein Passwort mehr übergeben, da der Benutzer bereits angelegt ist. Der Benutzer RiverEntw01 hat nun die entsprechenden Rollen:

riverentw_roles

 

 

Nun loggen wir uns auf der HANA mit diesem User an und können ein Projekt erstellen. Zunächst muss für den User RiverEntw01 ein Repository Workspace angelegt sein, siehe z.B. Section 3.3.2 (River Development Guide). Wir nennen den Workspace wsRiverEntw.

Um unser HelloWorld-Projekt zu erstellen gehen wir vor in Sektion 3.4 der River Developer Guide und dem Video http://www.saphana.com/docs/DOC-4368.
Nun benutzen wir den Projekt-Wizard vom HANA Studio, um ein River-Projekt anzulegen:

 

studio_projekt_erstellen

Als Nächstes teilen wir das Projekt mit dem Workspace (Team -> Share Project):

Durch Klicken auf „Browse“ können wir unser River-Package sehen.

share_project

Wichtig ist, dass das Häckchen „Add project folder as sub-package“ entfernt ist.

Nun können wir mit dem River-Code starten. In der bereits erstellten HelloWorld01.rdl-Datei erstellen wir eine Applikation und darin eine Entität „MyEntity“. Sie besitzt das Feld „Name“, das auch als Schlüssel dient und die Aktion „greeting“.

 

 

HelloWorld_01

Der Präfix @ODATA bewirkt, dass auch zugehörige OData-Services erstellt werden.

Nun müssen die RDL-Datei und die .xsapp-Datei noch aktiviert werden:

HelloWorld_aktivieren

Betrachten wir nun den HANA-Content, so sehen wir im Schema RiverHelloWorld01, dass für unsere Entität eine Tabelle angelegt wurde:

riverHelloWorld01_Schema

Um diese Tabelle mit Daten zu füllen, können wir nun den Button „Generate Test Data“ verwenden. Er ist nur dann aktiv, wenn der Cursor sich im Quelltext der Entität „MyEntity“ (oder einer anderen Entität) befindet.

river_inst_pic_5

Hier erhält man verschiedene Möglichkeiten, Zufallsdaten einzutragen. Es ist auch möglich Vorschläge für die einzelnen Felder aus einer lokalen Datei hochzuladen.  Nach erfolgreichem Generieren sehen wir die Daten in der Tabelle RiverHelloWorld01::HelloWorld01.MyEntity:

Beispieldaten

Nun wollen wir die OData-Funktionalität verwenden. Dazu bietet sich Chrome an, zusammen mit dem Plugin Postman, das man im Chrome Web Store herunterladen kann. Wir gehen vor wie in dem Video „HelloWorld ODATA“  ( http://www.saphana.com/docs/DOC-4369 ).

In der Adresszeile vom Postman gibt man nun die Adresse: http://<Adresse des HANA-Servers>:8000/sap/hana/rdl/odata/v1/RiverHelloWorld01/HelloWorld01 ein und wählt als Modus „GET“. Man erhält eine Übersicht über die erstellten Tabellen:

postman_get_entities

Um den Inhalt der Tabelle MyEntity zu sehen gibt man ein: http://<Adresse des HANA-Servers>:8000/sap/hana/rdl/odata/v1/RiverHelloWorld01/HelloWorld01/MyEntity:

postman_get_Tabelle

Um nun Daten einzufügen, muss man im Header die Anfrage für einen CSRF-TOKEN senden:

postman_csrf_token

Nach erfolgreicher Anfrage besteht der Header nun aus 6 Elementen, u.a. dem csrf-Token.

postman_csrf_token_2

 

Diesen kann man nun in einem Post-Statement verwenden:

postman_post_add_entity

Nach erfolgreichem Einfügen wird der eingefügte Datensatz angezeigt:

postman_add_line_sucess

 

Auf diesem können wir nun die Aktion greeting durchführen:

postman_greeting

Ergebnis:

postman_greeting_result

 

Fazit: Eine erste HelloWorld-Applikation ist schnell geschrieben. Dank dem automatischen Erzeugen von OData-Diensten ist es direkt möglich, von WebAnwendungen aus die Daten aufzurufen und zu verändern. Auch ohne UI kann der geübte Entwickler durch Zugriff auf die ODATA-Dienste das Funktionieren der Applikation testen. In einem späteren Blog werden wir dieses Datenmodell erweitern und weitere Funktionen von River vorstellen.

Literatur:

Getagged mit: , , , , ,

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*

*