Ansicht
Dokumentation
ABENC0_CONSUMER_RULES_CDS - C0 CONSUMER RULES CDS
RFUMSV00 - Advance Return for Tax on Sales/Purchases BAL_S_LOG - Application Log: Log header dataDiese Dokumentation steht unter dem Copyright der SAP AG.
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.
- Alle in der Erweiterungen definierten Elemente und Assoziationen müssen den Elementsuffix haben, der über die Annotation @AbapCatalog.extensibility.elementSuffix im freigegebenen API definiert ist.
- In Erweiterungen von CDS-View-Entitäten und CDS-Projektions-Views müssen alle in der Erweiterung definierten Elemente und Assoziationen den Aliasnamen einer über die Annotation @AbapCatalog.extensibility.dataSources definierten stabilen Datenquelle als Präfix haben.
Beispiele für korrekte Namen:
- DatasourceAlias.field als ZZ_customerField_suffix
- DatasourceAlias._assoc als _YY_assoc_suffix
Allgemeine Grundregeln
- Zur Zeit dürfen CDS-View-Entitäten, CDS-Projektions-Views, abstrakte CDS-Entitäten und CDS-Custom Entitiäten erweitert werden.
- Die erweiterte CDS-Entität muss unter dem C0-Kontrakt für die jeweilige Sprachversion (ABAP for Cloud Development oder ABAP for Key Users) freigegeben werden.
- Die Erweiterung muss zur Quotendefinition passen, die über die Annotationen AbapCatalog.extensibility.quota.maximumBytes und AbapCatalog.extensibility.quota.maximumFields in der erweiterten Entität definiert wird. D.h. die maximale Anzahl von Feldern und die maximale Anzahl Byte dürfen nicht überschritten werden.
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.
- Die Annotation @AbapCatalog.extensibility.allowNewDatasources ist auf true gesetzt.
- 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
- Folgende Datentypen sind in Erweiterungen von freigegebenen APIs nicht unterstützt: LCHR, LRAW, STRING, RAWSTRING, GEOM_EWKB.
- Die Wiederverwendung von Ausdrücken mit $projection als Zeiger ist bei der Erweiterung von einem freigegebenen API nicht unterstützt.
- Sitzungsvariablen sind bei der Erweiterung eines freigegebenen APIs nicht unterstützt.
- Die eingebaute Funktion utcl_current ist in Erweiterungen von freigegebenen APIs nicht unterstützt:
- Die Definition von neuen CDS-Kompositionen ist zur Zeit in Erweiterungen von freigegebenen APIs in ABAP for Cloud Development nicht erlaubt.
Beispielthemen
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 )