SAP NetWeaver AS ABAP Release 751, ©Copyright 2017 SAP AG. Alle Rechte vorbehalten.
ABAP - Schlüsselwortdokumentation → ABAP - Referenz → Interne Daten verarbeiten → Zuweisungen → Strukturkomponenten zuweisen → CORRESPONDING - Komponentenoperator →CORRESPONDING - Grundform
Syntax
... { CORRESPONDING dtype|#( [DEEP]
[BASE ( base )]
struct|{itab [
duplicates]} ) }
| { CORRESPONDING dtype|#( [BASE ( base )]
struct|{itab [
duplicates]}
mapping ) } ...
Zusatz:
Wirkung
Diese Variante des Komponentenoperators CORRESPONDING konstruiert aus den Komponenten eines Parameters struct oder itab ein Ergebnis von dem über dtype oder # angegebenen Zieltyp. Bei struct und itab handelt es sich um allgemeine Ausdruckspositionen.
Wenn der Zusatz DEEP angegeben ist, erfolgt die Zuweisung wie mit dem Zusatz EXPANDING NESTED TABLES zur Anweisung MOVE-CORRESPONDING. Mit einer Mapping-Vorschrift mapping kann die auf Namensgleichheit beruhende Zuweisungsregel von MOVE-CORRESPONDING übersteuert werden. Wenn eine Mapping-Vorschrift angegeben ist, ist der Zusatz DEEP implizit gesetzt und er darf nicht explizit angegeben werden.
Hinweise
Beispiel
Zuweisung von vier namensgleichen Komponenten der Standardtabelle spfli_tab an eine temporäre sortierte Tabelle vom Typ flights an einer Operandenposition..
TYPES:
BEGIN OF flight,
carrid TYPE spfli-carrid,
connid TYPE spfli-connid,
cityfrom TYPE spfli-cityfrom,
cityto TYPE spfli-cityto,
END OF flight.
TYPES
flights TYPE SORTED TABLE OF flight WITH UNIQUE KEY carrid connid.
SELECT *
FROM spfli
INTO TABLE @DATA(spfli_tab).
cl_demo_output=>display( CORRESPONDING flights( spfli_tab ) ).
Ausführbare Beispiele
... BASE ( base ) ...
Wirkung
Mit dem Zusatz BASE kann ein Startwert base für die erzeugte Struktur bzw. interne Tabelle angegeben werden. Bei base handelt es sich um eine funktionale Operandenposition an der ein Datenobjekt angegeben werden kann, das in den Zieltyp konvertierbar ist.
Wenn der Zusatz BASE angegeben ist, wird der Wert von base der Zielstruktur bzw. der Zieltabelle nach den allgemeinen Zuweisungsregeln zugewiesen bevor der restliche Ausdruck ausgewertet wird. Dabei kann mit dem Zusatz duplicates hinter itab das Verhalten bezüglich doppelt vorkommender Zeilen in einer Zieltabelle beeinflusst werden.
Hinweise
Beispiel
Zuweisung von Ergebnissen des Komponentenoperators ohne und mit dem Zusatz BASE an vorhandene Strukturen gleichen Inhalts. Der Wert der in der Quellstruktur nicht vorhandenen Komponente bleibt nur bei der Verwendung von BASE erhalten.
DATA:
BEGIN OF src,
a TYPE i VALUE 1,
b TYPE i VALUE 2,
END OF src,
BEGIN OF target1,
b TYPE i VALUE 11,
c TYPE i VALUE 12,
END OF target1.
DATA(target2) = target1.
target1 = CORRESPONDING #( src ).
target2 = CORRESPONDING #( BASE ( target2 ) src ).
cl_demo_output=>new( )->write( target1 )->display( target2 ).