This is a test message to test the length of the message box.
Login
ABAP Corresponding und Value
Erstellt von Software-Heroes

ABAP - Corresponding und Value

1533

Die beiden Ausdrücke fokussieren vor allem auf das Erstellen von Strukturen und verschieben von Dateninhalten im Zusammenhang von Tabellen. Beide wollen wir dir heute zeigen und welche Befehle sie ablösen.

Werbung


Heute wollen wir die die beiden Befehle Corresponding und Value etwas näher bringen. Wie im letzten Artikel auch, handelt es sich bei den Ausdrücken um sogenannte Konstruktor-Ausdrücke, wenn du nicht weißt, was das bedeutet, dann kannst du dies in unserem letzten Artikel nachlesen.

 

Corresponding

Der neue Befehl löst das Move-Corresponding ab, wie du dir sicherlich schon gedacht hast. Dabei kann ein neuer Typ direkt bei der Übergabe definiert werden. Mit dem Befehl wurden auch einige Zusätze definiert, die dir das Leben um einiges einfacher machen.

Dazu erst einmal ein Beispiel, wie einfach der neue Befehl funktioniert:


" einfacher Move
DATA(ls_t001) = CORRESPONDING t001( ls_data ).

 

Für ein einfaches Verschieben ist keine komplexe Verwendung nötig, hier kann der Befehl einfach "platt" heruntergeschrieben werden. 

Anders sieht es aus, wenn du mehrere Strukturen zusammenführen willst, hier benötigst du einen Zusatz, da sonst die vorher gemappten Werte wieder aus deiner Zielstruktur gelöscht werden. Dies ist die sogenannte Basis (BASE) für das Verschieben der Daten. Im folgenden Beispiel führen wir drei Strukturen in eine Zielstruktur zusammen:


" Move mit Basis
ls_data = CORRESPONDING #( ls_t001 ).
ls_data = CORRESPONDING #( BASE( ls_data ) ls_bkpf ).
ls_data = CORRESPONDING #( BASE( ls_data ) ls_skb1 ).

 

Durch den Zusatz werden die bereits gefüllten Felder aus ls_data übernommen und dann mit den Feldern der Zusatzstruktur, in diesem Fall Buchungskreis und Sachkonto, ergänzt.

Ein weiterer, sehr interessanter, Zusatz ist das Mapping für Felder die vom Namen her nicht passen. Bisher musstest du dafür ein Move-Corresponding einsetzen und im Anschluss alle abweichenden Felder mappen. Dies kann als Zusatz nun hinter dem Befehl "Mapping" gemacht werden.


" Move mit Mapping
ls_data = CORRESPONDING #( ls_t001 MAPPING company_code = bukrs description = butxt ).

 

Die Zuweisung erfolgt im Prinzip "Zielfeld = Quellfeld aus der Struktur". Hier kann eine beliebige Anzahl an Feldern ergänzt werden, die zusätzlich gemappt werden sollen.

 

Value

Der "Value"-Befehl wird vor allem zur Erzeugung von Strukturen und Tabellen verwendet. Der Einsatz bei Inserts, Updates oder Appends ist sehr flexibel, spart Platz im Coding und spart vor allem Initialisierungsaufwand, da die Struktur erst durch den Value Befehl erzeugt wird. Zwischen den Klammern des Value erfolgt die Zuweisung der benötigten Felder. Du musst nur die Felder befüllen, die du benötigst, der Rest wird mit Initialwerten aufgefüllt.

Dafür einige Beispiele zum Befehl:


" Befüllung einer Range
DATA lt_bukrs TYPE RANGE OF t001-bukrs.

APPEND VALUE #( sign = 'I' option = 'EQ' low = 'A001' ) TO lt_bukrs.
APPEND VALUE #( sign = 'I' option = 'EQ' low = 'A002' ) TO lt_bukrs.
APPEND VALUE #( sign = 'I' option = 'EQ' low = 'A003' ) TO lt_bukrs.

" Erzeugung einer Struktur
DATA(ls_t001) = VALUE t001( bukrs = 'A001' butxt = 'Value-Test' land1 = 'EN' ).

" Tabelle erzeugen
TYPES tt_data TYPE STANDARD TABLE OF char25 WITH EMPTY KEY.

DATA(lt_data) = VALUE tt_data( ( '123' ) ( '456' ) ( '789' ) ).

 

Hinweis: Wichtig bei der Definition  der Tabelle und Nutzung eines selbstdefinierten Tabelletypen, ist die Definition des Schlüssels. In diesem Fall haben wir einen "Empty Key" definiert, um einen Schlüssel zu haben. Ohne Zusatz der Schlüsseldefinition, kann das Coding nicht generiert werden und es erfolgt die Fehlermeldung "Ein Wert des generischen Typs TT_DATA kann nicht konstruiert werden."

 

Fazit

Die heutigen vorgestellten Funktionen bieten wieder viel Flexibilität bei der Entwicklung und verkürzen an einigen Stellen den Aufwand des Schreibens. Wir hoffen dir gefallen die beiden neuen Schlüsselwörter ebenfalls so gut wie uns und wir wünschen dir viel Spaß bei der Nutzung.

 

Quelle:
SAP Dokumentation Corresponding
SAP Dokumentation Value


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