Replace sotr_head* update with API (#7165)
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

Co-authored-by: Lars Hvam <larshp@hotmail.com>
This commit is contained in:
Marc Bernard 2025-03-25 15:24:17 +01:00 committed by GitHub
parent 1557d8c295
commit aa6e97ac99
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 80 additions and 12 deletions

View File

@ -1,7 +1,7 @@
CLASS zcl_abapgit_sotr_handler DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
CREATE PUBLIC.
PUBLIC SECTION.
@ -9,11 +9,11 @@ CLASS zcl_abapgit_sotr_handler DEFINITION
BEGIN OF ty_sotr,
header TYPE sotr_head,
entries TYPE sotr_text_tt,
END OF ty_sotr .
END OF ty_sotr.
TYPES:
ty_sotr_tt TYPE STANDARD TABLE OF ty_sotr WITH DEFAULT KEY .
ty_sotr_tt TYPE STANDARD TABLE OF ty_sotr WITH DEFAULT KEY.
TYPES:
ty_sotr_use_tt TYPE STANDARD TABLE OF sotr_use WITH DEFAULT KEY .
ty_sotr_use_tt TYPE STANDARD TABLE OF sotr_use WITH DEFAULT KEY.
CLASS-METHODS read_sotr
IMPORTING
@ -26,33 +26,46 @@ CLASS zcl_abapgit_sotr_handler DEFINITION
!et_sotr TYPE ty_sotr_tt
!et_sotr_use TYPE ty_sotr_use_tt
RAISING
zcx_abapgit_exception .
zcx_abapgit_exception.
CLASS-METHODS create_sotr
IMPORTING
!iv_package TYPE devclass
!io_xml TYPE REF TO zif_abapgit_xml_input
RAISING
zcx_abapgit_exception .
zcx_abapgit_exception.
CLASS-METHODS create_sotr_from_data
IMPORTING
!iv_package TYPE devclass
!it_sotr TYPE ty_sotr_tt
!it_sotr_use TYPE ty_sotr_use_tt
RAISING
zcx_abapgit_exception .
zcx_abapgit_exception.
CLASS-METHODS delete_sotr
IMPORTING
!iv_pgmid TYPE pgmid DEFAULT 'R3TR'
!iv_object TYPE trobjtype
!iv_obj_name TYPE csequence
RAISING
zcx_abapgit_exception .
zcx_abapgit_exception.
CLASS-METHODS delete_sotr_package
IMPORTING
!iv_package TYPE devclass
RAISING
zcx_abapgit_exception .
zcx_abapgit_exception.
CLASS-METHODS change_sotr_package
IMPORTING
!iv_old_package TYPE devclass
!iv_new_package TYPE devclass
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
CLASS-METHODS get_sotr_usage
IMPORTING
!iv_pgmid TYPE pgmid
@ -65,7 +78,8 @@ CLASS zcl_abapgit_sotr_handler DEFINITION
IMPORTING
!iv_concept TYPE sotr_conc
RETURNING
VALUE(rs_sotr) TYPE ty_sotr .
VALUE(rs_sotr) TYPE ty_sotr.
PRIVATE SECTION.
ENDCLASS.
@ -74,6 +88,59 @@ ENDCLASS.
CLASS zcl_abapgit_sotr_handler IMPLEMENTATION.
METHOD change_sotr_package.
DATA lt_concepts TYPE btfr_conc_tt.
" Short texts
SELECT concept FROM sotr_head INTO TABLE lt_concepts
WHERE paket = iv_old_package
ORDER BY PRIMARY KEY.
IF lt_concepts IS NOT INITIAL.
CALL FUNCTION 'BTFR_CHANGE_PACKAGE'
EXPORTING
concept_tab = lt_concepts
new_package = iv_new_package
flag_string = abap_false
flag_ignore_system = abap_true
EXCEPTIONS
invalid_package = 1
invalid_tadir_entry = 2
update_error = 3
OTHERS = 4.
IF sy-subrc <> 0.
zcx_abapgit_exception=>raise_t100( ).
ENDIF.
ENDIF.
CLEAR lt_concepts.
" Long texts
SELECT concept FROM sotr_headu INTO TABLE lt_concepts
WHERE paket = iv_old_package
ORDER BY PRIMARY KEY.
IF lt_concepts IS NOT INITIAL.
CALL FUNCTION 'BTFR_CHANGE_PACKAGE'
EXPORTING
concept_tab = lt_concepts
new_package = iv_new_package
flag_string = abap_true
flag_ignore_system = abap_true
EXCEPTIONS
invalid_package = 1
invalid_tadir_entry = 2
update_error = 3
OTHERS = 4.
IF sy-subrc <> 0.
zcx_abapgit_exception=>raise_t100( ).
ENDIF.
ENDIF.
ENDMETHOD.
METHOD create_sotr.
DATA:

View File

@ -421,8 +421,9 @@ CLASS zcl_abapgit_gui_page_chg_pckg IMPLEMENTATION.
FIELD-SYMBOLS <ls_map> LIKE LINE OF it_mapping.
LOOP AT it_mapping ASSIGNING <ls_map>.
UPDATE sotr_head SET paket = <ls_map>-new_package WHERE paket = <ls_map>-old_package ##SUBRC_OK.
UPDATE sotr_headu SET paket = <ls_map>-new_package WHERE paket = <ls_map>-old_package ##SUBRC_OK.
zcl_abapgit_sotr_handler=>change_sotr_package(
iv_old_package = <ls_map>-old_package
iv_new_package = <ls_map>-new_package ).
ENDLOOP.
ENDMETHOD.