ABAP: IS BOUND, IS INITIAL und IS ASSIGNED im Vergleich

Die ABAP-Ausdrücke IS BOUND, IS INITIAL und IS ASSIGNED sind in der ABAP-Programmierung sehr wichtig. Mit ihnen kann geprüft werden, ob Variablen verwendet werden können oder einen Inhalt haben. Dieser Artikel stellt IS BOUND, IS INITIAL und IS ASSIGNED vor.

Details zu den ABAP-Ausdrücken finden sich in der ABAP-Dokumentation.

IS BOUND

Die ABAP-Anweisung „IS BOUND“ prüft, ob eine Referenzvariable eine gültige Referenz enthält. Eine Datenreferenzvariable, die eine Stackreferenz enthält, kann ungültig werden, auch wenn das Referenzdatenobjekt vom Stack entfernt wird.

DATA lo_object TYPE REF TO data.

" Syntax von IS BOUND
IF lo_object IS BOUND.
  " lo_object zeigt auf ein Objekt bzw. kann deferenziert werden
ENDIF.

Mit dem ABAP-Ausdruck „IS NOT BOUND“ kann genau das Gegenteil geprüft werden. Ob eine Referenzvariable keine gültige Referenz enthält.

DATA lo_object TYPE REF TO data.

" Syntax von IS NOT BOUND
IF lo_object IS NOT BOUND.
  " lo_object zeigt nicht auf ein Objekt bzw. kann nicht deferenziert werden
ENDIF.

IS INITIAL

Die ABAP-Anweisung „IS INITIAL“ prüft, ob der Operand initial ist. Der Ausdruck ist wahr, wenn der Operand seinen typgerechten Initialwert enthält.

DATA lt_ekko TYPE TABLE OF ekko.

SELECT * FROM ekko INTO TABLE @lt_ekko
  WHERE ernam = @sy-uname.

" Syntax von IS INITIAL
IF lt_ekko IS INITIAL.
  " Interne Tabelle lt_ekko ist leer
ENDIF.

Mit dem ABAP-Ausdruck „IS NOT INITIAL“ kann genau das Gegenteil geprüft werden. Ob der Operand nicht leer ist.

DATA lt_ekko TYPE TABLE OF ekko.

SELECT * FROM ekko INTO TABLE @lt_ekko
  WHERE ernam = @sy-uname.

" Syntax von IS NOT INITIAL
IF lt_ekko IS NOT INITIAL.
  " Interne Tabelle lt_ekko ist nicht leer
ENDIF.

IS ASSIGNED

Die ABAP-Anweisung „IS ASSIGNED“ prüft, ob einem Feldsymbol ein Speicherbereich zugewiesen ist. Der Ausdruck ist wahr, wenn das Feldsymbol auf einen Speicherbereich zeigt.

FIELD-SYMBOLS <fs> TYPE c.

" Syntax von IS ASSIGNED
IF <fs> IS ASSIGNED.
  " Speicherbereich für das Feldsymbol <fs> zugewiesen
ENDIF.

Das Gegenteil kann mit dem ABAP-Ausdruck „IS NOT ASSIGNED“ geprüft werden. Wenn das Feldsymbol nicht zugewiesen ist.

FIELD-SYMBOLS <fs> TYPE c.

" Syntax von IS NOT ASSIGNED
IF <fs> IS NOT ASSIGNED.
  " Speicherbereich für das Feldsymbol <fs> nicht zugewiesen
ENDIF.

Über den Autor

Andreas Geiger

Mein Name ist Andreas Geiger und ich bin ein erfahrener Senior SAP Berater. Mit mehr als 10 Jahren Berufserfahrung habe ich mehrere SAP-Projekte erfolgreich abgeschlossen und umfangreiche Kenntnisse in verschiedenen Bereichen wie SAP FI, SAP MM und ABAP erworben. Nun möchte ich mein Wissen mit Dir teilen, um Dir einen Mehrwert zu bieten und Dich bei Deiner täglichen Arbeit mit dem SAP-System zu unterstützen.

Mehr zu ERP UP

ERP UP unterstützen

Wenn Du mit ERP UP zufrieden bist, kannst Du mich gerne unterstützen. Dabei gibt es unzählige Möglichkeiten, wie Du mich einfach und schnell unterstützen kannst. Wie Du genau ERP UP unterstützen kannst, erfährst Du hier. Vielen Dank.

Schreibe einen Kommentar