Ansicht
Dokumentation

ABENAMDP_CLIENT_HANDLING - AMDP CLIENT HANDLING

ABENAMDP_CLIENT_HANDLING - AMDP CLIENT HANDLING

Addresses (Business Address Services)   BAL_S_LOG - Application Log: Log header data  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

- Mandantenbehandlung

Die AMDP unterstützen keine implizite Mandantenbehandlung. Beim Zugriff auf mandantenabhängige Datenbanktabellen oder Views in einer AMDP-Methode muss die gewünschte Mandantenkennung explizit selektiert werden. In aller Regel muss die Parameterschnittstelle einer AMDP-Methode deshalb einen Eingabeparameter für die Mandantenkennung enthalten und dieser muss in einer WHERE-Bedingung verwendet werden. Für eine Ausnahme von der Regel siehe den Hinweis unten.

Hinweise

  • Die Verwendung eines Eingabeparameters für die Mandantenkennung empfiehlt sich insbesondere auch für AMDP-Funktionsimplementierungen mandantenabhängiger CDS-Tabellenfunktionen. Bei einem Zugriff aus werden standardmäßig zwar nur die Daten des aktuellen oder mit USING CLIENT angegebenen Mandanten in der Ergebnismenge berücksichtigt. Die Selektion genau dieser Daten bereits in der Implementierung der Funktion empfiehlt sich zum Einen aus Performancegründen und zum Anderen um das Lesen der richtigen Daten zu gewährleisten.
  • Bei einer Implementierung in SQLScript kann über die eingebaute Funktion SESSION_CONTEXT auch auf die ABAP-spezifische Sitzungsvariablen CLIENT und CDS_CLIENT der SAP-HANA-Datenbank zugegriffen werden. Bei einem Aufruf aus ABAP enthalten diese Variablen eine Mandantenkennung:
  • CLIENT enthält immer den nominellen Wert des ABAP-Systemfelds sy-mandt.

  • CDS_CLIENT enthält standardmäßig den gleichen Wert wie CLIENT , kann aber während der Ausführung einer -Anweisung durch den Zusatz USING CLIENT und beim Aufruf einer AMDP-Methode aus ABAP durch den Zusatz AMDP OPTIONS CDS SESSION CLIENT beeinflusst werden.

Ein solcher Zugriff sollte nur dann verwendet werden, wenn gewährleistet ist, dass eine AMDP-Methode ausschließlich aus ABAP aufgerufen wird und dass auf genau die Daten dieser Mandantenkennung zugegriffen werden soll. Andernfalls ist das Ergebnis undefiniert. Es wird deshalb in aller Regel empfohlen, die gewünschte Mandantenkennung über einen Eingabeparameter an AMDP-Funktionen zu übergeben und als Zugriffsbedingung zu verwenden.
  • Eine Ausnahme von der Regel sind Zugriffe auf CDS-verwaltete DDIC-Views mandantenabhängiger CDS-Views, deren Mandantenbehandlung durch die Annotation @ClientHandling.algorithm:#SESSION_VARIABLE bestimmt wird. Eine solche DDIC-Datenbank-View wertet in der Regel die Sitzungsvariable der Datenbank aus, welche der CDS-Sitzungsvariable $session.client zugeordnet ist. Auf einer SAP-HANA-Datenbank ist dies die HANA-Sitzungsvariable CDS_CLIENT. Wenn eine WHERE-Bedingung in der Implementierung einer AMDP-Methode eine andere Mandantenkennung selektiert, als in der Sitzungsvariable CDS_CLIENT enthalten ist, ist die Ergebnismenge dann leer. Aus diesem Grund darf bei einem Zugriff auf eine solche CDS-verwaltete DDIC-View in der Implementierung einer AMDP-Methode keine WHERE-Bedingung für die Mandantenkennung verwendet werden, sondern die Sitzungsvariable muss auf den gewünschten Wert gesetzt werden. Hierfür dient der Zusatz AMDP OPTIONS CDS SESSION CLIENT bei der Deklaration der Methode mit METHODS oder CLASS-METHODS. Ohne den Zusatz kommt es bei einem Zugriff auf eine solche CDS-verwaltete DDIC-View zu einem Syntaxfehler. Dies ist aber nur für allgemeine AMDP-Prozedurimplementierungen von Belang, die in ABAP wie normale Methoden aufgerufen werden. Bei einer AMDP-Funktionsimplementierung, die als CDS-Tabellenfunktion in der -Anweisung SELECT verwendet wird, kann die Sitzungsvariable mit dem Zusatz USING CLIENT gesetzt werden. Siehe das Beispiel zur Option SESSION CLIENT.

Beispiel

Das ausführbare Beispiel zur Implementierung einer SQLScript-Prozedur zeigt die explizite Mandantenbehandlung mit Hilfe eines Eingabeparameters und über die ABAP-spezifische Sitzungsvariable CLIENT.






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

Length: 7139 Date: 20240523 Time: 170055     sap01-206 ( 127 ms )