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

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)
Werbung

ABAP - Predicative Method Call

Kategorie - ABAP

Durch das OO Konzept werden für komplexe Abfragen meist eigene Methoden verwendet. In diesem Artikel geht es um den Vergleich des Ergebnisses aus solchen Methoden.

14.05.2021

ABAP - Performance für den SELECT

Kategorie - ABAP

In diesem Artikel schauen wir uns noch ein paar Spezialfälle mit dem SELECT an und beleuchten die Performance dieser Konstrukte. Wir zeigen dir die aktuellen Alternativen dafür und geben kleinere Tipps beim Lesen.

02.04.2021

ABAP - Objekte prüfen (Instanzen)

Kategorie - ABAP

In diesem Artikel zeigen wir dir, wie du Instanzen analysieren und auf diese korrekt reagieren kannst, wenn du diese zum Beispiel bei einer Verarbeitung übergibst und individuell reagieren möchtest.

19.03.2021

ABAP - Schleifen

Kategorie - ABAP

Mit dem modernen ABAP wurden auch neue Schleifen und Möglichkeiten zur Einschränkung von Tabelleninhalten geschaffen. Diese neuen Befehle schauen wir uns in diesem Artikel näher an.

19.02.2021

ABAP - Vergleiche

Kategorie - ABAP

Heute betrachten wir uns das Thema Vergleiche und Vergleichsoperatoren im Hinblick auf die neuen Befehle und die aktuelle Verwendung. Was hat sich bisher alles geändert und was sollte man noch tun.

12.02.2021