Hier ein Beispiel Programm, dass zeigt wie man Strukturen oder Tabellen dynamisch verarbeiten kann. Hierzu wird zunächst die DDIC Struktur gelesen, die dann im Anschluss per Field-Symbol zum generischen Auslesen der Felder genutzt wird.
DATA: lt_dbFields TYPE STANDARD TABLE OF dbfield,
lw_pa0001 TYPE pa0001,
lw_dbFields LIKE LINE OF lt_dbFields,
l_targetField TYPE string,
l_retCode LIKE sy-subrc.
CONSTANTS lc_structureName TYPE string VALUE 'lw_pa0001'.
FIELD-SYMBOLS:
* Get some dummy data
SELECT SINGLE * FROM pa0001 INTO lw_pa0001.
CLEAR: l_retCode.
* Fetch DDIC information for the desired table
CALL FUNCTION 'DB_GET_TABLE_FIELDS'
EXPORTING
tabName = 'PA0001' " Care for capitals
IMPORTING
subRC = l_retCode
TABLES
dbFields = lt_dbFields
.
IF l_retCode NE 0.
MESSAGE 'Table not existing.' TYPE 'E'.
ENDIF.
* No parse the structure information
LOOP AT lt_dbfields INTO lw_dbfields.
CLEAR: l_targetField. UNASSIGN:
CONCATENATE lc_structureName '-' lw_dbFields-name INTO l_targetField. " Build up field name
ASSIGN (l_targetField) TO
IF
WRITE: /, l_targetField, ':',
ELSE.
MESSAGE 'Field not existing.' TYPE 'E'.
ENDIF.
ENDLOOP.
0 Kommentare:
Kommentar veröffentlichen