This is a test message to test the length of the message box.
Login
|

Skript: XCO Libraries - Quick Introduction [005]

201

In dieser Folge geben wir dir einen Schnelleinstieg in das Thema XCO Bibliotheken. Dabei schauen wir uns die Verfügbarkeit an, gehen auf das Desgin und die Nutzung ein und geben weitere nützliche Tipps. Hierbei handelt es sich um eine kurze Version der ABAPConf 2025 Session "Behind XCO and much further".

Werbung


In dieser Folge schauen wir uns die XCO Bibliotheken in Kurzform an. Möchtest du die volle Version sehen solltest du bei der ABAPConf 2025 Aufzeichnung vorbeischauen. Dabei werden wir eine kurze Einführung in das Thema geben und uns dann die Bibliotheken im Detail anschauen. Grundsätzlich findest du weitere Links zu diesem Video in der Beschreibung.

 

Einführung

XCO steht für Extension Components und beschreibt eine Sammlung von Bibliotheken zur Nutzung verschiedener Funktionen im System. In der Vergangenheit gab es für verschiedene Funktionen wie zum Beispiel das Konvertieren von String nach XString verschiedene Funktionsbausteine, die unterschiedliche Schnittstellen hatten und vielleicht auch unterschiedlich funktionierten. Das Ziel von XCO ist dabei die Vereinheitlichung der Schnittstellen auf ein bis maximal 2 Objekte die ähnliche oder gleiche Funktionen durchführen.

In dieser Übersicht wollen wir uns einmal anschauen, wo du die XCO Bibliotheken überall findest. Auf der linken Seite siehst du das SAP S/4 HANA Cloud System, dies könnte aber auch ein On-Prem System sein. Auf der rechten Seite findest du die Side-by-Side Extensibility. Die XCO Bibliothek steht deshalb als lokale SAP API zur Verfügung oder Side-by-Side auf dem ABAP Environment und dort in der aktuellsten Version.

 

Überblick

Schaust du dir die Objekte an wirst du erst einmal verwirrt sein, da es eine sehr große Anzahl von XCO Klassen Interfaces und Objekten gibt. Deshalb erst einmal ein kurzer Überblick über die eigentlichen 3 Versionen die es gibt. Die erste Version ist Standard aber auch klassisches ABAP genannt. In diesem Beispiel sehen wir die Übersicht über die Klasse XCO diese enthält zahlreiche APIs ist damit die größte Klasse vom Funktionsumfang her gesehen. Die Klasse enthält zahlreiche Attribute und Methoden jeweils als statisch definiert. Die zweite Klasse ist die XCO_CP, wie der Name sagt ist diese vor allem in der Cloud Plattform verfügbar, bedeutet sie ist ABAP Cloud ready. Der erste Unterschied der auffällt ist, dass es 2 Methoden weniger gibt, in diesem Fall das Integer-Objekt und die T100_DYN_MSG. Objekte mit diesem Namen sollten auch einen C1 Freigabekontrakt haben. Die dritte Version sind die Key User Apps, kurz KU. Wie du siehst, fehlen hier weitere Methoden und Attribute. Die Key User Klassen sind deshalb vor allem für die Key User Extensibility freigegeben und können nicht in ABAP Cloud genutzt werden. Wichtig in allen 3 Fällen sind daher Klassen die mit XCO beginnen.

Möchtest du dir einen Überblick in den ABAP Development Tools schaffen, dann kannst du dafür einen neuen ABAP Repository Tree anlegen. Dazu definieren wir das Objektpattern nach XCO Stern und setzen den Typ auf Klasse. Sortieren wir dann alle Klassen nach dem API Status, dann sehen wir am Ende alle Bibliotheken für die entsprechenden Sprachversionen und haben einen ersten guten Einstieg.

Wie verwenden wir nun die XCO Bibliotheken? Dazu ein erstes Beispiel in diesem Fall erzeugen wir ein Stringobjekt über die Klasse XCO_CP und übergeben unseren Teststring an die Methode in diesem Fall erhalten wir ein Stringobjekt zurück. Im Grunde sind die verschiedenen Methoden der Klasse Factory-Methoden, das heißt die Methoden geben uns ein neues Objekt zurück. Im nächsten Fall können wir dann direkt weitere Methoden des Objektes aufrufen und so eine Kette an Aufrufen bilden. Hierbei handelt es sich um das Fluent Interface Pattern. Wir können nun weitere Methoden aufrufen, wie zum Beispiel den Append, um einen weiteren Teilstring anzuhängen. Am Ende rufen wir den Split auf, erhalten dann aber kein Stringobjekt zurück, sondern ein Strings-Objekt, eine Tabelle von verschiedenen Strings. Möchten wir dann auf den Inhalt des Objektes zugreifen verwenden wir den meisten Fällen das Value-Attribut, dieses gibt uns in diesem Fall eine String-Table zurück. Hier noch einmal das komplette Statement ohne die XCO Komponente. In der Split Variable würde am Ende unser Result stehen.

Etwas komplizierter sieht es aber aus, wenn wir zum Beispiel eine bestimmte Formatoption suchen. In diesem Beispiel wollen wir ein Datum formatieren und suchen das entsprechende Format für das Datum. Da wir hier die Information des Interfaces haben, können wir über die Type Hierarchie die entsprechenden Typen finden. Schauen wir uns zum Beispiel den Typen für das ABAP-Format an. Leider steht diese auf CREATE PRIVATE und es gibt kein öffentliches Attribut, um dieses Format zu erzeugen. Allerdings sehen wir einen Global Friend mit der entsprechenden Factory, das heißt wir schauen uns im nächsten Schritt einmal die Factory an. Diese steht ebenfalls auf CREATE PRIVATE hat aber wiederum ein Global Friend. Also navigieren wir weiter zur nächsten Klasse. In der XCO_CP_TIME finden wir dann ein öffentliches Attribut namens Format, schauen wir weiter unten sehen wir im Klassenkonstruktor dass die Factory entsprechend beim Aufruf des Objektes erzeugt wird. Damit haben wir im Endeffekt die entsprechende Klasse gefunden, können über das Format-Attribut dann uns eine Instanz erzeugen und finden dort das ABAP-Format für die Formatierung und Ausgabe.

Wie sieht es eigentlich mit dem Abfangen von Ausnahmen aus? In den meisten Fällen übernimmt das Framework bereits das Abfangen von Ausnahmen und wrappt diese in Ausnahmen vom Typen NO_CHECK. Wenn du dich zum Beispiel an die Verwendung der UUID erinnerst, müssen wir in den meisten Fällen die Ausnahme abfangen, wenn wir eine neue UUID erzeugen wollen. Da aber ein Fehler beim Erzeugen der ID sehr selten ist, sparen wir uns so das Abfangen der Ausnahme und haben damit einen kürzeren Aufruf. Sollte im Endeffekt wirklich mal eine Ausnahme auftreten dann würde diese ausgelöst werden und unser Programm zum Absturz bringen, was in diesem Fall aber auch gröbere Fehler verhindern würde.

Wie sieht es aber nun eigentlich mit dem Bibliotheken aus? Welche verschiedenen Bibliotheken gibt es? Die meisten Entwickler, die an XCO denken, werden erst einmal an die Objektgenerierung denken. Es gibt allerdings auch ein Infosystem mit dem du weitere Informationen über Klassen und andere Objekte erhalten kannst, so zum Beispiel Inhalte zu Methoden oder bestimmte Definitionen. Weiterhin gibt es einen spezifischen Classrunner. Im Gegensatz zur klassischen Version kann dieser zum Beispiel Ausnahmen abfangen und kann verschiedene XCO Objekte einfach ausgeben. Es gibt eine spezifische Excel Komponente. Diese kann Excel Dateien einlesen, aber auch erzeugen, und hat in der aktuellsten Version bereits verschiedene Formatierungsoptionen. Insgesamt ist die Excel Komponente aber nicht so umfangreich wie zum Beispiel das Open Source Projekt ABAP2XLSX. Weiterhin gibt es eine Bibliothek zur Formatierung von JSON, eine Bibliothek, um an verschiedene Systeminformationen zu kommen, wie das aktuelle Datum oder zum Beispiel auch den Aufrufstack. Wie bereits angesprochen gibt es auch eine Bibliothek für die Erzeugung von UUIDs, zur Behandlung von Strings und XStrings, aber auch zur Verarbeitung von Nachrichten. Dies ist aber nur ein grober Überblick über die verschiedenen Bibliotheken Es gibt noch viele weitere Bibliotheken die es zu erforschen gibt. Einen Link zu einer sich erweiternden Übersicht findest du in der Videobeschreibung.

 

Fazit

Dies war ein grober Überblick über die XCO Bibliotheken und wie du sie effektiv in deinem Arbeitsalltag nutzen kannst. Zum Schluss wollen wir noch einmal zusammen fassen, dass die XCO Bibliotheken erst einmal schwer zu Erlernen sind, vor allem wenn du aus der klassischen Entwicklung kommst. Die verschiedenen Typen Formatierungen und Zusammenhänge zu verstehen, bedeutet erst mal sich mit den Bibliotheken auseinanderzusetzen. Ein Vorteil der XCO Bibliotheken ist, dass sie über alle Plattformen verfügbar sind, das heißt egal ob es eine Cloud Edition ist oder On-Prem. Ein offener Wunsch dabei an die SAP, die Bibliotheken zu erweitern und fehlende Funktionen nachzuliefern. So gibt es zum Beispiel nicht für alle Objekttypen eine Informationsobjekt, um die Typen und Objekte besser analysieren zu können. Weiterhin hat zum Beispiel die JSON Bibliothek Probleme mit der Konvertierung von booleschen Werten.

Deshalb mein Rat an dich, probiere die neuen Bibliotheken aus und nutze sie in deinem Alltag. Ich hoffe du konntest dabei etwas mitnehmen und wir sehen uns beim nächsten Mal.

 

YouTube
Video


Enthaltene Themen:
YouTubeSkriptXCO Bibliothek
Kommentare (0)



Und weiter ...

Bist du zufrieden mit dem Inhalt des Artikels? Wir posten jeden Dienstag und Freitag neuen Content im Bereich ABAP und unregelmäßig in allen anderen Bereichen. Schaue bei unseren Tools und Apps vorbei, diese stellen wir kostenlos zur Verfügung.


033: Core Data Service [Basics] - Consumption Modeling

Kategorie - YouTube

In dieser Folge schauen wir auf die Modellierung eines Consumption Views und schauen uns verschiedene Punkte, wie Funktionen, Assoziationen, Session Variablen und virtuelle Felder an.

26.01.2026

032: Recycling-Heroes - Tags and Types

Kategorie - YouTube

In dieser Folge legen wir weitere Business Configurations an, die wir später in unserem Datenmodell brauchen. Einige der Eigenschaften heben sich dabei geändert und diese Änderungen schauen wir uns im Detail an.

19.01.2026

031: Recycling-Heroes - Unit Testing (Configuration API)

Kategorie - YouTube

Nachdem wir die Configuration API fertiggestellt haben, schauen wir uns einmal das Thema Unit Tests an und wie wir unsere API automatisch testen können. Damit sparen wir uns später den Aufwand für manuelle Tests.

05.01.2026

030: Software-Heroes - My Community

Kategorie - YouTube

Du möchtest das neuste ABAP und SAP Wissen haben und auch nicht jeden Blog einzeln absuchen? My Community bringt den gesamten Community Content in eine Mini-App, die du nach deinen Vorstellungen anpassen kannst, um so keine Neuigkeiten mehr zu verpassen.

22.12.2025

029: ABAP and SAP Material (Software-Heroes)

Kategorie - YouTube

Wie findest du eigentlich die passenden ABAP und SAP Tutorials auf der Plattform Software-Heroes? In dieser Folge wollen wir dir einige Tools und Übersichten vorstellen, wie du in Zukunft weiter effizient die Themen und Informationen findest.

15.12.2025