Loop at itab assigning fieldsymbol

Aus SAP-Wiki
Zur Navigation springenZur Suche springen

Je länger die Feldleiste ist und umso mehr Datensätze die ITAB hat, umso überlegener ist der Befehl "Loop at itab assigning <fs>" gegenüber dem klassischen "Loop at itab into wa".

Bei den Field-Symbols findet kein Transport vom Tabellenrumpf zu einer Kopfzeile/Working Area statt, sondern es wandert lediglich ein Cursor durch die Tabelle. Das verringert massiv den Datentransport.

Field-Symbols sind 2 - 20 x schneller als Loop über Workarea.

Testprogramm Vergleich Loop Field-Symbols und Workarea

report zreb_field_symbols.

data : lv_dauer type i,
       lt_vbak type standard table of vbak,
       wa_vbak type vbak.

field -symbols: <fs_vbak> type  vbak.

parameters : r_fs radiobutton group radi,
             r_wa radiobutton group radi.

**********************
* start-of-selection *
**********************
start-of-selection.

  select *
    from vbak
    into table  lt_vbak.

  get run time field lv_dauer.           "Beginn Laufzeitmessung

  if r_wa = 'X' .
    loop at lt_vbak into wa_vbak.        "Loop in Workarea
       "wa_vbak-vbeln = ...
    endloop.
  endif.

 if r_fs = 'X' .
   loop at lt_vbak assigning <fs_vbak>.  "Loop mit Field-Symbol
      "<fs_vbak>-vbeln = ...
   endloop.
 endif.

 get run time field lv_dauer.            "Ende Laufzeitmessung

 write lv_dauer.