VIEW: save tddat entries to transport (#7042)
Some checks failed
main-build / build-merged (push) Has been cancelled
main-build / auto-tag (push) Has been cancelled
main-build / coverage (push) Has been cancelled
main-build / auto-tag-artifact (push) Has been cancelled
ajson mirror / pr_ajson_changes (push) Has been cancelled

Co-authored-by: Lars Hvam <larshp@hotmail.com>
This commit is contained in:
Marc Bernard 2024-11-21 08:42:16 -05:00 committed by GitHub
parent aa2e082dcb
commit 93935b3dfb
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 89 additions and 18 deletions

View File

@ -345,6 +345,9 @@ CLASS zcl_abapgit_cts_api IMPLEMENTATION.
DATA lt_table_keys TYPE STANDARD TABLE OF e071k.
DATA lv_with_dialog TYPE abap_bool.
FIELD-SYMBOLS <ls_table> LIKE LINE OF lt_tables.
FIELD-SYMBOLS <ls_table_key> LIKE LINE OF lt_table_keys.
cl_table_utilities_brf=>create_transport_entries(
EXPORTING
it_table_ins = it_table_ins
@ -360,6 +363,7 @@ CLASS zcl_abapgit_cts_api IMPLEMENTATION.
CALL FUNCTION 'TR_OBJECTS_CHECK'
TABLES
wt_ko200 = lt_tables
wt_e071k = lt_table_keys
EXCEPTIONS
cancel_edit_other_error = 1
show_only_other_error = 2
@ -372,15 +376,24 @@ CLASS zcl_abapgit_cts_api IMPLEMENTATION.
lv_with_dialog = abap_true.
ENDIF.
CALL FUNCTION 'TRINT_OBJECTS_CHECK_AND_INSERT'
READ TABLE lt_tables ASSIGNING <ls_table> INDEX 1.
ASSERT sy-subrc = 0.
LOOP AT lt_table_keys ASSIGNING <ls_table_key>.
<ls_table_key>-objfunc = <ls_table>-objfunc.
ENDLOOP.
CALL FUNCTION 'TR_OBJECT_INSERT'
EXPORTING
iv_order = iv_transport
iv_with_dialog = lv_with_dialog
CHANGING
ct_ko200 = lt_tables
ct_e071k = lt_table_keys
wi_order = iv_transport
wi_ko200 = <ls_table>
iv_no_show_option = abap_true
TABLES
wt_e071k = lt_table_keys
EXCEPTIONS
OTHERS = 1.
cancel_edit_other_error = 1
show_only_other_error = 2
OTHERS = 3.
IF sy-subrc <> 0.
zcx_abapgit_exception=>raise_t100( ).
ENDIF.

View File

@ -60,9 +60,9 @@ INTERFACE zif_abapgit_cts_api
METHODS create_transport_entries
IMPORTING
!iv_transport TYPE trkorr
!it_table_ins TYPE ANY TABLE
!it_table_upd TYPE ANY TABLE
!it_table_del TYPE ANY TABLE
!it_table_ins TYPE ANY TABLE OPTIONAL
!it_table_upd TYPE ANY TABLE OPTIONAL
!it_table_del TYPE ANY TABLE OPTIONAL
!iv_tabname TYPE tabname
RAISING
zcx_abapgit_exception .

View File

@ -5,18 +5,41 @@ CLASS zcl_abapgit_object_view DEFINITION PUBLIC INHERITING FROM zcl_abapgit_obje
PROTECTED SECTION.
"! get additional data like table authorization group
"! @parameter iv_name | name of the view
METHODS read_extras IMPORTING iv_name TYPE ddobjname
RETURNING VALUE(rs_tabl_extras) TYPE zif_abapgit_object_tabl=>ty_tabl_extras.
METHODS read_extras
IMPORTING
iv_name TYPE ddobjname
RETURNING
VALUE(rs_tabl_extras) TYPE zif_abapgit_object_tabl=>ty_tabl_extras.
"! Update additional data
"! @parameter iv_name | name of the table
"! @parameter iv_transport | transport request
"! @parameter is_tabl_extras | additional view data
METHODS update_extras IMPORTING iv_name TYPE ddobjname
is_tabl_extras TYPE zif_abapgit_object_tabl=>ty_tabl_extras.
METHODS update_extras
IMPORTING
iv_name TYPE ddobjname
iv_transport TYPE trkorr
is_tabl_extras TYPE zif_abapgit_object_tabl=>ty_tabl_extras
RAISING
zcx_abapgit_exception.
"! Delete additional data
"! @parameter iv_name | name of the view
METHODS delete_extras IMPORTING iv_name TYPE ddobjname.
"! @parameter iv_transport | transport request
METHODS delete_extras
IMPORTING
iv_name TYPE ddobjname
iv_transport TYPE trkorr
RAISING
zcx_abapgit_exception.
METHODS insert_transport
IMPORTING
iv_name TYPE ddobjname
iv_transport TYPE trkorr
RAISING
zcx_abapgit_exception.
PRIVATE SECTION.
TYPES: ty_dd26v TYPE STANDARD TABLE OF dd26v
WITH NON-UNIQUE DEFAULT KEY,
@ -66,13 +89,17 @@ ENDCLASS.
CLASS ZCL_ABAPGIT_OBJECT_VIEW IMPLEMENTATION.
CLASS zcl_abapgit_object_view IMPLEMENTATION.
METHOD delete_extras.
DELETE FROM tddat WHERE tabname = iv_name.
insert_transport(
iv_name = iv_name
iv_transport = iv_transport ).
ENDMETHOD.
@ -130,6 +157,27 @@ CLASS ZCL_ABAPGIT_OBJECT_VIEW IMPLEMENTATION.
ENDMETHOD.
METHOD insert_transport.
DATA:
ls_key TYPE tddat,
lt_keys TYPE TABLE OF tddat.
IF iv_transport IS INITIAL.
RETURN.
ENDIF.
ls_key-tabname = iv_name.
INSERT ls_key INTO TABLE lt_keys.
zcl_abapgit_factory=>get_cts_api( )->create_transport_entries(
iv_transport = iv_transport
it_table_ins = lt_keys
iv_tabname = 'TDDAT' ).
ENDMETHOD.
METHOD read_extras.
SELECT SINGLE * FROM tddat INTO rs_tabl_extras-tddat WHERE tabname = iv_name.
@ -238,9 +286,15 @@ CLASS ZCL_ABAPGIT_OBJECT_VIEW IMPLEMENTATION.
METHOD update_extras.
IF is_tabl_extras-tddat IS INITIAL.
delete_extras( iv_name ).
delete_extras(
iv_name = iv_name
iv_transport = iv_transport ).
ELSE.
MODIFY tddat FROM is_tabl_extras-tddat.
insert_transport(
iv_name = iv_name
iv_transport = iv_transport ).
ENDIF.
ENDMETHOD.
@ -269,7 +323,10 @@ CLASS ZCL_ABAPGIT_OBJECT_VIEW IMPLEMENTATION.
lv_objname = ms_item-obj_name.
delete_ddic( 'V' ).
delete_extras( lv_objname ).
delete_extras(
iv_name = lv_objname
iv_transport = iv_transport ).
ENDMETHOD.
@ -350,6 +407,7 @@ CLASS ZCL_ABAPGIT_OBJECT_VIEW IMPLEMENTATION.
iv_longtext_id = c_longtext_id_view ).
update_extras( iv_name = lv_name
iv_transport = iv_transport
is_tabl_extras = ls_extras ).
zcl_abapgit_objects_activation=>add_item( ms_item ).