Anfang des Inhaltsbereichs

Der LIKE-Zusatz Dokument im Navigationsbaum lokalisieren

Der LIKE-Zusatz wird ähnlich wie der TYPE-Zusatz in verschiedenen ABAP-Anweisungen zur Definition von Datentypen und zur Typisierung von Schnittstellenparametern oder von Feldsymbolen verwendet. Mit dem Zusatz

LIKE <obj>

kann in den gleichen ABAP-Anweisungen wie beim TYPE-Zusatz auf alle an dieser Stelle sichtbaren Datenobjekte <obj> verwiesen werden. Dabei ist der Ausdruck <obj> entweder der Name eines Datenobjekte oder der Ausdruck

LINE OF <table-object>

In diesem Fall bezieht sich der LIKE-Zusatz sinngemäß auf den Zeilentyp eines an dieser Stelle sichtbaren Tabellenobjekts <table-object>.

LIKE zieht sozusagen die technischen Eigenschaften (Attribute) eines Datenobjekts ab und verwendet sie zur Typisierung anderer Objekte bzw. Typen.

ABAP-Anweisungen mit LIKE-Bezug

TYPES <t> LIKE <obj>.

Der neue Datentyp <t> übernimmt vollständig die technischen Eigenschaften des Datenobjekts <obj>.

DATA <f> LIKE <obj>.

CLASS-DATA <f> LIKE <obj>.

CONSTANTS <f> LIKE <obj>.

STATICS <f> LIKE <obj>.

PARAMETERS <f> LIKE <obj>.

Das Datenobjekt <f> übernimmt alle technischen Eigenschaften des Datenobjekts <obj>.

CREATE DATA <dref> LIKE <obj>.

FORM <sub> ... USING|CHANGING <p> LIKE <obj> ...

Die technischen Eigenschaften des Formalparameters <p> sind vollständig durch die Eigenschaften des bekannten Datenobjekts <obj> festgelegt. Es dürfen nur Aktualparameter mit diesen Eigenschaften übergeben werden.

METHODS <meth> ... IMPORTING|EXPORTING|CHANGING <p> LIKE <obj> ...

Die technischen Eigenschaften des Formalparameters <p> sind vollständig durch die Eigenschaften des bekannten Typs <type> festgelegt. Es dürfen nur Aktualparameter des gleichen Typs übergeben werden.

FIELD-SYMBOLS <fs> LIKE <obj>.

Die technischen Eigenschaften des Feldsymbols <FS> sind vollständig durch die Eigenschaften des bekannten Datenobjekts <obj> festgelegt. Es dürfen nur Datenobjekte dieser Eigenschaften zugewiesen werden.

Sichtbarkeit von Datenobjekten

Als Faustregel kann gelten, daß man sich mit LIKE auf alle mit DATA (oder ähnlichen Anweisungen) deklarierten Datenobjekte beziehen kann, die im aktuellen Kontext sichtbar sind. Dabei muß nur die Deklaration des Datenobjekts bekannt sein. Es ist völlig unerheblich, ob das Datenobjekt während dem LIKE-Bezug schon physisch im Speicher existiert oder nicht.

DATA <ref> TYPE REF TO <cl_global>.

DATA: f1 LIKE <cl_global>=><attr>,
      f2 LIKE <ref>-><attr>.

Es kann also über den Klassennamen auf die Eigenschaften von Instanzattributen zugegriffen werden und eine Referenzvariable kann für den gleichen Zweck verwendet werden, ohne daß zuvor ein Objekt zu erzeugt wird. Die Eigenschaften der Attribute einer Klasse gehören sind also instanzunabhängig und gehören zu den statischen Eigenschaften einer Klasse.

 

 

Ende des Inhaltsbereichs