Tabelle TTDTG dynamisch auslesen

I_SPRAS    Importing    Type    NAST-SPRAS    'D'    Sprache der Nachricht
C_TTDTG    Changing    Type    ANY
method SET_TTDTG.

  DATA:  lt_ttdtg  TYPE TABLE OF ttdtg,
         lt_dd03l  TYPE TABLE OF dd03l,
         lwa_dd03l TYPE dd03l,
         lwa_ttdtg TYPE ttdtg,
         v_field(31) TYPE c,
         descr_ref TYPE ref to cl_abap_typedescr.

  FIELD-SYMBOLS:  TYPE any.

  CLEAR: v_field, descr_ref.

* Strukturname ermitteln
  descr_ref = cl_abap_typedescr=>describe_by_data( c_ttdtg ).
  v_field = descr_ref->get_relative_name( ).

* TTDTG einlesen
  SELECT * FROM ttdtg INTO TABLE lt_ttdtg
    where spras eq i_spras.

  SELECT * FROM dd03l INTO TABLE lt_dd03l
  WHERE tabname EQ v_field ORDER BY position.

if sy-subrc eq 0.
* Struktur füllen
  DO.
    ASSIGN COMPONENT sy-index OF
           STRUCTURE c_ttdtg TO .
    IF sy-subrc <> 0.
      EXIT.
    ENDIF.
    READ TABLE lt_dd03l INTO lwa_dd03l INDEX  sy-index.
    CLEAR lwa_ttdtg-varvalue.
    READ TABLE lt_ttdtg INTO lwa_ttdtg WITH KEY spras = i_spras
                                             varname  = lwa_dd03l-fieldname.
     = lwa_ttdtg-varvalue.
  ENDDO.
endif.

endmethod.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.