Prädikatfunktion LINE EXISTS

Aus SAP-Wiki
Zur Navigation springenZur Suche springen

Siehe Kategorie: Neues ABAP.

Siehe Neues ABAP (ab Release 7.40).

Siehe Prädikatfunktion LINES().

Um zu prüfen, ob in einer internen Tabelle ein bestimmter Wert vorhanden, bzw. nicht vorhanden ist, gibt es die eingebaute Tabellenfunktion LINE_EXISTS.

Dieser Befehl existiert seit ABAP 7.40 SP2.

Coding LINE_EXISTS

Hier wird geprüft, ob in der internen Tabelle MT_OUTPUT im Feld NEXT_LGORT ein nicht gefüllter Wert (SPACE) vorhanden ist.

IF line_exists( mt_output[ next_lgort = space ] ).
  ..
ELSE.
  ..
ENDIF.

oder hier eine Prüfung, ob von einer ALV-Liste mindestens ein Datensatz markiert wurde.

IF line_exists( gt_ret[ selkz = 'X' ] ).
  ..
ENDIF.

Es kann auch geprüft werden, ob kein Satz existiert. Hier soll geprüft werden, ob mindestens ein Datensatz in einer ALV-Liste markiert wurde. Wenn das nicht der Fall ist, wird die Routine verlassen.

IF NOT LINE_EXISTS( gt_itab[ selkz = 'X' ] ).
  MESSAGE i019(em). "Es wurden keine Datensätze selektiert
  RETURN.
ENDIF

Coding NOT LINE EXISTS

  • Die Abfrage, ob es keine Zeile in einer Tabelle gibt mit einer bestimmten Bedingung, kann auch nützlich sein
  • Prüfe hier, ob mindestens 1 Zeile markiert ist zur Verteilung, wenn nein, dann Message und verlasse Verarbeitung
IF not line_exists( ct_itab[ selkz = abap_true ] ).
  MESSAGE i531(0u) WITH 'Es wurden keine Zeilen markiert zur Verteilung'.
  RETURN.
endif.

Prüfung Existenz eines Tabelleneintrages

Wenn man grundsätzlich prüfen will, ob in einer Tabelle ein Eintrag ist, reicht die Abfrage

IF gt_itab IS INITIAL.
  ...
ENDIF.

Bzw.

IF gt_itab IS NOT INITIAL.
  ...
ENDIF.

Web-Links

Literatur