SAP River – Installation auf unserer HANA

Nachdem mein Kollege Sven Zech bereits über die neue Programmier- und Modellierungssprache River berichtet hat, siehe (http://blog.five1.de/five1-wird-early-adopter-von-sap-river/), zeige ich in diesem Blog die Schritte zur Installation von River auf der SAP HANA. River ermöglicht es native Backend-Applikationen für HANA in einer einheitlichen Programmiersprache zu entwickeln. Ein spezieller River-Compiler erzeugt aus dem Quelltext dann HANA-Artifakte wie Tabellen, Views oder Stored Procedure.

River besteht aus zwei Komponenten: Einer Serverkomponente, die auf der jeweiligen HANA installiert werden muss, und einem Plugin für das HANA Studio, das jeder Entwickler installieren muss.

Diese Komponenten werden über den Service Marketplace bereitgestellt. Um Zugriff auf sie zu erhalten, muss man am SAP Early Adoption Program von River teilnehmen (http://bit.ly/SAPRiverEA).

Die Installation der Server-Komponente geht wie in den Videos http://www.saphana.com/docs/DOC-4365,   http://www.saphana.com/docs/DOC-4366 und in der Sektion 2.1 der River-Developer-Guide (http://help.sap.com/download/River/SAP_River_Developer_Guide_en.pdf) beschrieben:

Auswahl der Delivery Unit:

river_inst_pic_1

Und erfolgreicher Abschluss der Installation:

river_inst_pic_2

Nach erfolgreichem Abschluss kann man im SAP-Namespace nun die River-Komponenten sehen:

Package:

package

 

Kommen wir nun zur Installations des HANA Studio Plugins. Dieses wird in einer ZIP-Datei angeliefert, in der sich wiederum eine ZIP-Datei names „RDLPLUGIN.ZIP“ im Unterordner „DATA_UNITS\RDL_PLUGIN_10“ versteckt. Nach dem Entpacken dieser Datei erhält man einen Ordner RDLPLUGIN:

river_inst_pic_3

Die Installation verläuft nun wie im Video Enabling the Environment (http://www.saphana.com/docs/DOC-4366) bzw. Section 2.3 „Installing the SAP River Plug-In” (SAP River Developer Guide) beschrieben.

 

Über Help -> Install New Software gelangt man in das Menü zur Installation des Plugins:

river_inst_pic_4

Hier wählt man obigen Ordner RDLPLUGIN (also jener, der content.jar und articfacts.jar enthält) aus.

Nach der Installation wird man zum Neustart des Studios aufgefordert. Dass River erfolgreich installiert wurde, sieht man auch an 3 neuen Buttons links neben den Schaltflächen zum Debuggen und Ausführen:

river_inst_pic_5

Diese Buttons sind zunächst ausgegraut, da sie nur aktiv werden, wenn man sich in einer River-Datei (*.rdl) befindet. Sie dienen zum Generieren von Testdaten, zur Vorschau von Daten und zum Testen der Odata-Calls. Doch dazu später mehr.

Bevor es nun endlich mit River losgehen kann, müssen wir noch ein bißchen SQL-Script machen. Dazu folgen wir Sektion 2.2 der River Developer Guide bzw. dem zweiten Teil des Videos Enabling the Environment (http://www.saphana.com/docs/DOC-4366).

Zunächst ist es wichtig im HANA-System zwei  Bereiche zu unterscheiden: Die Design-Time-Objects und die Runtime-Objects. Die Design-Time-Objects entsprechen den Quelltexten der jeweiligen Objekten, bzw. deren Definitionen im XML-Format. Diese werden in den Packages im HANA-System verwaltet. Durch Aktivierung dieser Objekte entstehen binäre Runtime-Objects, die im entsprechenden Schema oder im Schema SYSTEM (bei Stored Procedures) abgelegt werden.

Eine River-Umgebung besteht nun aus einem Package, das die Design-Time-Objekte enthält, und einem Schema, das die Runtime-Objekte enthält. Für die Entwickler müssen die entsprechenden Rechte zum Ändern und Ausführen gesetzt werden. Dies wird durch die nun folgenden Prozeduren erreicht.

Zunächst muss in der Systemkonfiguration der HANA die „developerrole“ für River gesetzt werden:

river_inst_pic_6

Dies erzeugt keine eigene Rolle, sondern wird später als Suffix für die Runtime-Role jeder River-Umgebung verwendet. Diese Runtime-Role hat die Berechtigungen zum Ausführen von Applikationen in dem jeweiligen River-Package.

Als nächstes müssen 3 SQL-Prozeduren erstellt werden:

 

  • CREATE_RIVER_ENVIRONMENT
  • ADD_USER_TO_RIVER_DT_ROLE
  • ADD_USER_TO_RIVER_RT_ROLE

Den Quelltext dazu findet man entweder in der River Developer Guide (2.3 Setting up Permissions) oder auf der Website von oben genanntem Video (http://www.saphana.com/docs/DOC-4366).

Kommen wir nun zum Aufruf und der Funktionsweise dieser Prozeduren:

river_inst_pic_7

CREATE_RIVER_ENVIRONMENT:

  • Erzeugt ein Schema sowie Package mit Namen <Namen der Umgebung>.
    • Der zweite Parameter ist eine Ausgabevariable, in der das Resultat des Erzeugungsvorgang geschrieben wird. Der Parameter ist optional.
    • Erzeugt die zugehörigen Rollen
      • Runtime-Role: <Namen der Umgebung> $<RTRoleSuffix>
        • RTRoleSuffix wird festgelegt durch den Konfigurationseintrag ‚developerrole‘, siehe oben, in unserem Fall ist der Suffix also DevRole.
      • Developer-Role: <Namen der Umgebung> $ DTRole

Der Developer-Role werden Berechtigungen auf dem Package zugewiesen, die Runtime-Role erhält die Ausführungsberechtigungen auf dem Schema.

 

ADD_USER_TO_RIVER_DT_ROLE:

  • Weist dem Benutzer <Name des User> die Developer-Role zu. Wenn der Benutzer noch nicht existiert, so wird er mit dem angegebenen Passwort erzeugt. Bei einem existierenden Benutzer hat die Angabe des Passwortes keine Wirkung.

 

ADD_USER_TO_RIVER_RT_ROLE:

  • Weist dem Benutzer <Name des User> die Runtime-Role zu. Wenn der Benutzer noch nicht existiert, so wird er mit dem angegebenen Passwort erzeugt. Bei einem existieren Benutzer hat die Angabe des Passwortes keine Wirkung.

Somit sind alle Vorarbeiten abgeschlossen. In dem nächsten Blog werde ich zeigen, wie man ein einfaches HelloWorld auf River erstellt. Dabei werden wir auch noch einmal einen Blick auf die Ergebnisse der obigen Prozeduren werfen können.

 

 

Literatur:

 

Getagged mit: , , , , ,

Schreibe einen Kommentar

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

*

*