Ansicht
Dokumentation

ABENDERIVED_TYPES_MISC_ABEXA - DERIVED TYPES MISC ABEXA

ABENDERIVED_TYPES_MISC_ABEXA - DERIVED TYPES MISC ABEXA

Addresses (Business Address Services)   Vendor Master (General Section)  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

Abgeleitete BDEF-Typkomponenten im Kontext der Berechtigungsabfrage

Mit diesem Beispiel wird die Verwendung der diversen abgeleiteten BDEF-Typkomponenten mit einem verwalteten RAP-BO im Kontext der Berechtigungsabfrage über mehrere GET PERMISSIONS-Anweisungen mit Varianten der ONLY-Klausel demonstriert:

Datenmodell

Das CDS-Datenmodell besteht aus der Wurzelentität DEMO_MANAGED_ROOT_PERM und ihrer untergeordneten Entität DEMO_MANAGED_CHILD_PERM. Die untergeordnete Entität wird in diesem Beispiel nicht verwendet.

Wurzelentität:

Verhaltensdefinition

Die CDS-Verhaltensdefinition DEMO_MANAGED_ROOT_PERM 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_PERM. Die eigentliche Verhaltensimplementierung findet in lokalen Klassen statt, die im BP_DEMO_MANAGED_ROOT_PERM=====CCIMP des Behavior-Pools definiert und implementiert werden.

Die folgenden Methoden sind in diesem Beispiel relevant:

  • get_instance_features
Diese Methode gibt Informationen darüber zurück, ob bestimmte Felder 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. Im Kontext dieser Methode wird die Komponente %features verwendet.
  • get_global_features
Die Methode gibt Informationen darüber zurück, ob aktualisierende Operationen auf Entitäten und die Ausführung einer Aktion auf Grundlage einer bestimmten Bedingung erlaubt sind oder nicht bzw., ob Aktualisierungen und eine Ausführung der Aktion nur innerhalb eines bestimmten Zeitfensters erlaubt sind. Als eine Voraussetzung in BDEF haben update und die Aktion die erforderliche Notation ( features: global ).
  • 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
Mit dieser Methode wird eine Angabe zurückgegeben, ob Löschoperationen und Ausführungen einer Aktion auf Instanzen erlaubt sind. In diesem Beispiel sind bei einem bestimmten Wert eines Feldes ein Löschen und die Ausführung einer Aktion nicht erlaubt. 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. Im Kontext dieser Methode wird die Komponente %op verwendet.

Quelltext

Ausführen

Beschreibung

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

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

Als Basis für das Beispiel wird im ersten Schritt die hier verwendete Datenbanktabelle geleert und mit Demonstrationswerten erneut befüllt. Anschließend werden Anforderungsparameter für eine Entität festgelegt. In diesem Fall sind alle Felder, Standardoperationen und Nicht-Standard-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 enthalten Antwortparameter, die im Beispiel nicht verwendet werden.

Das Ergebnis der einzelnen GET PERMISSIONS-Anweisungen wird in der Ausgabe gezeigt und zwar mit der Tabelle instance und der Struktur global (siehe TYPE STRUCTURE FOR PERMISSIONS RESULT).

Hinweise zum Ergebnis, d.h. die Einträge in den Ausgabetabellen:

  • ONLY GLOBAL
Es sind keine Einträge in der Tabelle instance enthalten. Die Struktur global enthält die globale Berechtigung (Wert 02, bzw. IF_ABAP_BEHV=>PERM-O-UNAUTHORIZED, zum Anzeigen der anlegenden und löschenden Operation) und globale Feature-Controls (die Werte von %update und %action-action zeigen entweder 00 für aktiviert oder 01 für deaktiviert). Außerdem sind auch statische Informationen verfügbar: Die Felder %field-key_field und das Feld %field-field2 zeigen den Wert 01 (d.h. mandatory), das Feld %field-field1 zeigt den Wert 02 (d.h. readonly) wie in der BDEF definiert.
  • ONLY GLOBAL FEATURES
Es sind keine Einträge in der Tabelle instance enthalten. Die Struktur global enthält das globale Feature-Control und statische Informationen (siehe Details von ONLY GLOBAL oben).
  • ONLY GLOBAL AUTHORIZATION
Es sind keine Einträge in der Tabelle instance enthalten. Die Struktur global enthält Information über globale Berechtigungen. Der Wert 02, d.h. IF_ABAP_BEHV=>PERM-O-UNAUTHORIZEDfür die Create- und Delete-Operation wird angezeigt.
  • ONLY INSTANCE
Die Tabelle instance enthält Information über die instanzbasierte Berechtigung und das instanzbasierte Feature-Control sowie statische Informationen. Der Wert von %assoc-_child 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 field-field1 zeigt den Wert 02, bzw. IF_ABAP_BEHV=>PERM-F-READ_ONLY. %field-field3 und field-field4 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 Struktur global enthält die statische Information, wie oben in ONLY GLOBAL beschrieben.
  • ONLY INSTANCE FEATURES
Die Tabelle instance enthält ein instanzbasiertes Feature-Control. Sie zeigt dieselben Werte für die Tabelle instance und Struktur global-Struktur wie oben in ONLY INSTANCE, mit Ausnahme des instanzbasierten Berechtigungsteils (z.B. enthält hier die Instanz mit dem Schlüssel 2 nicht das Ergebnis der löschenden Operation).
  • ONLY INSTANCE AUTHORIZATION
Die Tabelle instance enthält Information über 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 enthalten. Die Struktur global enthält keine relevanten Werte.
  • ONLY FEATURES
Die Tabelle instance enthält Information über das instanzbasierte Feature-Control und die statischen Informationen (siehe Details zu ONLY INSTANCE oben, mit Ausnahme des instanzbasierten Berechtigungsteils). Die Struktur global enthält das globale Feature-Control und statische Informationen (siehe Details von ONLY GLOBAL oben, mit Ausnahme des globalen Berechtigungsteils).
  • ONLY AUTHORIZATION
Die Tabelle instance enthält die instanzbasierte Berechtigung (siehe Details von ONLY INSTANCE AUTHORIZATION oben). Die Struktur global enthält die globale Berechtigung (siehe Details von ONLY INSTANCE AUTHORIZATION oben).
  • ONLY AUTHORIZATION (mit Fokus auf der Komponentengruppe %perm)
Die Implementierung im Programm dient der Visualisierung der Komponentengruppe %perm, die im Berechtigungsergebnis von GET PERMISSIONS-Anweisungen enthalten ist und wie Unterkomponenten des Ergebnisses referenziert werden können. Das Ergebnis ist vom Typ TYPE STRUCTURE FOR PERMISSIONS RESULT. Im Beispiel wird ein Strukturtyp mit dem Instanzschlüssel und die Unterkomponenten von %perm aufgebaut. Es wird eine interne Tabelle deklariert, die mit dem Berechtigungsergebnis aus der Tabelle instance gefüllt wird. Diese interne Tabelle wird in der Ausgabe gezeigt. Der Ausgang des Berechtigungsergebnisses entspricht den Einträgen in der Tabelle instance aus dem vorherigen Beispiel mit ONLY AUTHORIZATION.





CL_GUI_FRONTEND_SERVICES - Frontend Services   Vendor Master (General Section)  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 14496 Date: 20240523 Time: 161737     sap01-206 ( 229 ms )