Sehen wir uns nun an, wie die Definition von Entitäten mithilfe sogenannter Aspekte um neue Elemente erweitert werden kann.
Sehen Sie sich das Video an, um mehr über CDS-Aspekte zu erfahren.
In dieser Lektion lernen wir die extend Richtlinie kennen. Wir werden die annotate Richtlinie später in einer anderen Lektion diskutieren.
Die extend Richtlinie
Mit der Richtlinie extend können Sie kundenspezifische Felder zu vorhandenen Definitionen hinzufügen, wie in der folgenden Abbildung dargestellt:

Im Beispiel wird das Element someAdditionalField der Domänenentität Authors hinzugefügt. Dadurch wird dieses Feld auch der generierten Datenbanktabelle hinzugefügt.
Notiz
Mit der extend -Direktive können auch Metadaten wie Annotationen zu vorhandenen Definitionen hinzugefügt oder vorhandene Metadaten überschrieben werden.
Typeigenschaften können auch über extendfestgelegt werden. Beispielsweise kann die Länge eines vorhandenen Elements vom Typ String erhöht werden.
Benannte Aspekte
Sie können extend mit vordefinierten Aspekten verwenden, um dieselben Erweiterungen auf mehrere Ziele anzuwenden, wie in der folgenden Abbildung dargestellt:

Das Beispiel zeigt einen benannten Aspekt ManagedObject, der die beiden Elemente createdAt und createdBy definiert. Sowohl die Dokumentenmappenentität als auch die Autorenentität werden über diesen benannten Aspekt um diese Felder erweitert.
Notiz
Eine benannte Erweiterung kann alles enthalten, z.B. Felder, Typen oder Entitäten.
Includes als Shortcut-Syntax
Sie können benannte Aspekte auch als Includes in einer vererbungsartigen Syntax verwenden. Mit dieser Syntax können Sie eine Definition um mehrere benannte Aspekte gleichzeitig erweitern. In der folgenden Abbildung wird die Entität Autoren um die beiden genannten Aspekte ManagedObject und AnotherAspect erweitert.

Includes sind syntaktischer Zucker. Das gezeigte Beispiel ist äquivalent zur Verwendung einer Abfolge von extends wie folgt:
1234567entity Authors {}
extend Authors with ManagedObject;
extend Authors with AnotherAspect;
extend Authors with {
key ID : UUID;
...
}


