READ TABLE … INDEX
alte Schreibweise
1 2 |
READ TABLE itab INDEX idx INTO wa. |
neue Schreibweise
1 |
wa = itab[ idx ]. |
READ TABLE … USING KEY
alte Schreibweise
1 2 3 |
READ TABLE itab INDEX idx USING KEY key INTO wa. |
neue Schreibweise
1 |
wa = itab[ KEY key INDEX idx ]. |
READ TABLE … WITH KEY
alte Schreibweise
1 2 3 4 |
READ TABLE itab WITH KEY col1 = … col2 = … INTO wa. |
neue Schreibweise
1 |
wa = itab[ col1 = … col2 = … ]. |
READ TABLE … WITH KEY COMPONENTS
alte Schreibweise
1 2 3 4 5 |
READ TABLE itab WITH TABLE KEY key COMPONENTS col1 = … col2 = … INTO wa. |
neue Schreibweise
1 2 |
wa = itab[ KEY key col1 = … col2 = … ]. |
Existiert der Datensatz?
alte Schreibweise
1 2 3 4 5 |
READ TABLE itab … TRANSPORTING NO FIELDS. IF sy-subrc = 0. … ENDIF. |
neue Schreibweise
1 2 3 |
IF line_exists( itab[ … ] ). … ENDIF. |
Index ermitteln
alte Schreibweise
1 2 3 4 |
DATA idx type sy-tabix. READ TABLE … TRANSPORTING NO FIELDS. idx = sy-tabix. |
neue Schreibweise
1 2 |
DATA(idx) = line_index( itab[ … ] ). |
Hinweis
Bei der Verwendung von Table Expressions gilt es zu beachten:
- Die Tabelle kann aus tiefen Strukturen und Untertabellen bestehen.
- Der Wertvergleich ist case sensitive, lt_data[ name = ‚NAME_2‘ ] ist anders als lt_data[ name = ‚Name_2‘ ]
- Wird die Zeile nicht gefunden, wird die Exception CX_SY_ITAB_LINE_NOT_FOUND ausgelöst
- SY-SUBRC bleibt unverändert, egal ob die Zeile gefunden wurde oder nicht.
- Werden mehrere Komponenten einer Zeile benötigt, so sollte die ganze Zeile in eine lokale Workarea übertragen werden. Andernfalls erfolgt der Datenzugriff für jede Komponente einzeln. Dies wirkt sich negativ auf die Laufzeit aus.
- Entsprechen mehrere Zeilen der Expression, so wird immer nur auf die erste zugegriffen.
- Wird das Ergebnis einer Table Expression einem Feldsymbol zugewiesen (ASSIGN itab[ feld = ‚1‘] to <fs> ), kann die Prüfung auf erfolgreiche Zuweisung entfallen, da eine Exception ausgelöst wird, falls die Zeile nicht existiert.
Links:
https://weberpatrick.de/abap-740-table-expressions/
https://blogs.sap.com/2015/10/25/abap-740-quick-reference/
1 |
lv_char = |Das ist eine Zeichenkette|. |