mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 12:20:51 +08:00
TABL: Fix deserialize if foreign key exists (#5773)
This commit is contained in:
parent
61acfa5c45
commit
fcdb07a7a6
|
@ -58,6 +58,8 @@ CLASS zcl_abapgit_object_tabl DEFINITION
|
|||
|
||||
TYPES:
|
||||
ty_dd03p_tt TYPE STANDARD TABLE OF dd03p .
|
||||
TYPES:
|
||||
ty_dd08v_tt TYPE STANDARD TABLE OF dd08v.
|
||||
TYPES:
|
||||
BEGIN OF ty_dd02_text,
|
||||
ddlanguage TYPE dd02t-ddlanguage,
|
||||
|
@ -108,6 +110,9 @@ CLASS zcl_abapgit_object_tabl DEFINITION
|
|||
!iv_tabclass TYPE dd02l-tabclass
|
||||
RETURNING
|
||||
VALUE(rv_is_db_table_type) TYPE dd02l-tabclass .
|
||||
METHODS clear_foreign_keys
|
||||
CHANGING
|
||||
!ct_dd08v TYPE ty_dd08v_tt.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
@ -205,6 +210,30 @@ CLASS zcl_abapgit_object_tabl IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD clear_foreign_keys.
|
||||
|
||||
DATA:
|
||||
ls_item TYPE zif_abapgit_definitions=>ty_item,
|
||||
lv_index TYPE sy-tabix.
|
||||
|
||||
FIELD-SYMBOLS <ls_dd08v> TYPE dd08v.
|
||||
|
||||
" Remove foreign key definitions where the check table/view does not exist (yet)
|
||||
LOOP AT ct_dd08v ASSIGNING <ls_dd08v>.
|
||||
lv_index = sy-tabix.
|
||||
ls_item-obj_name = <ls_dd08v>-checktable.
|
||||
ls_item-obj_type = 'TABL'.
|
||||
IF zcl_abapgit_objects=>exists( ls_item ) = abap_false.
|
||||
ls_item-obj_type = 'VIEW'.
|
||||
IF zcl_abapgit_objects=>exists( ls_item ) = abap_false.
|
||||
DELETE ct_dd08v INDEX lv_index.
|
||||
ENDIF.
|
||||
ENDIF.
|
||||
ENDLOOP.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD delete_extras.
|
||||
|
||||
DELETE FROM tddat WHERE tabname = iv_tabname.
|
||||
|
@ -780,7 +809,8 @@ CLASS zcl_abapgit_object_tabl IMPLEMENTATION.
|
|||
|
||||
" DDIC Step: Remove references to search helps and foreign keys
|
||||
IF iv_step = zif_abapgit_object=>gc_step_id-ddic.
|
||||
CLEAR: lt_dd08v, lt_dd35v, lt_dd36m.
|
||||
CLEAR: lt_dd35v, lt_dd36m.
|
||||
clear_foreign_keys( CHANGING ct_dd08v = lt_dd08v ).
|
||||
ENDIF.
|
||||
|
||||
IF iv_step = zif_abapgit_object=>gc_step_id-late
|
||||
|
|
Loading…
Reference in New Issue
Block a user