Ansicht
Dokumentation

ABENAMDP_HDB_GRAPH - AMDP HDB GRAPH

ABENAMDP_HDB_GRAPH - AMDP HDB GRAPH

PERFORM Short Reference   Vendor Master (General Section)  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

- Graphenverarbeitung

AMDP unterstützt zwei SAP-HANA-Artefakte für die Verarbeitung von Graphen:

Graph-Workspaces können von Graphenprozeduren konsumiert werden, die GraphScript verwenden. Diese ist die Implementierungssprache einer AMDP-Methode, die den Zusatz FOR HDB LANGUAGE GRAPH in der Anweisung METHOD angibt. Anders als bei AMDP-Prozeduren und AMDP-Funktionen arbeiten Methoden in diesem Kontext mit nichtprozeduralen Datenbankobjekten (DDL-Objekten).

SAP-HANA-Graphenreferenz

Graph-Workspace

Graph-Workspaces werden in AMDP-Methoden, die eine Knotentabelle und eine Kantentabelle als Quellen für ein Modell für einen Graphen deklarieren.

Die Deklaration besteht aus der Schlüsselspalte einer Knotentabelle (Knotenschlüssel), der Schlüsselspalte einer Kantentabelle (Kantenschlüssel) und einer Quellen- und Zielspalte einer Kantentabelle. Zur Zeit sind Graph-Workspaces auf eine Schlüsselspalte und eine Quellen- und Zielspalte beschränkt.

Graph-Workspaces dürfen während einer Syntaxprüfung nicht vorgetäuscht werden. Eine getrennte Signatur steht nicht zur Verfügung und stattdessen muss das vollständige Datenbankobjekt angelegt werden. Es dürfte in einer anderen AMDP-Klasse definiert werden und andere AMDP-Objekte verwenden. Daher ist eine spezielle Behandlung notwendig und es müssen Implementierungsangaben aus anderen Klassen verwendet werden (transitive Syntaxprüfung).

Definition und Implementierung eines Graph-Workspaces

Folgende Quelltextabschnitte sind dem Beispiel - Graphenverarbeitung entnommen.

Definition:

Die Methodendefinition muss den Zusatz FOR DDL OBJECT enthalten.

CLASS-METHODS graph_workspace FOR DDL OBJECT
        OPTIONS CDS SESSION CLIENT REQUIRED.

Implementierung:

Die Anweisung METHOD enthält den Zusatz BY DATABASE GRAPH WORKSPACE. Zur Zeit sind hinter dem Zusatz USING nur CDS-Views erlaubt. Die Deklaration der Knotentabelle und Kantentabelle ist enthalten. Die Deklaration besteht aus der Schlüsselspalte einer Knotentabelle (Knotenschlüssel), der Schlüsselspalte einer Kantentabelle (Kantenschlüssel) und einer Quellen- und Zielspalte einer Kantentabelle. Zur Zeit sind Graph-Workspaces auf eine Schlüsselspalte und eine Quellen- und Zielspalte beschränkt.

Graphenprozedur

Graphenprozeduren sind Methoden, die sich auf Graph-Workspaces beziehen und mit Modellen von Graphen arbeiten. Graphenprozeduren dürfen skalare Eingabeparameter und skalare oder tabellarische Ausgabeparameter besitzen. Inkonsistenzen in den zugrundeliegenden Knoten- und Kantentabellen können zu Laufzeitfehlern (CX_AMDP_EXECUTION_FAILED) führen, zum Beispiel beim Nichtvorhandensein der Kantenquelle oder des Kantenziels in der Knotentabelle.

Definition und Implementierung einer Graphenprozedur

Folgende Quelltextabschnitte sind dem Beispiel - Graphenverarbeitung entnommen.

Definition:

Das Beispiel zeigt rein skalare Eingabeparameter. Die Ausgabeparameter sind sowohl skalar als auch tabellarisch.

CLASS-METHODS get_shortest_path
      AMDP OPTIONS CDS SESSION CLIENT current
      IMPORTING VALUE(im_city_from) TYPE demo_cds_spfli4graph-cityfrom
                VALUE(im_city_to)   TYPE demo_cds_spfli4graph-cityto
      EXPORTING VALUE(ex_weight)    TYPE int8
                VALUE(ex_route)     TYPE tt_conn
      RAISING   cx_amdp_execution_failed.

Implementierung:

Die Anweisung METHOD enthält den Zusatz FOR HDB LANGUAGE GRAPH zur Kennzeichnung vom GraphScript-Quelltext in der Implementierung. Der Zusatz READ-ONLY ist obligatorisch. Hinter dem Zusatz USING muss ein Graph-Workspace stehen.

Mit dem Beispiel - Graphenverarbeitung wird eine Graphenverarbeitung über den Graph-Workspace und eine Graphenprozedur demonstriert.






BAL Application Log Documentation   PERFORM Short Reference  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 7663 Date: 20240523 Time: 180050     sap01-206 ( 100 ms )