Ansicht
Dokumentation

ABENCDS_F1_DEFINE_GENERIC_ASPECT - CDS F1 DEFINE GENERIC ASPECT

ABENCDS_F1_DEFINE_GENERIC_ASPECT - CDS F1 DEFINE GENERIC ASPECT

TXBHW - Original Tax Base Amount in Local Currency   Addresses (Business Address Services)  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

- DEFINE ASPECT


$[aspect_annot$]
$[DEFINE$] ASPECT aspect AS SELECT FROM aspect_entity
  WITH USER ELEMENT user_element
  $[WITH FILTER ELEMENTS ( filter_element1 $[AS filter_alias1$],
        filter_element2... ) $]
{
    output1 $[BYPASS WHEN aspect_bypass_condition$]
    $[, ... $]
}


Wirkung

Definition eines selbstdefinierten Aspekts aspect im Rahmen einer mit DEFINE ACCESSPOLICY definierten CDS-Zugriffsrichtlinie. Der Name des selbstdefinierten Aspekts muss der gleiche wie der Name der CDS-Zugriffsrichtlinie sein.

Die Definition eines selbstdefinierten Aspekts enthält:

  • Hinter dem Namen aspect die Angabe einer Aspekt-Entität aspect_entity, welche als Datenquelle dient.
  • Ein Element user_element der Aspekt-Entität, das als Eingabefeld für den Benutzernamen des angemeldeten Benutzers verwendet wird.
  • Eine optionale Liste der Elemente filter_element der Aspektentität. Mit Filterelementen können die Zeilen der Aspektentität reduziert werden, spezifisch für eine Verwendungsstelle in einer Zugriffsrolle ( ( ...) = ASPECT ... FILTER BY condition>). Filterelemente werden in der Filterbedingung unter Verwendung der letzten Komponente ihres Pfadausdrucks adressiert. Optional kann ein Alias vom Zusatz ASfestgelegt werden. Das Hinzufügen von Filterelementen ist vom Standpunkt der Zugriffsrollen, die diesen Aspekt verwenden, kompatible Änderung. Das bedeutet, sie bieten eine Filtermöglichkeit an, ein tatsächliches Filtern ist jedoch nicht vorgeschrieben.
  • Eine kommaseparierte Liste, in der die Ausgabeelemente output1, output2, ... des generischen Aspekts angegeben werden. Die angegebene Reihenfolge ist relevant.
  • Eine beliebige Menge der Ausgabefelder, die durch den Zusatz BYPASS WHEN aspect_bypass_condition mit einer Bedingung ausgezeichnet werden kann. Als Bypass-Wert wird typischerweise etwas wie * oder der leere Wert verwendet werden.

Als Bypass-Bedingungen aspect_bypass_condition sind möglich:

  • IS INITIAL OR NULL
Erfüllt, wenn der Wert des Aspekts entweder NULL oder der typgerechte Initialwert ist.

Zur Laufzeit wird das Feld user_element mit dem Benutzernamen des aktuellen Benutzers versorgt. Die in der Aspekt-Entität resultierenden Zeilen werden mit ihren Ausgabefeldern in der angegebenen Reihenfolge mit den Elementen der linken Seite der Zugriffsbedingung, welcher der selbstdefinierte Aspekt zugeordnet ist, gleichgesetzt. Damit können diejenigen Zeilen der geschützten Entität die Bedingung passieren, für die für den aktuellen Benutzer in der Aspekt-Entität eine Zeile existiert.

Durch Verwendung der Bypass-Bedingung wird erreicht, dass bei Vorliegen dieser Bedingung in einer Zeile der Aspekt-Entität die diesem Feld entsprechende Gleichsetzung nicht verwendet wird. Hierdurch kann beispielsweise ein besonderer ausgezeichneter Wert wie zum Beispiel der Stern (*) die Bedeutung erlangen, dass beliebige Werte der geschützten Entität erlaubt sind.

Besondere Anforderungen an die Aspekt-Entität

Die Inhalte der Aspekt-Entität erhalten durch die Verwendung in einem selbstdefinierten Aspekt in der Zugriffskontrolle eine auditrelevante Bedeutung.

Um in einem System bestimmen zu können, welche Benutzer zu einem Zeitpunkt in der Vergangenheit Zugriff auf bestimmte Daten hatte, muss der Datenstand der Aspekt-Entität rekonstruierbar sein. Während diese Forderung bei Entwicklungsobjekten oder PFCG-Rollen durch vorhandene Mechanismen abgedeckt ist (Versionsverwaltung, Änderungsbelege), ist in einer Aspekt-Entität beliebig angebbar woher sie ihre Daten erhält und ob diese Datenquellen selbst in der notwendigen Weise auditierbar sind.

Das Entwicklungs- und Laufzeitsystem der CDS-Zugriffskontrolle können das Vorliegen auditierbarer Datenquellen nicht überprüfen. Um dennoch auf die Notwendigkeit hinzuweisen, muss die Aspekt-Entität folgende Annotationen besitzen:

  • Einen Auditierungstyp mit der Annotation @AccessControl.auditing.type. Derzeit ist ausschließlich der Wert #CUSTOM möglich.
  • Eine Begründungskomponente mit der Annotation @AccessControl.auditing.specification, in welcher in textueller Form beschrieben werden sollte, wie der Inhalte der Entität auditiert werden können.

Hinweise

  • Nur das Hinzufügen der Annotationen aktiviert nicht die Auditierung. Diese Annotation sollte nur bei gewährleisteter Auditierung gesetzt werden.
  • Bei der Auditierung müssen alle Datenquellen der Aspekt-Entität berücksichtigt werden.
  • Wenn eine Auditierung nicht sichergestellt werden kann, darf die Aspekt-Entität nicht in einem selbstdefinierten Aspekt verwendet werden.
  • Selbstdefinierte Aspekte werden bei einem -Zugriff auf eine CDS-Entität, der eine solche Rolle zugeordnet ist, intern durch eine Subquery hinter EXISTS ausgeprägt.






TXBHW - Original Tax Base Amount in Local Currency   CPI1466 during Backup  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 8235 Date: 20240523 Time: 173734     sap01-206 ( 92 ms )