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

ABAP - XCO Bibliotheken

74

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 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 - Type Casting

Kategorie - ABAP

Wie kommst du eigentlich an den ursprünglichen Typ einer Klasse bzw. Instanz, wenn diese in einer generischen Tabelle übergeben wird? In diesem Artikel prüfen wir die Möglichkeiten.

16.04.2024

ABAP - RETURN value

Kategorie - ABAP

Nach all den Jahren ist nun endlich der "echte" Return in ABAP angekommen, in diesem Artikel zeigen wir dir, wie der funktioniert und was er kann.

13.02.2024

ABAP Deep Dive - FOR (Schleifen)

Kategorie - ABAP

Schauen wir uns einmal die FOR Schleife etwas näher an. Wie funktioniert sie? Was muss ich beachten und was kann ich damit tun?

14.04.2023

ABAP Deep Dive - Tabellenzugriff (intern)

Kategorie - ABAP

Schauen wir uns in diesem Artikel einmal den Tabellenzugriff auf interne Tabellen an und wie sie den READ TABLE ablösen.

03.02.2023

ABAP - FINAL

Kategorie - ABAP

In diesem Artikel schauen wir uns einmal das neue FINAL Sprachkonstrukt an, wie es funktioniert und was du damit anstellen kannst.

23.12.2022