extract transport_entries() to CTS class (#6187)

This commit is contained in:
Lars Hvam 2023-04-03 20:40:59 +02:00 committed by GitHub
parent 9ea41d1cac
commit c5ed76c73a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 41 additions and 22 deletions

View File

@ -343,4 +343,29 @@ CLASS ZCL_ABAPGIT_CTS_API IMPLEMENTATION.
WHERE trkorr = iv_trkorr ##SUBRC_OK.
ENDMETHOD.
METHOD zif_abapgit_cts_api~create_transport_entries.
DATA lt_tables TYPE tredt_objects.
DATA lt_table_keys TYPE STANDARD TABLE OF e071k.
DATA lt_tadir_entries TYPE scts_tadir.
cl_table_utilities_brf=>create_transport_entries(
EXPORTING
it_table_ins = it_table_ins
it_table_upd = it_table_upd
it_table_del = it_table_del
iv_tabname = iv_tabname
CHANGING
ct_e071 = lt_tables
ct_e071k = lt_table_keys ).
cl_table_utilities_brf=>write_transport_entries(
CHANGING
ct_e071 = lt_tables
ct_e071k = lt_table_keys
ct_tadir = lt_tadir_entries ).
ENDMETHOD.
ENDCLASS.

View File

@ -60,4 +60,11 @@ INTERFACE zif_abapgit_cts_api
RETURNING
VALUE(rv_uname) TYPE uname.
METHODS create_transport_entries
IMPORTING
it_table_ins TYPE ANY TABLE
it_table_upd TYPE ANY TABLE
it_table_del TYPE ANY TABLE
iv_tabname TYPE tabname.
ENDINTERFACE.

View File

@ -217,16 +217,15 @@ CLASS zcl_abapgit_data_deserializer IMPLEMENTATION.
* this method updates the database
DATA ls_result LIKE LINE OF it_result.
DATA lt_tables TYPE tredt_objects.
DATA lt_table_keys TYPE STANDARD TABLE OF e071k.
DATA lv_table_name TYPE tabname.
DATA lt_tadir_entries TYPE scts_tadir.
DATA li_cts_api TYPE REF TO zif_abapgit_cts_api.
FIELD-SYMBOLS:
<lt_ins> TYPE ANY TABLE,
<lt_del> TYPE ANY TABLE,
<lt_upd> TYPE ANY TABLE.
li_cts_api = zcl_abapgit_factory=>get_cts_api( ).
LOOP AT it_result INTO ls_result.
ASSERT ls_result-type = zif_abapgit_data_config=>c_data_type-tabu. " todo
ASSERT ls_result-name IS NOT INITIAL.
@ -256,27 +255,15 @@ CLASS zcl_abapgit_data_deserializer IMPLEMENTATION.
ASSIGN ls_result-updates->* TO <lt_upd>.
IF is_customizing_table( ls_result-name ) = abap_true.
cl_table_utilities_brf=>create_transport_entries(
EXPORTING
li_cts_api->create_transport_entries(
it_table_ins = <lt_ins>
it_table_upd = <lt_upd>
it_table_del = <lt_del>
iv_tabname = |{ ls_result-name }|
CHANGING
ct_e071 = lt_tables
ct_e071k = lt_table_keys ).
iv_tabname = |{ ls_result-name }| ).
ENDIF.
ENDLOOP.
IF lt_tables IS NOT INITIAL AND lt_table_keys IS NOT INITIAL.
cl_table_utilities_brf=>write_transport_entries(
CHANGING
ct_e071 = lt_tables
ct_e071k = lt_table_keys
ct_tadir = lt_tadir_entries ).
ENDIF.
ENDMETHOD.