Select - Endselect
Aus SAP-Wiki
Zur Navigation springenZur Suche springen
Siehe Schlüsselbefehl Select.
Die Datenbankselektion über "SELECT - ENDSELECT" hat einen schlechten Ruf unter ABAP-Entwicklern.
Aber sie ist nicht so langsam wie viele SAP-Entwickler denken und es gibt durchaus Anwendungsfälle, wo ein "SELECT-ENDSELECT" Sinn machen kann.
SY-DBCNT
- Wenn eine Datenbanktabelle mit "SELECT - ENDSELECT" durchlaufen wird, kann man den Counter der Schleife über das Feld SY-DBCNT abgreifen.
Beispiel SELECT - ENDSELECT
- Hier wird nach einem BAPI-Aufruf mit "CALL FUNCTION 'BAPI_PO_CREATE1'" eine Z-Tabelle aktualisiert mit der erstellten Umlagerbestellung und den Positionen.
IF lv_po_number IS NOT INITIAL. SELECT * INTO @DATA(ls_umf_p) FROM zsd_umfuhren_p WHERE nummer = @mv_nummer order by nummer, posnr, etenr. "sortieren nach Key Tabelle
read table lt_poitem into data(ls_poitem2) index SY-DBCNT. "Zugriff auf die Positionstabelle mit
if sy-subrc = 0. ls_umf_p-ebeln = lv_po_number. ls_umf_p-ebelp = ls_poitem2-PO_ITEM. update zsd_umfuhren_p from ls_umf_p. endif.
endselect. ENDIF.