Ansicht
Dokumentation

ABENGET_PERM_ONLY_ABEXA - GET PERM ONLY ABEXA

ABENGET_PERM_ONLY_ABEXA - GET PERM ONLY ABEXA

General Material Data   PERFORM Short Reference  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

- GET PERMISSIONS, only_clause

Dieses Beispiel zeigt alle Varianten der only_clause mit einem einfachen verwalteten RAP BO.

Datenmodell

Das CDS-Datenmodell besteht aus der Wurzelentität DEMO_MANAGED_ROOT_3 und ihrer untergeordneten Entität DEMO_MANAGED_CHILD_3.

Wurzelentität:

Kindentität:

Verhaltensdefinition

Die CDS-Verhaltensdefinition DEMO_MANAGED_ROOT_3 wird in CDS BDL wie folgt definiert:

Verhaltensimplementierung

Für die oben genannte CDS-Verhaltensdefinition wird ein ABP angelegt. Die globale Klasse des Behavior-Pools ist BP_DEMO_MANAGED_ROOT_3. Die eigentliche Implementierung findet in BP_DEMO_MANAGED_ROOT_3========CCIMP statt.

Die folgenden Methoden sind in diesem Beispiel relevant:

  • get_instance_features
Diese Methode gibt Informationen darüber zurück, ob bestimmte Felder (data_field3_root und data_field4_root) schreibgeschützt sind oder auf Basis bestimmter Bedingungen modifiziert werden können. Zusätzlich werden Informationen darüber zurückgegeben, ob das Anlegen von Instanzen für eine assoziierte Entität (_child) aktiviert oder deaktiviert ist. Als eine Voraussetzung in BDEF müssen die zwei Felder und die assoziierte Entität die erforderliche Notation ( features: instance ) haben.
  • get_global_features
Die Methode gibt Informationen darüber zurück, ob Update-Operationen auf Entitäten auf Grundlage einer bestimmten Bedingung erlaubt sind oder nicht bzw., ob Aktualisierungen nur innerhalb eines bestimmten Zeitfensters erlaubt sind. Als eine Voraussetzung in BDEF muss update die erforderliche Notation ( features: global ) haben.
  • get_global_authorizations
Die Methode ist so implementiert, dass Create- und Delete-Operationen nur für Benutzer mit entsprechenden Berechtigungen aktiviert sind. Um die Demonstration einfach zu halten, kommt das Beispiel ohne ein Berechtigungsobjekt aus, z.B. eine Art und Weise der Behandlung einer Berechtigungsgewährung in produktiven Anwendungen. Die Variable auth_flag stellt die Berechtigung dar, die gewährt wird oder nicht. In diesem Fall wird sie nicht gewährt. Als eine Voraussetzung in BDEF ist die Notation authorization master ( global ) vorhanden. In diesem Beispiel werden auch Instanzberechtigungen berücksichtigt, weshalb die Notation authorization master ( global, instance ) im BDEF ist.
  • get_instance_authorizations
Die Methode gibt Informationen darüber zurück, ob Delete-Operationen auf Instanzen erlaubt sind oder nicht. In diesem Beispiel ist die Löschung nicht erlaubt, wenn data_field2_root einen bestimmten Wert hat. Als eine Voraussetzung in BDEF ist die Notation authorization master ( instance ) vorhanden. In diesem Beispiel werden auch globale Berechtigungen berücksichtigt, weshalb die Notation authorization master ( global, instance ) im BDEF ist.

Quelltext

Ausführen

Beschreibung

Zugriff mit ABAP über EML

Der obige Quellcode verwendet EML, um auf das RAP Business-Objekt aus einem ABAP-Programm zuzugreifen:

Das Beispiel berücksichtigt alle Varianten von only_clause mithilfe der Kurzform der Anweisung GET PERMISSIONS.

Als Basis für das Beispiel werden im ersten Schritt die hier verwendeten Datenbanktabellen geleert und mit Demo-Werten erneut befüllt. Anschließend werden Anforderungsparameter für eine Entität festgelegt. In diesem Fall sind alle Felder, Operationen und eine assoziierte Entität (die untergeordnete Entität) aktiviert. Diese Parameter werden in allen GET PERMISSIONS-Anweisungen verwendet. Alle Anweisungen verwenden dieselben Eingabeschlüssel (mit Ausnahme der Anweisungen, bei denen die Angabe von Schlüsseln nicht erlaubt ist) und beinhalten Antwortparameter, die im Beispiel nicht verwendet werden.

Das Ergebnis der individuellen GET PERMISSIONS-Anweisungen wird auf dem Ausgabebild angezeigt. Für diesen Zweck werden interne Tabellen eingerichtet, die die Werte aus der instance-Tabelle und der global-Struktur enthalten.

Hinweise zum Ergebnis bzw. die Einträge in den Ausgabetabellen:

  • ONLY GLOBAL
Es gibt keine Einträge in der instance-Tabelle, weshalb keine Tabelle angezeigt wird. Die global-Struktur beinhaltet die globale Berechtigung (Wert 02, bzw. IF_ABAP_BEHV=>PERM-O-UNAUTHORIZED, zum Anzeigen der Create- und Delete-Operation) und globale Feature-Steuerungen (der Wert von update zeigt entweder 00 für aktiviert oder 01 für deaktiviert). Außerdem sind auch statische Informationen verfügbar: key_field (hier _key) und das Feld data_field2_root zeigen den Wert 01 (d.h. mandatory), das Feld data_field1_root zeigt den Wert 02 (d.h. readonly) wie in BDEF definiert.
  • ONLY GLOBAL FEATURES
Es gibt keine Einträge in der instance-Tabelle, weshalb keine Tabelle angezeigt wird. Die global-Struktur beinhaltet die globale Feature-Steuerung und statische Informationen (siehe Details von ONLY GLOBAL).
  • ONLY GLOBAL AUTHORIZATION
Es gibt keine Einträge in der instance-Tabelle, weshalb keine Tabelle angezeigt wird. Die global-Struktur beinhaltet die globale Berechtigung. Der Wert 02, d.h. IF_ABAP_BEHV=>PERM-O-UNAUTHORIZEDfür die Create- und Delete-Operation wird angezeigt.
  • ONLY INSTANCE
Die instance-Tabelle beinhaltet die instanzbasierte Berechtigung und instanzbasierte Feature-Steuerung sowie statische Informationen. Der Wert von assoc ist der Methode get_instance_features nach 01 für die Instanz mit Schlüssel 1, wodurch gekennzeichnet wird, dass die Create-by-Association-Operation im Kontext dieser Instanz deaktiviert ist. Im Gegensatz dazu ist die Operation für die Instanz mit Schlüssel 2 erlaubt (der Wert ist 00). Das schreibgeschützte Feld data_field1_root zeigt den Wert 02, bzw. IF_ABAP_BEHV=>PERM-F-READ_ONLY. data_field3_root und data_field4_root zeigen die Werte des Ergebnisses nach dem Aufruf der Methode get_instance_features. Die Instanz mit dem Schlüssel 2 zeigt den Wert 02 für delete als ein Ergebnis des Aufrufs der Methode get_instance_authorizations. Die global-Struktur beinhaltet die statische Information, wie in ONLY GLOBAL beschrieben.
  • ONLY INSTANCE FEATURES
Die instance-Tabelle beinhaltet eine instanzbasierte Feature-Steuerung. Sie zeigt dieselben Werte für die instance-Tabelle und global-Struktur wie in ONLY INSTANCE, mit Ausnahme des instanzbasierten Berechtigungsteils (z.B. beinhaltet hier die Instanz mit dem Schlüssel 2 nicht das Ergebnis der Delete-Operation).
  • ONLY INSTANCE AUTHORIZATION
Die instance-Tabelle beinhaltet eine instanzbasierte Berechtigung. Die Instanz mit dem Schlüssel 2 zeigt den Wert 02 für delete als ein Ergebnis des Aufrufs der Methode get_instance_authorizations. Die Instanz mit Schlüssel 1 ist nicht im Ergebnis beinhaltet. Die global-Struktur beinhaltet keine relevanten Werte.
  • ONLY FEATURES
Die instance-Tabelle beinhaltet die instanzbasierte Feature-Steuerung und die statischen Informationen (siehe Details zu ONLY INSTANCE, mit Ausnahme des instanzbasierten Berechtigungsteils). Die global-Struktur beinhaltet die globale Feature-Steuerung und statische Informationen (siehe Details von ONLY GLOBAL, mit Ausnahme des globalen Berechtigungsteils).
  • ONLY AUTHORIZATION
Die instance-Tabelle beihnhaltet die instanzbasierte Berechtigung (siehe Details von ONLY INSTANCE AUTHORIZATION). Die global-Struktur beihnhaltet die globale Berechtigung (siehe Details von ONLY INSTANCE AUTHORIZATION).
  • ONLY dyn_spec
Das Ergebnis ist dasselbe wie für ONLY AUTHORIZATION. Die Variante ONLY AUTHORIZATION wird dynamisch mithilfe des Enumerationswerts vom Typ T_PERMISSIONS_ONLY des Interface IF_ABAP_BEHV angegeben.





CPI1466 during Backup   ROGBILLS - Synchronize billing plans  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 11105 Date: 20240523 Time: 154125     sap01-206 ( 188 ms )