TYPE-POOLS:ABAP. PARAMETERS P_NAME TYPE OBJNAME. DATA LT_TABLE TYPE TABLE OF DFIES. DATA LS_TABLE TYPE DFIES.
CALL FUNCTION 'DDIF_NAMETAB_GET' EXPORTING TABNAME = P_NAME TABLES * X031L_TAB = DFIES_TAB = LT_TABLE EXCEPTIONS NOT_FOUND = 1 OTHERS = 2 . IF SY-SUBRC <> 0. MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF.
DATA LR_STRUC TYPE REF TO CL_ABAP_STRUCTDESCR. DATA LR_TABLE TYPE REF TO CL_ABAP_TABLEDESCR. DATA LR_TYPE TYPE REF TO CL_ABAP_TYPEDESCR. DATA LR_DATA TYPE REF TO CL_ABAP_DATADESCR. DATA L_STRING TYPE STRING. DATA LT_COMP TYPE ABAP_COMPONENT_TAB. DATA LS_COMP LIKE LINE OF LT_COMP. DATA E_WA TYPE REF TO DATA. DATA E_TABLE TYPE REF TO DATA.
FIELD-SYMBOLS <FS_TABLE> TYPE STANDARD TABLE. FIELD-SYMBOLS <FS_STRUC> TYPE ANY.
LOOP AT LT_TABLE INTO LS_TABLE. CONCATENATE LS_TABLE-TABNAME '-' LS_TABLE-FIELDNAME INTO L_STRING. * L_STRING = LS_COMP-NAME. LS_COMP-NAME = LS_TABLE-FIELDNAME. CALL METHOD CL_ABAP_DATADESCR=>DESCRIBE_BY_NAME EXPORTING P_NAME = L_STRING RECEIVING P_DESCR_REF = LR_TYPE EXCEPTIONS TYPE_NOT_FOUND = 1 OTHERS = 2. IF SY-SUBRC <> 0. MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF.
LS_COMP-TYPE ?= LR_TYPE. APPEND LS_COMP TO LT_COMP. CLEAR LS_COMP. ENDLOOP.