diff --git a/src/zabapgit_object_tabl.prog.abap b/src/zabapgit_object_tabl.prog.abap index 58481fb61..8e0e842a7 100644 --- a/src/zabapgit_object_tabl.prog.abap +++ b/src/zabapgit_object_tabl.prog.abap @@ -129,9 +129,11 @@ CLASS lcl_object_tabl IMPLEMENTATION. lt_dd12v TYPE dd12vtab, lt_dd17v TYPE dd17vtab, lt_dd35v TYPE TABLE OF dd35v, + lv_index LIKE sy-index, lt_dd36m TYPE dd36mttyp. FIELD-SYMBOLS: LIKE LINE OF lt_dd12v, + LIKE LINE OF lt_dd05m, LIKE LINE OF lt_dd03p. @@ -176,7 +178,10 @@ CLASS lcl_object_tabl IMPLEMENTATION. -as4time. ENDLOOP. +* remove nested structures DELETE lt_dd03p WHERE depth <> '00'. +* remove fields from .INCLUDEs + DELETE lt_dd03p WHERE adminfield <> '0'. LOOP AT lt_dd03p ASSIGNING WHERE NOT rollname IS INITIAL. CLEAR: -ddlanguage, @@ -221,6 +226,16 @@ CLASS lcl_object_tabl IMPLEMENTATION. ENDIF. ENDLOOP. +* remove foreign keys inherited from .INCLUDEs + DELETE lt_dd08v WHERE noinherit = 'N'. + LOOP AT lt_dd05m ASSIGNING . + lv_index = sy-tabix. + READ TABLE lt_dd08v WITH KEY fieldname = -fieldname TRANSPORTING NO FIELDS. + IF sy-subrc <> 0. + DELETE lt_dd05m INDEX lv_index. + ENDIF. + ENDLOOP. + io_xml->add( iv_name = 'DD02V' ig_data = ls_dd02v ). io_xml->add( iv_name = 'DD09L'