Generische Select Order-By-Klausel
Aus SAP-Wiki
Zur Navigation springenZur Suche springen
Siehe Schlüsselbefehl Select.
Siehe Kategorie: Select.
Siehe Dynamische/Generische Programmierung.
Siehe Kategorie: Dynamische/Generische Programmierung.
Hier ist die Order-By-Sortierung einer Tabelle erst zur Laufzeit bekannt. Die Felder werden mit einem Parameter P_ORDER im Selektionsbildschirm abgefragt und mit "(gt_order)" dem Select-Statement übergeben.
Um einen Laufzeitfehler zu vermeiden, wenn es in der Tabelle die Felder nicht gibt, wird mit einem Try-Endtry-Befehl eine Fehlerbehandlung durchgeführt.
PARAMETERS: p_order(70) type c.
DATA: oerror TYPE REF TO cx_root,
txterror TYPE string,
gt_order type table of string,
gt_sflight type table of sflight.
append p_order to gt_order.
TRY.
SELECT carrid
INTO CORRESPONDING FIELDS OF TABLE gt_sflight
from sflight
order by (gt_order).
CATCH cx_sy_dynamic_osql_semantics INTO oerror.
txterror = oerror->get_text( ).
MESSAGE i531(0u) WITH txterror.
ENDTRY.
Literatur
- ABAP Best Practices, S. 101-105