Merge branch 'main' into mbtools/exit_toolbars

This commit is contained in:
Marc Bernard 2025-02-12 20:21:51 +01:00 committed by GitHub
commit f1695246c4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
9 changed files with 181 additions and 45 deletions

View File

@ -52,6 +52,7 @@ CLASS ZCL_ABAPGIT_AFF_REGISTRY IMPLEMENTATION.
register( 'CHKC' ).
register( 'CHKO' ).
register( 'CHKV' ).
register( 'COTA' ).
register( 'DRTY' ).
register( 'DTEB' ).
register( 'DSFI' ).

View File

@ -0,0 +1,46 @@
CLASS zcl_abapgit_object_cota DEFINITION
PUBLIC
INHERITING FROM zcl_abapgit_object_common_aff
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
METHODS zif_abapgit_object~changed_by REDEFINITION.
METHODS zif_abapgit_object~delete REDEFINITION.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_object_cota IMPLEMENTATION.
METHOD zif_abapgit_object~changed_by.
DATA lx_error TYPE REF TO cx_root.
TRY.
SELECT SINGLE changedby FROM ('sapcontargethead') INTO rv_user
WHERE id = ms_item-obj_name AND version = 'I'.
IF rv_user IS INITIAL.
SELECT SINGLE changedby FROM ('sapcontargethead') INTO rv_user
WHERE id = ms_item-obj_name AND version = 'A'.
ENDIF.
CATCH cx_root INTO lx_error.
zcx_abapgit_exception=>raise_with_text( lx_error ).
ENDTRY.
ENDMETHOD.
METHOD zif_abapgit_object~delete.
DATA lx_error TYPE REF TO cx_root.
DATA lv_cota_name TYPE c LENGTH 30.
TRY.
lv_cota_name = ms_item-obj_name.
CALL METHOD ('CL_COTA_FACTORY')=>('DELETE_COTA')
EXPORTING
cota_name = lv_cota_name
korrnum = iv_transport.
CATCH cx_root INTO lx_error.
zcx_abapgit_exception=>raise_with_text( lx_error ).
ENDTRY.
ENDMETHOD.
ENDCLASS.

View File

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_ABAPGIT_OBJECT_COTA</CLSNAME>
<LANGU>E</LANGU>
<DESCRIPT>abapGit - COTA - Communication Target</DESCRIPT>
<STATE>1</STATE>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -41,14 +41,10 @@ INTERFACE zif_abapgit_sap_package
zcx_abapgit_exception .
METHODS read_description
RETURNING
VALUE(rv_description) TYPE string
RAISING
zcx_abapgit_exception .
VALUE(rv_description) TYPE string.
METHODS read_responsible
RETURNING
VALUE(rv_responsible) TYPE usnam
RAISING
zcx_abapgit_exception .
VALUE(rv_responsible) TYPE usnam.
METHODS create_child
IMPORTING
!iv_child TYPE devclass

View File

@ -72,7 +72,8 @@ CLASS zcl_abapgit_object_dcls IMPLEMENTATION.
DATA: lr_data TYPE REF TO data,
lo_dcl TYPE REF TO object,
lx_error TYPE REF TO cx_root.
lx_error TYPE REF TO cx_root,
lv_abap_language_version TYPE uccheck.
FIELD-SYMBOLS: <lg_data> TYPE any,
<lg_field> TYPE any.
@ -91,6 +92,12 @@ CLASS zcl_abapgit_object_dcls IMPLEMENTATION.
ASSERT sy-subrc = 0.
<lg_field> = mo_files->read_string( 'asdcls' ).
ASSIGN COMPONENT 'ABAP_LANGUAGE_VERSION' OF STRUCTURE <lg_data> TO <lg_field>.
IF sy-subrc = 0.
lv_abap_language_version = <lg_field>.
set_abap_language_version( CHANGING cv_abap_language_version = lv_abap_language_version ).
ENDIF.
TRY.
tadir_insert( iv_package ).
@ -98,6 +105,16 @@ CLASS zcl_abapgit_object_dcls IMPLEMENTATION.
RECEIVING
ro_handler = lo_dcl.
TRY.
CALL METHOD lo_dcl->('SAVE')
EXPORTING
iv_dclname = ms_item-obj_name
iv_put_state = 'I'
is_dclsrc = <lg_data>
iv_devclass = iv_package
iv_access_mode = 'INSERT'
iv_abap_language_version = lv_abap_language_version.
CATCH cx_sy_dyn_call_param_not_found.
CALL METHOD lo_dcl->('SAVE')
EXPORTING
iv_dclname = ms_item-obj_name
@ -105,6 +122,7 @@ CLASS zcl_abapgit_object_dcls IMPLEMENTATION.
is_dclsrc = <lg_data>
iv_devclass = iv_package
iv_access_mode = 'INSERT'.
ENDTRY.
CATCH cx_root INTO lx_error.
zcx_abapgit_exception=>raise_with_text( lx_error ).
@ -236,7 +254,7 @@ CLASS zcl_abapgit_object_dcls IMPLEMENTATION.
ASSIGN COMPONENT 'ABAP_LANGUAGE_VERSION' OF STRUCTURE <lg_data> TO <lg_field>.
IF sy-subrc = 0.
CLEAR <lg_field>.
clear_abap_language_version( CHANGING cv_abap_language_version = <lg_field> ).
ENDIF.
ASSIGN COMPONENT 'SOURCE' OF STRUCTURE <lg_data> TO <lg_field>.

View File

@ -280,7 +280,8 @@ CLASS zcl_abapgit_object_ddls IMPLEMENTATION.
<lg_data_baseinfo> TYPE any,
<lg_source> TYPE any,
<lg_baseinfo_string> TYPE any,
<lg_baseinfo_ddlname> TYPE any.
<lg_baseinfo_ddlname> TYPE any,
<lg_abap_language_version> TYPE any.
TRY.
CREATE DATA lr_data TYPE ('DDDDLSRCV').
@ -293,6 +294,11 @@ CLASS zcl_abapgit_object_ddls IMPLEMENTATION.
ASSERT sy-subrc = 0.
<lg_source> = mo_files->read_string( 'asddls' ).
ASSIGN COMPONENT 'ABAP_LANGUAGE_VERSION' OF STRUCTURE <lg_data> TO <lg_abap_language_version>.
IF sy-subrc = 0.
set_abap_language_version( CHANGING cv_abap_language_version = <lg_abap_language_version> ).
ENDIF.
CALL METHOD ('CL_DD_DDL_HANDLER_FACTORY')=>('CREATE')
RECEIVING
handler = lo_ddl.
@ -310,12 +316,22 @@ CLASS zcl_abapgit_object_ddls IMPLEMENTATION.
ASSERT sy-subrc = 0.
<lg_baseinfo_ddlname> = ms_item-obj_name.
TRY.
CALL METHOD lo_ddl->('IF_DD_DDL_HANDLER~SAVE')
EXPORTING
name = ms_item-obj_name
put_state = 'N'
ddddlsrcv_wa = <lg_data>
baseinfo_string = <lg_data_baseinfo>
save_language_version = abap_true.
CATCH cx_sy_dyn_call_param_not_found.
CALL METHOD lo_ddl->('IF_DD_DDL_HANDLER~SAVE')
EXPORTING
name = ms_item-obj_name
put_state = 'N'
ddddlsrcv_wa = <lg_data>
baseinfo_string = <lg_data_baseinfo>.
ENDTRY.
ELSE.
CALL METHOD lo_ddl->('IF_DD_DDL_HANDLER~SAVE')
EXPORTING
@ -453,7 +469,8 @@ CLASS zcl_abapgit_object_ddls IMPLEMENTATION.
<lt_data_baseinfo> TYPE ANY TABLE,
<lg_data_baseinfo> TYPE any,
<lg_ddlname> TYPE any,
<lg_as4local> TYPE any.
<lg_as4local> TYPE any,
<lg_abap_language_version> TYPE any.
TRY.
@ -506,12 +523,16 @@ CLASS zcl_abapgit_object_ddls IMPLEMENTATION.
zcx_abapgit_exception=>raise_with_text( lx_error ).
ENDTRY.
ASSIGN COMPONENT 'ABAP_LANGUAGE_VERSION' OF STRUCTURE <lg_data> TO <lg_abap_language_version>.
IF sy-subrc = 0.
clear_abap_language_version( CHANGING cv_abap_language_version = <lg_abap_language_version> ).
ENDIF.
APPEND 'AS4USER' TO lt_clr_comps.
APPEND 'AS4DATE' TO lt_clr_comps.
APPEND 'AS4TIME' TO lt_clr_comps.
APPEND 'ACTFLAG' TO lt_clr_comps.
APPEND 'CHGFLAG' TO lt_clr_comps.
APPEND 'ABAP_LANGUAGE_VERSION' TO lt_clr_comps.
APPEND 'ABAP_LANGU_VERSION' TO lt_clr_comps.
LOOP AT lt_clr_comps ASSIGNING <lv_comp>.

View File

@ -80,8 +80,6 @@ CLASS zcl_abapgit_object_ddlx IMPLEMENTATION.
clear_field( EXPORTING iv_fieldname = 'ABAP_LANGUAGE_VERSION'
CHANGING cg_metadata = <lg_metadata> ).
clear_field( EXPORTING iv_fieldname = 'ABAP_LANGU_VERSION'
CHANGING cg_metadata = <lg_metadata> ).
ENDMETHOD.
@ -184,7 +182,8 @@ CLASS zcl_abapgit_object_ddlx IMPLEMENTATION.
<lg_version> TYPE data,
<lg_package> TYPE data,
<lg_changed_by> TYPE syuname,
<lg_changed_at> TYPE xsddatetime_z.
<lg_changed_at> TYPE xsddatetime_z,
<lg_abap_language_version> TYPE data.
TRY.
CREATE DATA lr_data
@ -197,6 +196,11 @@ CLASS zcl_abapgit_object_ddlx IMPLEMENTATION.
CHANGING
cg_data = <lg_data> ).
ASSIGN COMPONENT 'METADATA-ABAP_LANGU_VERSION' OF STRUCTURE <lg_data> TO <lg_abap_language_version>.
IF sy-subrc = 0.
set_abap_language_version( CHANGING cv_abap_language_version = <lg_abap_language_version> ).
ENDIF.
ASSIGN COMPONENT 'CONTENT-SOURCE' OF STRUCTURE <lg_data> TO <lg_source>.
ASSERT sy-subrc = 0.
@ -367,6 +371,11 @@ CLASS zcl_abapgit_object_ddlx IMPLEMENTATION.
li_data_model->get_data( IMPORTING p_data = <lg_data> ).
ASSIGN COMPONENT 'METADATA-ABAP_LANGU_VERSION' OF STRUCTURE <lg_data> TO <lg_field>.
IF sy-subrc = 0.
clear_abap_language_version( CHANGING cv_abap_language_version = <lg_field> ).
ENDIF.
clear_fields( CHANGING cg_data = <lg_data> ).
ASSIGN COMPONENT 'CONTENT-SOURCE' OF STRUCTURE <lg_data> TO <lg_field>.

View File

@ -8,6 +8,9 @@ CLASS zcl_abapgit_object_wdcc DEFINITION
INTERFACES zif_abapgit_object .
PROTECTED SECTION.
METHODS after_import
RAISING
zcx_abapgit_exception .
PRIVATE SECTION.
ENDCLASS.
@ -230,10 +233,33 @@ CLASS zcl_abapgit_object_wdcc IMPLEMENTATION.
tadir_insert( iv_package ).
after_import( ).
corr_insert( iv_package ).
ENDMETHOD.
METHOD after_import.
DATA: lt_cts_object_entry TYPE STANDARD TABLE OF e071 WITH DEFAULT KEY,
ls_cts_object_entry LIKE LINE OF lt_cts_object_entry,
lt_cts_key TYPE STANDARD TABLE OF e071k WITH DEFAULT KEY.
ls_cts_object_entry-pgmid = 'R3TR'.
ls_cts_object_entry-object = ms_item-obj_type.
ls_cts_object_entry-obj_name = ms_item-obj_name.
INSERT ls_cts_object_entry INTO TABLE lt_cts_object_entry.
CALL FUNCTION 'WDR_CFG_AFTER_IMPORT'
EXPORTING
iv_tarclient = sy-mandt
iv_is_upgrade = abap_false
TABLES
tt_e071 = lt_cts_object_entry
tt_e071k = lt_cts_key.
ENDMETHOD.
METHOD zif_abapgit_object~exists.

View File

@ -528,7 +528,10 @@ CLASS zcl_abapgit_gui_page_patch IMPLEMENTATION.
lv_patched TYPE abap_bool,
lv_is_patch_possible TYPE abap_bool.
" In case an object is falsely detected as changed, filename is empty and there's no diff object
IF iv_filename IS NOT INITIAL.
lv_patched = get_diff_object( iv_filename )->is_line_patched( iv_index ).
ENDIF.
lv_is_patch_possible = is_patch_line_possible( is_diff_line ).