Zugriff auf interne Tabelle ohne LOOP AT oder READ TABLE

  Entwicklung von und mit ABAP / ABAP Objects   Home  Profil  Links  Datenschutz  Impressum

Datensatz in interner Tabelle über INDEX lesen

mit READ TABLE ...
 
DATA:
  lt_sflight1 TYPE STANDARD TABLE OF sflight WITH EMPTY KEY,
  ls_sflight1 LIKE LINE OF lt_sflight1.
SELECT * FROM sflight INTO TABLE lt_sflight1.
IF sy-subrc EQ 0.
  READ TABLE lt_sflight INTO ls_sflight INDEX 1.
  IF sy-subrc EQ 0.
    "... Verarbeitung
  ENDIF.
ENDIF.
IF sy-subrc NE 0.
  "... Fehlerbehandlung
ENDIF.
ohne READ TABLE ...
 
SELECT * FROM sflight INTO TABLE @DATA(lt_sflight1).
IF sy-subrc EQ 0.
  TRY.
      DATA(ls_sflight1) = lt_sflight[ 1 ].
      "... Verarbeitung
    CATCH cx_sy_itab_line_not_found INTO DATA(lx_line_not_found).
      "... Fehlerbehandlung
  ENDTRY.
ELSE.
  "... Fehlerbehandlung
ENDIF.
 

Datensatz mit bestimmten Feldwert in interner Tabelle lesen

mit READ TABLE ...
 
DATA:
  lt_sflight1 TYPE STANDARD TABLE OF sflight WITH EMPTY KEY,
  ls_sflight1 LIKE LINE OF lt_sflight1.
SELECT * FROM sflight INTO TABLE lt_sflight1.
IF sy-subrc EQ 0.
  READ TABLE lt_sflight INTO ls_sflight WITH KEY carrid = 'LH'.
  IF sy-subrc EQ 0.
    "... Verarbeitung
  ENDIF.
ENDIF.
IF sy-subrc NE 0.
  "... Fehlerbehandlung
ENDIF.
ohne READ TABLE ...
 
SELECT * FROM sflight INTO TABLE @DATA(lt_sflight1).
IF sy-subrc EQ 0.
  TRY.
      DATA(ls_sflight1) = lt_sflight[ carrid = 'LH' ].
      "... Verarbeitung
    CATCH cx_sy_itab_line_not_found INTO DATA(lx_line_not_found).
      "... Fehlerbehandlung
  ENDTRY.
ELSE.
  "... Fehlerbehandlung
ENDIF.
 

Feldwert aus einem Datensatz in interner Tabelle lesen ohne READ TABLE ... BINARY SEARCH

mit READ TABLE ... BINARY SEARCH
 
DATA:
  lt_sflight2 TYPE STANDARD TABLE OF sflight WITH EMPTY KEY,
  ls_sflight2 LIKE LINE OF lt_sflight2.
SELECT * FROM sflight INTO TABLE lt_sflight1
  WHERE fldate GT @sy-datum
  ORDER BY carrid connid fldate.
IF sy-subrc EQ 0.
  READ TABLE lt_sflight INTO ls_sflight
    WITH KEY carrid = 'LH'
             connid = '0001'
    BINARY SEARCH.
  IF ls_sflight-seatsocc GT 0.
    "... Verarbeitung
  ELSE.
    "... Fehlerbehandlung
  ENDIF.
ENDIF.
IF sy-subrc NE 0.
  "... Fehlerbehandlung
ENDIF.
ohne READ TABLE ... BINARY SEARCH
 
DATA:
  lt_sflight2 TYPE SORTED TABLE OF sflight WITH UNIQUE KEY carrid connid fldate.
SELECT * FROM sflight INTO TABLE @lt_sflight2
  WHERE fldate GT @sy-datum
  ORDER BY carrid connid fldate.
IF sy-subrc EQ 0.
  TRY.
      IF lt_sflight2[ carrid = 'LH' connid = '0001' ]-seatsocc GT 0.
        "... Verarbeitung
      ELSE.
        "... Fehlerbehandlung
      ENDIF.
    CATCH cx_sy_itab_line_not_found INTO DATA(lx_line_not_found).
      "... Fehlerbehandlung
  ENDTRY.
ELSE.
  "... Fehlerbehandlung
ENDIF.