Show TOC Anfang des Inhaltsbereichs

Anforderungen überprüfen  Dokument im Navigationsbaum lokalisieren

Neben den logischen Ausdrücken für Vergleiche, gibt es in ABAP auch einen Satz von logischen Ausdrücken, mit denen bestimmte Anforderungen von Datenobjekten überprüft werden können.

Intervallzugehörigkeit prüfen

Folgender logischer Ausdruck überprüft, ob der Wert eines Felds innerhalb eines bestimmten Intervalls liegt:

... f1 BETWEEN f2 AND f3 ...

BeispielBeispiel zur Überprüfung der Intervallzugehörigkeit:

DATA: number TYPE i,
      flag(1) TYPE c.

...

number = ...

...

IF number BETWEEN 3 AND 7.
  
flag = 'X'.
ELSE.
  flag = ' '.
ENDIF.

In diesem Beispiel wird der Inhalt des Felds flag auf X gesetzt, wenn der Wert von number zwischen 3 und 7 liegt.

Initialwert prüfen

Folgender logischer Ausdruck überprüft, ob ein Feld seinen Initialwert hat:

... f IS INITIAL ...

BeispielBeispiel für die Überprüfung des Initialwertes eines Dateobjektes

REPORT demo_log_expr_is_initial .

DATA flag(1) TYPE c VALUE 'X'.

IF flag IS INITIAL.
  WRITE / 'Flag is initial'.
ELSE.
  WRITE / 'Flag is not initial'.
ENDIF.

CLEAR flag.

IF flag IS INITIAL.
  WRITE / 'Flag is initial'.
ELSE.
  WRITE / 'Flag is not initial'.
ENDIF.

Die Listenausgabe sieht folgendermaßen aus:

Flag is not initial

Flag is initial.

In diesem Beispiel enthält das Zeichenfeld flag nach der Deklarierung durch die Anweisung DATA nicht seinen Initialwert, weil es mit Hilfe des Parameters VALUE auf den Startwert X gesetzt wurde. Nach der Anweisung CLEAR enthält es den Initialwert.

Selektionskriterien prüfen

Folgender logischer Ausdruck überprüft, ob der Inhalt eines Feldes die Selektionskriterien in einer Selektionstabelle erfüllt:

... f IN seltab ...

Für ausführliche Informationen zu Selektionstkriterien und ihrer Anwendung siehe Selektionsbilder.

Beispiel

REPORT demo_log_expr_in_seltab .

DATA wa TYPE spfli.

SELECT-OPTIONS s_carrid FOR wa-carrid.

IF 'LH' IN s_carrid.
  WRITE 'LH was selected'.
ENDIF.

Der logische Ausdruck in der IF-Anweisung ist wahr, wenn der Benutzer auf dem Selektionsbild eine Datenselektion vornimmt, die den Wert 'LH' enthält.

Zuweisung zu einem Feldsymbol überprüfen

Folgender logischer Ausdruck überprüft, ob einem Feldsymbol ein Feld zugewiesen ist:

... <fs> IS ASSIGNED ...

Der Ausdruck ist wahr, wenn dem Feldsymbol <fs> entweder explizit oder implizit ein Feld zugewiesen wurde. Der Ausdruck ist falsch, wenn dem Feldsymbol <fs> weder explizit noch implizit ein Feld zugewiesen wurde.

Direkt nach der Definition eines Feldsymbols verhält sich der Ausdruck wie folgt:

·         Bei untypisierten Feldsymbolen ist er wahr, da diese auf space zeigen.

·         Bei typisierten Feldsymbolen ist er falsch, da diese auf kein Feld zeigen.

·         Bei Feldsymbolen mit aufgeprägter Struktur ist er wahr, da die Feldzuweisung bereits bei der Deklaration erfolgt.

Falsch kann der Ausdruck in folgenden Fällen sein:

·        Direkt nach der Deklaration eines typisierten Feldsymbols

·        Nach der Anweisung UNASSIGN <fs>.

·        Wenn ein lokales Feld, auf das <fs> gezeigt hat nicht mehr existiert.

·        Wenn <fs> auf einen globalen Parameter einer Schnittstelle eines Funktionsbausteins zeigt, der gerade nicht aktiv ist.

Beispiel

REPORT demo_log_expr_is_assigned .

FIELD-SYMBOLS <fs> TYPE ANY.

DATA text(10) TYPE c VALUE 'Assigned!'.

ASSIGN text TO <fs>.

IF <fs> IS ASSIGNED.
  
WRITE <fs>.
ENDIF.

Die Listenausgabe ist

Assigned!

da der logische Ausdruck in der IF-Anweisung wahr ist.

Ende des Inhaltsbereichs