Strukturen
Strukturen fassen logisch zusammenhängende Werte in einem Datenobjekt zusammen.
Definition lokaler Strukturtypen
Lokale Strukturtypen werden, wie alle anderen lokalen Datentypen, mit Hilfe des Schlüsselworts TYPES sowie dem Zusatz BEGIN OF...END OF definiert..
TYPES: BEGIN OF t_connection,
carrier_id TYPE /dmo/carrier_id,
connection_id TYPE /dmo/connection_id,
airport_from_id TYPE /dmo/airport_from_id,
airport_to_id TYPE /dmo/airport_to_id,
END OF t_connection.
Definition globaler Strukturtypen
Globale Strukturtypen werden mit Hilfe der Data Definition Language (DDL) der ABAP Core Data Services (ABAP CDS) definiert.
@EndUserText.label : 'Connection'
@AbapCatalog.enhancementCategory : #NOT_EXTENSIBLE
define structure zconnection {
carrier_id : /dmo/carrier_id;
connection_id : /dmo/connection_id;
airport_from_id : /dmo/airport_from_id;
airport_to_id : /dmo/airport_to_id;
}
Deklaration von Strukturen
Strukturen werden, wie elementare Datenobjekte, mit der DATA-Anweisung deklariert.
TYPES: BEGIN OF t_connection,
carrier_id TYPE /dmo/carrier_id,
connection_id TYPE /dmo/connection_id,
airport_from_id TYPE /dmo/airport_from_id,
airport_to_id TYPE /dmo/airport_to_id,
END OF t_connection.
DATA connection TYPE t_connection. " Local Structure Type
DATA connection2 TYPE zconnection. " Global Structure Type
Zugriff auf Strukturkomponenten
Mit dem Komponentenselektor - kann auf die einzelnen Komponenten einer Struktur zugegriffen werden (lesend als auch schreibend).
DATA connection TYPE zconnection.
connection-carrier_id = 'LH'.
connection-connection_id = '0400'.
out->write( connection-carrier_id, connection-connection_id ).
Kopieren von Strukturen
Strukturen mit dem gleichen Strukturtypen können über den Zuweisungsoperator = kopiert werden. Der Operator CORRESPONDING ermöglicht das komponentenweise Kopieren von Inhalten einer Quellstruktur in eine Zielstruktur.
DATA flight TYPE zflight.
DATA connection TYPE zconnection.
DATA copy_of_connection TYPE zconnection.
DATA flight_with_connection TYPE zflight_extended.
copy_of_connection = connection.
flight_with_connection = CORRESPONDING #( flight ).
flight_with_connection = CORRESPONDING #( BASE ( flight_with_connection ) connection ).
Beim Kopieren mit CORRESPONDING werden nur gleichnamige Komponenten berücksichtigt. Gegebenenfalls findet eine Typkonvertierung statt.