Ansicht
Dokumentation

ABENDATABASE_PROCEDURE_PROXY - DATABASE PROCEDURE PROXY

ABENDATABASE_PROCEDURE_PROXY - DATABASE PROCEDURE PROXY

Addresses (Business Address Services)   BAL Application Log Documentation  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

Datenbankprozedur-Proxy

Zu jeder eigenständigen SQLScript-Prozedur der SAP-HANA-Datenbank können im ABAP Dictionary so genannte Datenbankprozedur-Proxies als Repository-Objekte des ABAP Dictionary angelegt werden, um die Datenbankprozedur in der Anweisung CALL DATABASE PROCEDURE anzusprechen. Ein Datenbankprozedur-Proxy kann wie folgt angelegt werden:

  • Über ein API der Datenbankprozedur-Proxy-Bibliothek. Dies erlaubt das Anlegen und Löschen von Datenbankprozedur-Proxies, für SQLScript-Prozeduren aus beliebigen Datenbankschemata. Das APIberuht auf Objekten der Klasse CL_DBPROC_PROXY, auf die über das Interface IF_DBPROC_PROXY_PUBLIC_API zugegriffen wird. Zur Erzeugung eines solchen API dient die Factory-Methode GET_PROXY_PUBLIC_API der Factory-Klasse CL_DBPROC_PROXY_FACTORY. Eine weitere Factory-Methode GET_PROXY_QUERY_API erlaubt das Anlegen eines weiteren APIs, mit dem Informationen über SQLScript-Prozeduren und Datenbankprozedur-Proxies besorgt werden können.

Im Datenbankprozedur-Proxy wird das Mapping zwischen den Datenbanktypen der Parameterschnittstelle der SQLScript-Prozedur und ABAP-Datentypen definiert. Die folgende Tabelle führt die derzeit unterstützten HANA-spezifischen Datentypen auf und zeigt auf welche Typen des ABAP Dictionary sie standardmäßig gemappt werden.

Das standardmäßige Mapping kann überschrieben werden, wobei auch die Parameternamen geändert werden können. Zu jedem Datenbankprozedur-Proxy wird ein Datenbankprozedur-Interface generiert, in denen passende ABAP-Typen deklariert werden.

Hinweise

  • Datenbankprozedur-Proxies können insbesondere für SQLScript-Prozeduren der SAP HANA XSC im SAP-HANA-Repository angelegt werden. Für SQLScript-Prozeduren der SAP HANA XSA können dagegen keine Datenbankprozedur-Proxies angelegt werden. Statt dessen müssen andere Mittel wie AMDP oder ADBC verwendet werden.
  • In Ausnahmefällen kann das API der Datenbankprozedur-Proxy-Bibliothek für Zugriffe auf SQLScript-Prozeduren verwendet werden, die nicht im SAP-HANA-Repository verwaltet werden. Die Interfaces und Klassen der Datenbankprozedur-Proxy-Bibliothek sind im Class Builder dokumentiert. Der einfachste Einstieg erfolgt über die Factory-Klasse CL_DBPROC_PROXY_FACTORY.
  • Wenn beim Mapping der Parametertypen zwischen Datenbanktypen und ABAP-Typen für letztere ein Bezug auf Datentypen des ABAP Dictionary gemacht und ein solcher Dictionary-Typ später modifiziert wird, kann das Datenbankprozedur-Proxy nicht automatisch neu generiert werden, wodurch es zu Schiefständen kommen kann. In einem solchen Fall muss das Datenbankprozedur-Proxy explizit neu generiert werden.
  • ABAP Managed Database Procedures (AMDP) benötigen keine Datenbankprozedur-Proxies und können immer verwendet werden, wenn SQLScript-Prozeduren nur für den Aufruf aus ABAP erstellt werden sollen und wenn die Standarddatenbank des aktuellen AS ABAP eine SAP-HANA-Datenbank ist. Da aus AMDP beliebige SQLScript-Prozeduren aufgerufen werden können, machen sie Datenbankprozedur-Proxies letztendlich unnötig, außer wenn eine Sekundärverbindung benötigt wird, um auf eine SAP-HANA-Datenbank zuzugreifen.
  • Es ist zwar möglich aber nicht sinnvoll, Datenbankprozedur-Proxies für Datenbankprozeduren anzulegen, die von AMDP verwaltet werden.

Im Beispiel Datenbankprozeduraufruf wird ein programmatisch erzeugtes Datenbankprozedur-Proxy verwendet, um eine über ADBC erzeugte Datenbankprozedur der SAP-HANA-Datenbank aufzurufen.






General Data in Customer Master   PERFORM Short Reference  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 6438 Date: 20240523 Time: 180900     sap01-206 ( 90 ms )