Ansicht
Dokumentation

ABAPGET_PERMISSIONS_RULES - GET PERMISSIONS RULES

ABAPGET_PERMISSIONS_RULES - GET PERMISSIONS RULES

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

GET PERMISSIONS, Richtlinien

Bei der Verwendung von GET PERMISSIONS-Anweisungen müssen folgende Aspekte berücksichtigt werden:

  • Konsolidierung von Berechtigungsergebnissen und beste Vorgehensweisen
  • RAP-BO-Provider-Richtlinien
  • RAP-BO-Consumer-Richtlinien
  • Beste Vorgehensweisen für Berechtigungen

Konsolidierung von Berechtigungsergebnissen und beste Vorgehensweisen

  • Die Sequenz der Aufrufe der Implementierungsmethode (d.h. der Behandleraufrufe) ist wie folgt: Zuerst wird die Methode für die globale Berechtigung aufgerufen, gefolgt von den Methoden für instanzbasierte Berechtigung, globale Features und instanzbasierte Features. Diese Sequenz beeinflusst das Berechtigungsergebnis:
  • Falls eine globale Berechtigung für ein Element fehlschlägt, wird dieses Element aus der Anforderung für folgende Behandleraufrufe entfernt:

  • Falls globale Features ein Element ausschalten, wird dieses Element aus der Anforderung für folgende Behandleraufrufe entfernt:

  • Falls eine instanzbasierte Berechtigung für eine Instanz fehlschlägt, werden keine weiteren Behandler für diese Instanz aufgerufen.

  • Das Ergebnis der Berechtigungsanforderung kann zusammengeführte Informationen aufweisen und folgt spezifischen Prinzipien:
  • Die dynamische Feature-Control wird mit der Berechtigung zusammengeführt.

  • Globale Ergebnisse für instanzbasierte Elemente werden mit instanzbasierten Ergebnissen zusammengeführt. Es wird folgende Abbildung von statischen Features auf instanzbasierte Ergebnis durchgeführt:

- readonly wird auf das instanzbasierte Ergebnis readonly abgebildet
- readonly:update wird auf das instanzbasierte Ergebnis readonly abgebildet
- statisches mandatory wird in instanzbasierten Ergebnissen ignoriert
- statisches mandatory:create wird in instanzbasierten Ergebnissen ignoriert
mandatory und mandatory:create werden ignoriert, da sie nur für anlegende Operationen relevant sind und nicht für existierende Instanzen.
  • Globale Ergebnisse enthalten nur globale und statische Informationen.

  • Ergebnisse von statischen Features werden immer mit Ergebnissen von globalen Features zusammengeführt.

  • Die statische Feature-Control in Projektionen übersteuert die dynamische Feature-Control von ihren Basen.

  • Projektionen erben statische Features von ihren Basen.

  • Eine statische Feature-Control, die keinen Zusammenhang mit Berechtigungen hat, beispielsweise virtuelle Elementen oder Felder mit der Notation numbering:managed in der BDEF, wird von der GET PERMISSIONS-Anweisung nicht zurückgegeben.

  • Das Ergebnis enthält nur die Instanzen, in denen nicht leeren Daten von den relevanten RAP-BO-Provider-Implementierungen für die angeforderten Operationen zurückgegeben wurde. D.h. Instanzen mit keinen relevanten Einschränkungen sind im Berechtigungsergebnis nicht enthalten.
  • Falls das Fehlschlagen einer Instanz durch die Provider-Implementierungen gemeldet wird, enthält das Ergebnis keinen Eintrag für die Instanz, auch wenn andere Provider-Implementierungen gültige Ergebnisse zurückgegeben haben.
  • Das Berechtigungsergebnis enthält maximal einen Eintrag pro Instanz (hier ohne Berücksichtigung der Antworten für FAILED und REPORTED), auch wenn keys Duplikate enthält.
  • Das Ergebnis und die Einträge in den Antworten (d.h. die Antwortparameter für FAILED und REPORTED) können eine andere Reihenfolge als die eingegebenen Schlüssel aufweisen.
  • Die Antworten dürfen mehrere Einträge aus der gleichen Instanz enthalten, beispielsweise aus verschiedenen Provider-Implementierungen oder Angaben unterschiedlicher Fehlerursachen.

RAP-BO-Provider-Richtlinien

  • Berechtigungsbehandler oder Feature-Behandler dürfen nicht davon ausgehen, dass die erhaltenen Schlüsselwerte den vorhandenen Instanzen tatsächlich entsprechen.
  • Die Implementierung sollte keine duplikativen Einträge im Ergebnis zurückgeben.
  • Das Ergebnis und die Einträge in den Antworten (d.h. die Antwortparameter für FAILED und REPORTED sollten nur Instanzen aus den erhaltenen Schlüsseln enthalten, d.h. die Implementierung sollte keine anderen Instanzen hinzufügen, die zu den erhaltenen Schlüssel nicht gehören.
  • Das Ergebnis sollte keine leeren Einträge enthalten, d.h. Einträge mit ausschließlich initialen Feldern (außer den Schlüsselwerten).
  • Der Wertebereich - wie er für die Konstanten im Interface IF_ABAP_BEHV angegeben ist - für die Kennzeichen in den Ergebnis- und Antwortparametern sollte berücksichtigt werden.
  • Grundsätzlich sollte der RAP-BO-Provider bestimmte im Interface IF_ABAP_BEHV verfügbare Konstanten verwenden. Es sollte beachtet werden, dass Berechtigungen das Ergebnis einer Zusammenführung von Berechtigungs- und Feature-Control-Informationen sind, d.h. es existieren auf der Provider-Seite keine Berechtigungsbehandler und daher keine Konstanten für Berechtigungen.
  • Berechtigungs-Provider: IF_ABAP_BEHV=>AUTH

  • Feature-Provider: IF_ABAP_BEHV=>FC

  • Beispiel: Erhält der Consumer ein Ergebnis für die Berechtigungsermittlung, muss das Ergebnis mit Vorsicht interpretiert werden. Beispielsweise kann das Ergebnis den Wert '02' für Feldberechtigungen, das für read_only steht, aufweisen (IF_ABAP_BEHV=>PERM-F). Wenn der Wert 00 in diesem Kontext im Ergebnis zurückgegeben wird, kann es auf das Fehlen von Einschränkungen für das spezifische Feld hindeuten. Es kann aber auch heißen, dass das Feld im request-Parameter nicht eingeschaltet ist oder dass die Anforderung fehlgeschlagen ist (in diesem Fall sollte responses überprüft werden).

RAP-BO-Consumer-Richtlinien

  • Bei den Ergebnissen von Operationen und Assoziationen (global und instanzbasiert) kann BIT-AND mit den Konstanten PERM-O-UNAUTHORIZED und PERM-O-DISABLED des Interfaces IF_ABAP_BEHV verwendet werden, um zwischen fehlender Berechtigung und ausgeschaltetem Feature zu unterscheiden.
  • Das Abfragen von Feldergebnissen sollte über BIT-AND mit den Konstanten PERM-F-... des Interfaces IF_ABAP_BEHV erfolgen. Die statische Feature-Control mandatory wird ignoriert.
  • IF_ABAP_BEHV=>PERM

Beste Vorgehensweisen für Berechtigungen

  • Die Berechtigung für die Standardoperationen create, update und delete von einer in der BDEF angegebenen abhängigen Entität werden durch den Behandler für die standardmäßige Operationsaktualisierung seines authorization master implementiert. Weitere Information über den BDEF-Teil von Berechtigungen finden Sie unter CDS BDL - Berechtigung.
  • Die Berechtigungen für die Standardoperationen von authorization master, create, update und delete werden vom Behandler von authorization master implementiert.
  • Bei Kompositionen wird die Berechtigung, die auf create-by-association-Operationen prüft wie die Berechtigung behandelt, die auf update in der Quellentität prüft. Falls die Quellentität eine berechtigungsabhängige Entität ist, erfolgt die Berechtigungsprüfung auf authorization master (wie eine update-Berechtigung). Berechtigungen für Kompositionen können auch implementiert werden und daher werden das Berechtigungsergebnis für eine Aktualisierung und diese zusätzlichen Kompositionen über OR verknüpft.





Addresses (Business Address Services)   Addresses (Business Address Services)  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 13261 Date: 20240426 Time: 061736     sap01-206 ( 173 ms )