This is a test message to test the length of the message box.
Login
ABAP XCO Bibliothek
Erstellt von Software-Heroes

ABAP - XCO Bibliotheken

460

Was kannst du mit der Bibliothek in ABAP und ABAP Cloud machen und wie nutzt du die Objekte am besten? Hier erfährst du mehr.

Werbung


In diesem Artikel schauen wir uns im Allgemeinen die Bibliothek an, wie sie integriert wird und welche weiteren Methoden und Ideen dahinter stecken.

 

Einleitung

SAP stellt die sogenannten XCO (Extension Components) Bibliotheken zur Verfügung, die im klassischen ABAP, sowie in ABAP Cloud verwendet werden können. Du findest die Objekte anhand der Namensgebung in deinem System. Die Klassen beginnen mit XCO*, dort können dann nach Abkürzungen wie CP (Cloud Platform) oder KU (Key User Tools) vorkommen, die dann das Szenario weiter einschränken. Eine Übersicht in der offiziellen Dokumentation findest du hier.

In ABAP Cloud wird die Nutzung von freigegebenen APIs immer wichtiger, daher ist ein einheitliches Verständnis und einheitlich genutzte Komponenten wichtig. Welche API nutzt du nun für welchen Use-Case sollte damit in Zukunft eindeutiger werden.

 

Struktur

Möchtest du dir einen Überblick über die verschiedenen Klassen und die Struktur machen, dann kannst du über die ABAP Development Tools im Project Explorer einen neuen Baum einblenden. Dazu kannst du über das Kontextmenü auf dem System einen neuen Baum anlegen.

 

In diesem Fall lassen wir uns die freigegebenen Objekte anzeigen. Dazu schränken wir die Namen auf XCO_* ein, die Object Type Group können wir so weit entfernen.

 

Nachdem der Baum erstellt wurde, finden wir die Objekte klassifiziert nach ABAP Cloud und Key User Extensibility im Project Explorer. Dort sollten nun alle nutzbaren Klassen vorhanden sein. Grundsätzlich kommt es auf das Backend Release an, wie viele Klassen dir zur Verfügung stehen und ob auch alle Methoden vorhanden sind.

 

Aufbau

In diesem Abschnitt schauen wir uns einmal das Design und den Aufbau der Klassen an und wie du sie am besten verwenden kannst.

 

Fluent Interface

Die Klassen sind im Fluent Interface Pattern entwickelt, das heißt du kannst die verschiedenen Aufrufe und Objekte miteinander verketten. Jede Methode gibt meist ein neues oder das gleiche Objekt zurück, damit können die Aufrufe aneinanderketten. Dazu das folgende Beispiel:

DATA(ld_string) = `This is my new text string`.
xco_cp=>string( ld_string )->to_upper_case( )->append( ` with addition` )->split( ` ` )->value.

 

In diesem Beispiel erzeugen wir über die String Klasse ein neues String Objekt, konvertieren den String in Großschreibung, hängen noch einen weiteren Teil an und teilen den String am Leerzeichen. Das Ergebnis lassen wir zum Schluss noch ausgeben.

 

Neben dem Fluent Interface Pattern gibt es auch zu allen Objekten entsprechende Interfaces, was die Testbarkeit und das Mocking erleichtert. Bei vielen Klassen wirst du auch lokale Unit Tests finden.

 

Wert

Wie du bereits im Beispiel oben gesehen hast, stehen verschiedene Methoden zur Verfügung, die jede Klasse mit sich bringt. Um auf den Inhalt des Objekts zugreifen zu können, verwendest du das Attribut VALUE. Je nach Klasse kann es sich dabei um einen Wert, eine Tabelle oder ein Objekt handeln.

xco_cp=>string( ld_string )->value.

 

Fehlerbehandlung

Alle Klassen sind mit NO_CHECK ausgestattet. Das heißt in der Signatur wirst du keine Exception finden und musst dich damit nicht um das Exception Handling kümmern. Allerdings können Ausnahmen erzeugt werden die vom Typ CX_XCO_RUNTIME_EXCEPTION bzw. Ausnahmen, die von dieser Klasse erben. Weitere Informationen dazu in den Kernprinzipien der Klassen.

 

Objekte

Die Objekte werden direkt beim Aufruf instanziiert und selbst die verschiedenen Einstellungen und Konfigurationen stehen als Objekt in der Hauptklasse zur Verfügung. Suchst du nach dem Interface und der Verwendung, kannst du schnell in einer Sackgasse landen. Schauen wir uns dazu zum Beispiel die Klasse XCO_CP_JSON an und wie wir die richtige Formatierung übergeben. Dazu müssen wir die APPLY Methode aufrufen, um eine Tabelle mit Instanzen vom Typ IF_XCO_JSON_TRANSFORMATION zu übergeben.

 

Normalerweise würden wir uns nun die "Type Hierarchy" (F4) zu dem Interface anschauen, um die Klassen für die Erzeugung heranzuziehen. 

 

Schauen wir uns aber nun die Klasse an, steht diese auf PRIVATE und wir können davon kein Objekt erzeugen.

 

Schauen wir uns dann den Global Friend der Klasse an, werden die Instanzen im Konstruktor der Factory-Klasse erzeugt.

 

Über das Interface der Factory IF_XCO_JSON_TRANSFORMATION_FCT finden wir dann die öffentlichen Attribute, die wir hier eigentlich verwenden sollten. Daher lohnt sich bei den Klassen der Blick in die Hauptobjekte, wenn es um die Konfiguration und zusätzliche Einstellungen geht.

 

Übersicht

Über unsere Übersichtsseite wollen wir dir einen allgemeinen Überblick über die verschiedenen Bibliotheken geben und im Laufe der Zeit die Seite mit weiteren Beispielen und Klassen befüllen. Damit erhältst du einen leichteren Überblick, was es alles gibt und wie du es nutzen kannst.

 

Fazit

Die XCO Klassen sind gesammelte Wünsche aus der Community und sollen zentrale Funktionen zur Wiederverwendung zur Verfügung stellen. Die Suche nach der passenden Funktion in den weiten der Klassen und Funktionsbausteine soll damit entfallen.


Enthaltene Themen:
Modernes ABAPXCOBibliothekAllgemein
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.


ABAP - Escape

Kategorie - ABAP

Schauen wir uns in diesem Artikel einmal im Detail verschiedene Escape Varianten an, die du für die ABAP Entwicklung und Sicherheit im System benötigst.

07.10.2025

ABAP - Datum und Uhrzeit

Kategorie - ABAP

Schauen wir uns in diesem Artikel einmal die Datentypen für das Datum und die Uhrzeit in ABAP etwas genauer an. Hat sich zwischen den verschiedenen Releases etwas geändert und was solltest du heute noch nutzen?

03.10.2025

ABAP - Assign

Kategorie - ABAP

In diesem Artikel schauen wir uns verschiedene Varianten von ASSIGN an und wie du sie in ABAP im Alltag nutzen kannst, um deine Entwicklung effektiver zu machen.

26.09.2025

ABAP - XCO Nachricht und Sprache

Kategorie - ABAP

Was kannst du zusätzlich mit Nachrichten und den Sprachobjekten der XCO Bibliothek in ABAP Cloud machen? Lass uns der Frage im Detail nachgehen.

01.07.2025

ABAP - XCO Generation und Info System

Kategorie - ABAP

Wie kannst du mit ABAP Cloud Mitteln neue Objekte im System generieren und Informationen zu diesen erhalten? An einem Beispiel schauen wir uns das genauer an.

27.06.2025