Generische Select Feldlisten

Aus SAP-Wiki
Wechseln zu: Navigation, Suche

Hier sind die Feldlisten einer Tabelle erst zur Laufzeit bekannt. Die Felder werden mit einem Parameter P_FELDER im Selektionsbildschirm abgefragt, in eine Tabelle GT_FELDER gefüllt und mit (gt_felder) dem Select-Statement übergeben. Die Feldlistentabelle GT_FELDER wird mit dem Befehl "GT_FELDER TYPE TABLE OF STRING" angelegt, um Feldnamen beliebiger Länge aufnehmen zu können.

Um einen Laufzeitfehler zu vermeiden, wenn in der Tabelle SFLIGHT ein oder mehrere dynamische Select-Felder nicht existieren, wird mit einem Try-Endtry-Befehl und der Klasse CX_SY_DYNAMIC_OSQL_SEMANTICS eine Fehlerbehandlung durchgeführt.

PARAMETERS: p_felder(70) type c.

DATA: oerror     TYPE REF TO cx_root,
      txterror   TYPE string,
      gt_felder  type table of string,
      gt_sflight type table of sflight.
 
append p_felder to gt_felder.

TRY.
    SELECT (gt_felder)
      INTO CORRESPONDING FIELDS OF TABLE gt_sflight
      from sflight.

  CATCH cx_sy_dynamic_osql_semantics INTO oerror.
    txterror = oerror->get_text( ).
    MESSAGE i531(0u) WITH txterror.
ENDTRY.

Literatur