Ansicht
Dokumentation

ABENDDICDDL_DEFINE_DRUL - DDICDDL DEFINE DRUL

ABENDDICDDL_DEFINE_DRUL - DDICDDL DEFINE DRUL

SUBST_MERGE_LIST - merge external lists to one complete list with #if... logic for R3up   SUBST_MERGE_LIST - merge external lists to one complete list with #if... logic for R3up  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

- DEFINE DEPENDENCY RULE

DEFINE FILTER$|JOIN DEPENDENCY RULE drul
  ON dbtab $[, ...$]
    IF { cond_pattern }
      THEN { derived_cond }


Wirkung

Anweisung der Dictionary DDL zur Definition einer Abhängigkeitsregel. Die Anweisung hat zwei Varianten:

Der Name drul einer Abhängigkeitsregel muss den Namenskonventionen für Dictionary-Typen folgen und darf maximal 30 Zeichen enthalten. Er liegt im Namensraum der Datentypen des ABAP Dictionary und muss mit dem Namen des DRUL-Quelltexts übereinstimmen.

Hinter ON werden die Namen dbtab von DDIC-Datenbanktabellen angegeben, für welche die Abhängigkeitsregel definiert wird.

  • Bei Filter-Abhängigkeitsregeln muss genau eine DDIC-Datenbanktabelle angegeben werden.
  • Bei Join-Abhängigkeitsregeln müssen zwei kommaseparierte DDIC-Datenbanktabellen angegeben werden.

Mit cond_pattern wird hinter IF ein Muster für einen relationalen Ausdruck angegeben. Der Optimizer der SAP-HANA-Datenbank sucht bei einem Lesezugriff auf die Datenbanktabelle dbtab in der zugehörigen WHERE- oder ON-Bedingung nach diesem Muster. Wenn es gefunden wird, ergänzt der Optimizer die entsprechende WHERE- oder ON-Bedingung mit AND um die hinter THEN angegebene Bedingung derived_cond. Die möglichen Bedingungen werden wie in der Syntax der CDS DDL oder CDS DCL angegeben und sind bei den Filter- und Join-Abhängigkeitsregeln beschrieben.

Achtung

Es ist nicht garantiert, dass der Optimizer der SAP-HANA-Datenbank das gesuchte Muster cond_pattern findet. Deshalb darf die zusätzliche Bedingung derived_cond die Ergebnismenge der ursprünglichen Query nicht beeinflussen. Das ist zwar technisch möglich, kann aber zu undefiniertem Verhalten führen, wenn der Optimizer der SAP-HANA-Datenbank das gesuchte Muster cond_pattern bei einem Teil der Zugriffe findet und bei anderen nicht.

Hinweise

  • Die Ableitung einer zusätzlichen Bedingung derived_cond aus einem Muster cond_pattern definiert in aller Regel eine Abhängigkeit zwischen semantischen und technischen Spalten einer DDIC-Datenbanktabelle. Wenn eine Anwendung mit einer bestimmten Selektionsbedingung für semantische Spalten zugreift, wird implizit eine zusätzliche Bedingung für technische Spalten erzeugt. Im Fall der Optimierung des Zugriffs auf veraltete Daten handelt es sich um normale Datumsspalten als semantische Spalten und die Temperaturspalte als technische Spalte.
  • Wenn mehrere Abhängigkeitsregeln für eine DDIC-Datenbanktabelle definiert werden, werden alle zusätzlichen Bedingungen mit AND verknüpft an die ursprüngliche Bedingung angehängt.
  • Abhängigkeitsregeln können nur für DDIC-Datenbanktabellen und nicht für DDIC-Views definiert werden. Der Optimizer der SAP-HANA-Datenbank wertet alle SQL-Zugriffe auf diese aus. Dies umfasst Zugriffe mit , AMDP und Native SQL sowie alle Zugriffe auf Views, welche die DDIC-Datenbanktabelle als Datenquelle enthalten.
  • Bei Zugriffen, die nicht über SQL erfolgen, wie z.B. in Calculation Views, werden Abhängigkeitsregeln nicht ausgewertet.
  • Wie in der CDS-Syntax kann die Definition einer Append-Struktur des ABAP Dictionary Kommentare hinter // und zwischen /* ... */ enthalten.
  • Von Partnern und Kunden dürfen derzeit keine eigenen Abhängigkeitsregeln definiert werden.





BAL Application Log Documentation   PERFORM Short Reference  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 7101 Date: 20240523 Time: 170941     sap01-206 ( 94 ms )