{"id":64843,"date":"2025-08-15T09:32:35","date_gmt":"2025-08-15T07:32:35","guid":{"rendered":"https:\/\/www.cubeserv.com\/?p=64843"},"modified":"2025-08-15T12:33:45","modified_gmt":"2025-08-15T10:33:45","slug":"sap-s-4hana-embedded-analytics-user-defined-annotation","status":"publish","type":"post","link":"https:\/\/www.cubeserv.com\/de\/sap-s-4hana-embedded-analytics-user-defined-annotation\/","title":{"rendered":"SAP S\/4HANA Embedded Analytics \u2013 User Defined Annotation"},"content":{"rendered":"\t\t
ABAP Core Data Services (CDS-Views) bilden den zentralen Baustein bei der Verwendung von Embedded Analytics auf S\/4HANA. In den CDS-Views k\u00f6nnen sogenannte Annotationen verwendet werden, welche die View um Metadaten anreichern. Diese Metadaten erf\u00fcllen verschiedene Zwecke. Beispielsweise:<\/p>
Mit anderen Worten, CDS-Annotationen erweitern eine CDS-View um Kontext und Bedeutung, die zur Laufzeit ausgewertet werden k\u00f6nnen. Man unterscheidet grob zwischen View-Annotationen und Element-Annotationen. Erstere beziehen sich auf die gesamte CDS-View, w\u00e4hrend sich Element-Annotationen auf einzelne Felder (Elemente) innerhalb der View beziehen.<\/p>
SAP bietet einen umfangreichen Standard an Annotationen, deren Erkennungszeichen das vorangestellte @-Zeichen ist. Je nach Verwendungszweck sind die Annotationen in semantische Namenr\u00e4umen unterteilt, wie z.B.:<\/p>
Jedes Unternehmen hat besondere Anforderungen, und manchmal reicht der Standard nicht aus, um diese im Datenmodell abbilden zu k\u00f6nnen. Hier kommen User Defined Annotations (benutzerdefinierte Annotationen) ins Spiel, die ma\u00dfgeschneidert auf nahezu jeden Bedarf entwickelt werden k\u00f6nnen.<\/p>
F\u00fcr das Unternehmen liegt darin ein strategischer Vorteil: Man gewinnt die Flexibilit\u00e4t, das System \u00fcber den SAP-Standard hinaus zu erweitern, um spezifische Kundenanforderungen schnell und gezielt zu erf\u00fcllen – ein entscheidender Pluspunkt um das operative Reporting in S\/4HANA individuell anpassen zu k\u00f6nnen.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
Eine User Defined Annotation wird als Annotationsdefinition angelegt, welches ein eigenst\u00e4ndiges CDS-Objekt ist.
Darin legt man fest, wie die neue Annotation hei\u00dft, welche Werte oder Strukturen sie aufnehmen kann und wo sie verwendet werden darf. Letzteres wird durch den Scope der Annotation bestimmt. Mit @Scope definiert man die erlaubten Zielbereiche wie z.B.:<\/p>
Die Syntax einer Annotation \u00e4hnelt der einer \u201enormalen\u201c CDS-View. Schl\u00fcsselwort der Annotationsdefinition ist DEFINE ANNOTATION, auf das der Namen der Annotation folgt. Innerhalb der Definition k\u00f6nnen Datentypen wie String, Integer, Boolean etc. festgelegt werden. Diese k\u00f6nnen ggf. mit Enumerationswerten eingeschr\u00e4nkt oder Standardwerten (Default Values) vorbelegt werden.<\/p>
Im Ergebnis kennt CDS drei grunds\u00e4tzliche Annotationstypen:<\/p>
Bei der Definition einer eigenen Annotation m\u00fcssen Scope und Syntax der Vorgabe entsprechen, damit die Annotation sp\u00e4ter in CDS-Views verwendet werden kann. Eine Annotationsdefinition wird \u00e4hnlich wie eine CDS-View beim Aktivieren ins ABAP Dictionary \u00fcbernommen. Hier ist zu beachten, dass der Name der Annotation (Main Annotation) und der Name des DDL-Quellcodes \u00fcbereinstimmen muss, da jede Annotation ein eigenst\u00e4ndiges Repository-Objekt darstellt. Analog zu anderen kundeneigenen Objekten sollte ein kundenspezifischer Namespace f\u00fcr eigene Annotationen verwenden werden, um Verwechslungen mit SAP-Annotationen zu vermeiden.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
Nehmen wir an, ein Unternehmen m\u00f6chte seine CDS-Views besser organisieren und sofort erkennbar machen, zu welchem SAP-Modul eine View inhaltlich geh\u00f6rt. SAP liefert hierf\u00fcr keine eigene Standard-Annotation \u2013 daher kann mit einer User Defined Annotation selbst Abhilfe geschaffen werden.<\/p>
Als Beispiel definieren wir eine Annotation im kundeneigenen Namensraum, die eine Modulzuordnung f\u00fcr eine CDS-View erm\u00f6glicht. Diese Annotation hat den Scope #VIEW, da sie auf View-Ebene verwendet werden soll. Sie k\u00f6nnte als Wert die Kennungen der verwendeten Module erhalten, wie beispielsweise die Module FI, CO, SD und MM. Weiter kann in der Annotationsdefinition festgelegt werden, dass nur diese vier Module als Auspr\u00e4gungen (Enumerations) erlaubte sind, um eine konsistente Verwendung sicherzustellen.<\/p>
Nach der Definition kann man eine CDS-View aus dem Bereich Finance \u2013 etwa f\u00fcr einen CDS-basierten Finanzreport \u2013 wie folgt annotieren:<\/p>
Damit ist im Metadatenbereich der View eindeutig vermerkt, dass diese View dem Module Finance (FI)<\/strong> zuzuordnen ist. CDS-Annotationen sind ein zentrales Element bei der Verwendung von ABAP Core Data Services. Die Annotationen nehmen einen direkten Einfluss auf die CDS-Views und bieten eine Vielzahl an Funktionen. SAP bietet im Standard ein umfangreiches Angebot an Annotationen, welche den CDS-Views wichtige Metadaten hinzuf\u00fcgen und so den richtigen Zweck der CDS-View im Embedded Analytics Universum mitgeben. Neben diesen Standard-Annotation k\u00f6nnen Entwickler kundenspezifische Annotationen definieren und in Embedded Analytics Anwendungen einbinden, um diese um projektspezifische Metadaten zu erweitern. Es ist jedoch wichtig zu beachten, dass i.d.R. eine User Defined Annotation nur sinnvoll ist, wenn es keine Standard-Annotation gibt.<\/p> Richtig eingesetzt, erh\u00f6hen sie die Selbstbeschreibung und Flexibilit\u00e4t von CDS-Datenmodellen und helfen, konzeptionelle Informationen dort zu verankern, wo die Daten definiert sind \u2013 n\u00e4mlich direkt in der CDS-View.<\/p> Haben Sie spezielle Anforderungen an Ihre SAP S\/4HANA Analytics?<\/strong>
Dieses zus\u00e4tzliche Kontextwissen ist vor allem in gr\u00f6\u00dferen Entwicklungsprojekten hilfreich: Entwickler und Fachexperten erkennen direkt am CDS-Artefakt, aus welchem Gesch\u00e4ftsbereich die definierten Daten stammen. Auch Tools oder Dokumentationen k\u00f6nnen diese Information auslesen, um z.B. Berichte nach Modulzugeh\u00f6rigkeit zu gruppieren oder Filterm\u00f6glichkeiten anzubieten. Die selbst definierte Annotation erh\u00f6ht somit die Selbstbeschreibung des Datenmodells. Auf diese Weise stehen solche Zusatzinformationen unmittelbar im Datenmodell zur Verf\u00fcgung \u2013 ohne dass man daf\u00fcr auf externe Dokumentionen oder Namenskonventionen angewiesen ist.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\tFazit<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
Kontaktieren Sie unsere Experten<\/a> \u2013 wir zeigen Ihnen, wie Sie mit User Defined Annotations Ihr Reporting optimal erweitern!<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\tWebinare zu Embedded Analytics<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t