adesso orange🍊Stellenangebote:
Software Engineer Trainee · Senior
| (Senior) Cloud Software Engineer BTP
(Senior) Consultant Technologie · Consultant ABAP
Werkstudent Softwareentwicklung · Fiori / UI5 · Consulting · Application Management
Line exists: Unterschied zwischen den Versionen
Aus SAP Wiki ツ
(Die Seite wurde neu angelegt: „Kategorie:Schlüsselbegriffe Ab ABAP 7.40 kann anstelle READ TABLE ... TRANSPORTING NO FIELDS der Schlüsselbegriff "line_exists" genommen werden. Denn mi…“) |
|||
Zeile 10: | Zeile 10: | ||
=== Mit line_exists === | === Mit line_exists === | ||
<syntaxhighlight lang="abap" line start="1"> | |||
IF line_exists( lt_mara[ matnr = '000000000000000100' ] ). | IF line_exists( lt_mara[ matnr = '000000000000000100' ] ). | ||
"ist true | "ist true | ||
ELSE. | ELSE. | ||
ENDIF. | ENDIF. | ||
</syntaxhighlight> | |||
<syntaxhighlight lang="abap" line start="1"> | |||
IF line_exists( lt_mara[ matnr = '000000000000000500' ] ). | IF line_exists( lt_mara[ matnr = '000000000000000500' ] ). | ||
ELSE. | ELSE. | ||
"ist false | "ist false | ||
ENDIF. | ENDIF. | ||
</syntaxhighlight> | |||
=== Mit READ TABLE ... TRANSPORTING NO FIELDS === | === Mit READ TABLE ... TRANSPORTING NO FIELDS === | ||
<syntaxhighlight lang="abap" line start="1"> | |||
READ TABLE lt_mara TRANSPORTING NO FIELDS WITH KEY matnr = '000000000000000100'. | READ TABLE lt_mara TRANSPORTING NO FIELDS WITH KEY matnr = '000000000000000100'. | ||
IF sy-subrc = 0. | IF sy-subrc = 0. | ||
Zeile 27: | Zeile 32: | ||
ELSE. | ELSE. | ||
ENDIF | ENDIF | ||
</syntaxhighlight> |
Aktuelle Version vom 12. August 2021, 11:56 Uhr
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