Beispielprogramm generische Programmierung

Aus SAP-Wiki
Zur Navigation springenZur Suche springen

Siehe Dynamische/Generische Programmierung.

Siehe Kategorie: Dynamische/Generische Programmierung.

Ein klassischer Anwendungsfall für generische Programmierung ist, wenn man zur Laufzeit erst weiß welchen Typ eine Tabelle hat und diese generische Tabelle während der Laufzeit gefüllt wird.

Es gibt ein sehr gutes kompaktes Beispiel aus dem Buch "ABAP Best Practices", von Sascha Krüger u. a., S. 105ff., welches einige wichtige Programierkonzepte aus der generischen Programmierung zeigt.

report testreport.

Data: oError type ref to cx_root,
      txtError type string,
      trInternalTable type ref to data.

Field-Symbols: <fsTable> type any table,
                         <fsWa>    type data,
                         <fsField> type data.
 
Parameters: pa_Struc type c length 30.

try.
   create data ptrInternalTable type table of (pa_Struc).
   assign ptrInternalTable->* to <fsTable>.

 select *
   from (pa_Struc)
   into table <fsTable>.

 loop at <fsTable> assigning <fsWa>.
   do.
      assign component sy-index of structure <fsWa> to <fsField>.
      if sy-subrc <> 0.
         exit.
      endif.
      write: <fsField>.
  enddo.
endloop.

catch cx_sy_create_data_error into oError.
  txtError = oError->get_text( ).
  write: / 'Ausnahme: ', txtError.

catch cx_sy_create_data_symantics into oError.
  txtError = oError->get_text( ).
  write: / 'Ausnahme: ', txtError.
 
endtry.


Literatur