Ansicht
Dokumentation

ABENC0_CONSUMER_RULES_CDS - C0 CONSUMER RULES CDS

ABENC0_CONSUMER_RULES_CDS - C0 CONSUMER RULES CDS

RFUMSV00 - Advance Return for Tax on Sales/Purchases   BAL_S_LOG - Application Log: Log header data  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

C0-Kontraktregeln für Consumer von CDS-Entitäten

Mit den Provider-Regeln für Objekte mit einem C0-Kontrakt wird gewährleistet, dass freigegebene Objekte nur eingeschränkt modifiziert werden können, um Fehler und Unterbrechungen nach einem SAP-Upgrade zu vermeiden. Die Regeln garantieren aber keine vollständige Abwärtskompatibilität und erlauben etwas Spielraum für notwendige Erweiterungen an freigegebenen APIs. Daher müssen Verwender von freigegebenen APIs die erlaubten kompatiblen Änderungen noch berücksichtigen und durch den Zugriff auf die APIs folgende Fehler und Unterbrechungen vermeiden:

  • Problem während des Upgrades.
  • Syntaxfehler nach dem Upgrade.
  • Laufzeitfehler nach einem Upgrade.
  • Inkorrektes Verhalten nach einem Upgrade.

In den folgenden Abschnitten werden die erlaubten Erweiterungen an freigegebenen APIs aufgeführt, die beim Anlegen einer Erweiterung berücksichtigt werden müssen.

Namensgebung

  • Der Aliasname für Elemente und Assoziationen muss mit dem korrekten Namensraumpräfix beginnen. Bei Kunden und Partnern ist daher der Präfix ZZ oder YY obligatorisch. Bei Assoziationen wird ein mit einem Unterstrich (_) beginnender Aliasname gefolgt von dem korrekten Namensraumpräfix dringend empfohlen.

Beispiele für korrekte Namen:

  • DatasourceAlias.field als ZZ_customerField_suffix
  • DatasourceAlias._assoc als _YY_assoc_suffix

Allgemeine Grundregeln

Regeln für Erweiterungsfelder

  • Um ein zusätzliches Feld für ein aus einer anderen Quelle selektiertes C0-freigegebenes API zu definieren, muss das Feld entweder zur gleichen Softwarekomponente gehören oder ein C1-freigegebenes Feld sein.
  • Um zusätzliche Felder in einem Szenario, in dem diese Felder aus einer anderen Erweiterung selektiert werden, für ein freigegebenes API zu definieren, müssen beide Erweiterungen der gleichen Softwarekomponente zugeordnet sein oder die erweiterte Entität C1-freigegeben sein.

Regeln für Assoziationen

  • Assoziationen, die durch die erweiterte Entität über die Annotation AbapCatalog.extensibility.dataSources mit einem stabilen Aliasnamen freigegeben sind, dürfen nicht in der Elementliste exponiert sein.
  • Um eine neue Assoziation in einer Erweiterung zu definieren, muss das Assoziationsziel für C1 freigegeben sein oder in der gleichen Softwarekomponente angelegt werden.
  • Neu definierte lokale Assoziationen können in der Elementliste exponiert werden. Der Name einer neu definierten lokalen Assoziation muss den im Abschnitt Namensgebung beschriebenen Namensregeln folgen.

Regeln für Pfadausdrücke

  • In einer Erweiterung eines freigegebenen APIs können exponierte Assoziationen und innerhalb von Pfadausdrücken verwendete Assoziationen eine Zielkardinalität von 0 oder 1 haben. Eine Zielkardinalität größer 1 ist nicht erlaubt.
  • Eine Pfadverfolgung mit der genauen Länge 1 ist für freigegebene Datenquellen mit stabilen Aliasnamen erlaubt.
  • Eine Pfadverfolgung mit der genauen Länge 1 ist für lokal definierte Assoziationen nicht erlaubt.
  • Eine Pfadverfolgung mit Länge größer 1 ist nur in folgenden Fällen erlaubt:
  • Das erweiterte Objekt muss eine CDS-Projektions-View sein.

  • Alle verfolgten Objekte des Pfads sind CDS-View-Entitäten oder DDIC-basierte CDS-Views.

  • Beispiele für Pfadlängen:

BaseObjectAlias.fieldName //Pfadlänge 1
BaseObjectAlias._assoc.fieldName //Pfadlänge 2

Einschränkungen

  • Die Wiederverwendung von Ausdrücken mit $projection als Zeiger ist bei der Erweiterung von einem freigegebenen API nicht unterstützt.
  • Die eingebaute Funktion utcl_current ist in Erweiterungen von freigegebenen APIs nicht unterstützt:

Beispielthemen

Beispiel einer C0-freigegebenen CDS-View-Entität, die aus einer eingeschränkten ABAP-Sprachversion erweitert wurde

Beispiel einer C0-freigegebenen CDS-Projektions-View, die aus einer eingeschränkten ABAP-Sprachversion erweitert wurde






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

Length: 10526 Date: 20240523 Time: 160645     sap01-206 ( 123 ms )