Line exists

Aus SAP Wiki ツ
Version vom 12. August 2021, 11:56 Uhr von M1ch3lde (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Ab ABAP 7.40 kann anstelle READ TABLE ... TRANSPORTING NO FIELDS der Schlüsselbegriff "line_exists" genommen werden.

Denn mit IF line_exists( itab [...] ) bekommt man ein true zurück, falls die Zeile in der internen Tabelle existiert bzw. im ELSE-Zweig ein false, falls die Zeile nicht existiert.

Beispiel

SELECT * FROM mara INTO TABLE @DATA(lt_mara) WHERE matnr = '000000000000000100' or matnr = '000000000000001000'.

Mit line_exists

 IF line_exists( lt_mara[ matnr = '000000000000000100' ] ).
  "ist true
 ELSE.
 ENDIF.
 IF line_exists( lt_mara[ matnr = '000000000000000500' ] ).
 ELSE.
  "ist false
 ENDIF.

Mit READ TABLE ... TRANSPORTING NO FIELDS

 READ TABLE lt_mara TRANSPORTING NO FIELDS WITH KEY matnr = '000000000000000100'.
 IF sy-subrc = 0.
  "ist true
 ELSE.
 ENDIF