This is a test message to test the length of the message box.
Login
ABAP Tipp Generische Datentypen
Erstellt von Software-Heroes

ABAP Tipp - Generische Datentypen

326

Was unterscheidet eigentlich CLIKE von CSEQUENCE? Generische Typen können manchmal etwas undurchsichtig sein und als ABAP Entwickler wählen wir vielleicht den Typen zu generisch.

Werbung


In diesem Artikel schauen wir uns das Thema generische Datentypen an und wie du damit in Zukunft recht einfach umgehen kannst, um den perfekten Typen für dich zu finden.

 

Einleitung

Was sind eigentlich generische Datentypen? Hierbei handelt es sich um eine Zusammenfassung von verschiedenen Basistypen zu einer Oberkategorie. Definierst du zum Beispiel einen Übergabeparameter damit, dann kannst du bestimmte Datentypen an die Schnittstelle übergeben, ohne vorher eine Konvertierung durchführen zu müssen. Passt dann einmal ein Typ nicht zur Obergruppe, dann siehst du das bereits durch den Compiler hervorgehoben.

 

Generische Typen

Die verschiedenen generischen Typen lassen sich in verschiedene Unterkategorien einteilen, die wir uns einmal in diesem Kapitel anschauen. Grundsätzlich findest du eine schöne Übersicht in der SAP Help (siehe Link unten).

 

Elementar

Elementare Datentypen gibt es in ABAP zahlreich, vom Character, über das Datum bis zum String ist eine große Palette an Typen vertreten. Daher gibt es hier auch die Großzahl der generischen Typen. Dabei bilden die Typen Gruppen von elementaren Datentypen ab, die du dann bei der Schnittstelle verwenden kannst. Um nun auf die Eingangsfrage zurückzukommen, was ist eigentlich der Unterschied zwischen CLIKE und CSEQUENCE?

  • CSEQUENCE - Mögliche Typen sind C und STRING.
  • CLIKE - Mögliche Typen sind C und STRING, aber auch D (Datum), T (Zeit) und N (Nummerischer Character). 

 

Würdest du dir unter CLIKE auch ein Datum oder eine Uhrzeit vorstellen? Könnte bei der Verarbeitung zu Problemen führen und vielleicht doch eher CSEQUENCE anschauen, wenn du eigentlich Texte erhalten wolltest.

Weitere generische Typen fassen die verschiedenen Zahlen zusammen, wie zum Beispiel DECFLOAT oder NUMERIC. Ist es dir am Ende eigentlich egal und du willst einen Basistypen erhalten, dann kannst du auch SIMPLE verwenden.

 

Komplex

Unter den komplexen Typen werden Strukturen, Tabellen und Meshes zusammengefasst. Generisch wird es hier vor allem bei den verschiedenen Typen von Tabellen. Da der Zugriff auf die verschiedenen Typen unterschiedlich sein kann, gibt es hier spezifische Type und Zusammenfassungen. Zum Beispiel wird unter INDEX TABLE die Tabellen des Typs Standard und Sorted zusammengefasst, da du bei diesen Beiden mit einem numerischen Index zugreifen kannst.

DATA(selected_entry) = table[ 1 ].

 

Ist dir dann zum Beispiel die Art der Tabelle egal, dann kannst du auch ANY TABLE angeben und damit können alle Arten von Tabellen an deine Schnittstelle übergeben werden.

 

Objekt

Eine der einfachsten Arten sind die Objekte, hier gibt es im Grunde nur die Klasse und das Interface, die hier darunter fallen. In den meisten Fällen gibst du das Interface in der Schnittstelle an, da du hier sowieso verschiedene Klassen mappen kannst, die das Interface implementieren. Möchtest du alle Arten von Objekten zulassen, die sich nicht die gleiche Grundklasse oder das gleiche Interface teilen, dann kannst du OBJECT verwenden.

 

Generisch

Möchtest du alles zulassen, dann steht dir ANY oder DATA zur Verfügung. Aber Vorsicht, da nun alle Arten an Daten übergeben werden können, musst du damit auch umgehen können. Sonst solltest du dich dazu entschließen einen spezifischeren Typen zu verwenden.

 

ABAP Generic Types

Wir hatten nun über die verschiedenen generischen Datentypen gesprochen, doch wie sieht es nun eigentlich mit der Anwendung und Nutzung aus. Grundsätzlich solltest du nicht zu generisch arbeiten, also gleich ANY verwenden, wenn du eigentlich nur Texte zulassen willst. Dafür stellen wir dir ein kleines Tool auf der Webseite zur Verfügung: ABAP Generic Types. Im Tool wählst du die Datentypen die deine Methode zum Beispiel unterstützen soll.

 

Nach der Ausführung bekommst du eine Liste der möglichen Datentypen vom spezifischsten Typen zum allgemeinen Typen. Damit siehst du auf den ersten Blick, welcher generische Datentyp sich für dein Szenario eignet und was du darüber aber auch erhalten könntest.

 

Hinweis: Willst du einfach eine Übersicht haben, kannst du das Tool auch ohne Einschränkung ausführen. Dann bekommst du eine Liste aller generischen Datentypen und der Zuordnung.

 

Vollständiges Beispiel

Das vollständige Beispiel des Testprogramms findest du im GitHub Repository, wo auch die Konfiguration für das Tool liegt. Möchtest du etwas mit den Typen experimentieren, schau gern in diese Klasse.

 

Fazit

Über die Dokumentation und unser Tool solltest du nun die richtige Auswahl für dich treffen können. Im nächsten Projekt sollte damit der Scope für die Übergabe passen und du keine Überraschungen oder Abbrüche erhalten.

 

Quelle:
SAP Help - Types and Objects


Enthaltene Themen:
TippDatentypenGenerisch
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 in Praxis - Fiori Daten fehlerhaft

Kategorie - ABAP

In diesem kleinen Praxisbeispiel schauen wir uns einen Fehlerfall in Fiori an. Hier werden die Daten im UI falsch angezeigt, obwohl alles sonst richtig zu sein scheint. Die Spur führt uns durch den RAP Stack in eine andere Richtung.

10.10.2025

ABAP Tipp - Handling von Funktionsbausteinen

Kategorie - ABAP

Wie gehst du eigentlich mit Funktionsbausteinen und der Fehlerbehandlung innerhalb von ABAP um? In diesem kleinen Tipp schauen wir uns die Behandlung auch im Rahmen von RFC an.

26.08.2025

Recycling-Heroes (Erklärt)

Kategorie - ABAP

Was haben die Recycling-Heroes mit moderner ABAP Entwicklung und ABAP Cloud zu tun? In diesem Artikel geben wir Einblicke in die Idee.

15.07.2025

ABAP Tipp - Ranges und Select-Options

Kategorie - ABAP

Ranges und Select-Options in ABAP sind sehr ähnlich und doch gibt es feine Unterschiede bei der Nutzung im ABAP OO Kontext. Hier schauen wir uns die moderne Verwendung an.

09.05.2025

ABAP Tipp - Generische Query Implementierung

Kategorie - ABAP

Die immer wieder gleiche Implementierung in Query Klassen für Custom Entities in RAP? Es wird mal Zeit für eine wiederverwendebare Komponente.

22.04.2025