Merge pull request #1517 from christianguenter2/issue_437

Block pull if any of deserialized object is locked
This commit is contained in:
Lars Hvam 2018-06-18 15:32:07 +02:00 committed by GitHub
commit b6894a5e67
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
88 changed files with 1026 additions and 44 deletions

View File

@ -139,4 +139,10 @@ CLASS zcl_abapgit_object_acid IMPLEMENTATION.
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
ENDMETHOD.
METHOD zif_abapgit_object~is_locked.
rv_is_locked = abap_false.
ENDMETHOD.
ENDCLASS. "zcl_abapgit_object_acid IMPLEMENTATION

View File

@ -8,7 +8,7 @@ ENDCLASS.
CLASS ZCL_ABAPGIT_OBJECT_AUTH IMPLEMENTATION.
CLASS zcl_abapgit_object_auth IMPLEMENTATION.
METHOD zif_abapgit_object~changed_by.
@ -127,4 +127,11 @@ CLASS ZCL_ABAPGIT_OBJECT_AUTH IMPLEMENTATION.
ig_data = ls_authx ).
ENDMETHOD. "zif_abapgit_object~serialize
METHOD zif_abapgit_object~is_locked.
rv_is_locked = abap_false.
ENDMETHOD.
ENDCLASS.

View File

@ -30,12 +30,17 @@ CLASS zcl_abapgit_object_clas_old DEFINITION PUBLIC INHERITING FROM zcl_abapgit_
serialize_xml
IMPORTING io_xml TYPE REF TO zcl_abapgit_xml_output
RAISING zcx_abapgit_exception.
PRIVATE SECTION.
METHODS:
is_class_locked
RETURNING VALUE(rv_is_class_locked) TYPE abap_bool
RAISING zcx_abapgit_exception.
ENDCLASS.
CLASS ZCL_ABAPGIT_OBJECT_CLAS_OLD IMPLEMENTATION.
CLASS zcl_abapgit_object_clas_old IMPLEMENTATION.
METHOD constructor.
@ -408,4 +413,44 @@ CLASS ZCL_ABAPGIT_OBJECT_CLAS_OLD IMPLEMENTATION.
serialize_xml( io_xml ).
ENDMETHOD. "serialize
METHOD zif_abapgit_object~is_locked.
DATA: lv_classpool TYPE program.
lv_classpool = cl_oo_classname_service=>get_classpool_name( |{ ms_item-obj_name }| ).
IF is_class_locked( ) = abap_true
OR is_text_locked( lv_classpool ) = abap_true.
rv_is_locked = abap_true.
ENDIF.
ENDMETHOD.
METHOD is_class_locked.
DATA: lv_clsname TYPE seoclsenq-clsname.
lv_clsname = ms_item-obj_name.
OVERLAY lv_clsname WITH '=============================='.
CALL FUNCTION 'ENQUEUE_ESEOCLASS'
EXPORTING
clsname = lv_clsname
EXCEPTIONS
foreign_lock = 1
system_failure = 2
OTHERS = 3.
rv_is_class_locked = boolc( sy-subrc <> 0 ).
CALL FUNCTION 'DEQUEUE_ESEOCLASS'
EXPORTING
clsname = lv_clsname.
ENDMETHOD.
ENDCLASS.

View File

@ -214,6 +214,12 @@ CLASS ZCL_ABAPGIT_OBJECT_CMPT IMPLEMENTATION.
zcx_abapgit_exception=>raise( 'CMPT not supported' ).
ENDTRY.
ENDMETHOD.
METHOD zif_abapgit_object~is_locked.
rv_is_locked = abap_false.
ENDMETHOD.
ENDCLASS.

View File

@ -140,4 +140,10 @@ CLASS zcl_abapgit_object_cus0 IMPLEMENTATION.
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
ENDMETHOD.
METHOD zif_abapgit_object~is_locked.
rv_is_locked = abap_false.
ENDMETHOD.
ENDCLASS. "zcl_abapgit_object_cus0 IMPLEMENTATION

View File

@ -152,4 +152,10 @@ CLASS zcl_abapgit_object_cus1 IMPLEMENTATION.
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
ENDMETHOD.
METHOD zif_abapgit_object~is_locked.
rv_is_locked = abap_false.
ENDMETHOD.
ENDCLASS. "zcl_abapgit_object_cus1 IMPLEMENTATION

View File

@ -145,4 +145,10 @@ CLASS zcl_abapgit_object_cus2 IMPLEMENTATION.
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
ENDMETHOD.
METHOD zif_abapgit_object~is_locked.
rv_is_locked = abap_false.
ENDMETHOD.
ENDCLASS. "zcl_abapgit_object_cus2 IMPLEMENTATION

View File

@ -8,7 +8,7 @@ ENDCLASS.
CLASS ZCL_ABAPGIT_OBJECT_DCLS IMPLEMENTATION.
CLASS zcl_abapgit_object_dcls IMPLEMENTATION.
METHOD zif_abapgit_object~changed_by.
@ -194,4 +194,12 @@ CLASS ZCL_ABAPGIT_OBJECT_DCLS IMPLEMENTATION.
ENDTRY.
ENDMETHOD.
METHOD zif_abapgit_object~is_locked.
rv_is_locked = exists_a_lock_entry_for( iv_lock_object = 'E_ACMDCLSRC'
iv_argument = |{ ms_item-obj_name }| ).
ENDMETHOD.
ENDCLASS.

View File

@ -300,4 +300,12 @@ CLASS ZCL_ABAPGIT_OBJECT_DDLS IMPLEMENTATION.
ig_data = <lg_data> ).
ENDMETHOD. "serialize
METHOD zif_abapgit_object~is_locked.
rv_is_locked = exists_a_lock_entry_for( iv_lock_object = 'ESDICT'
iv_argument = |{ ms_item-obj_type }{ ms_item-obj_name }| ).
ENDMETHOD.
ENDCLASS.

View File

@ -28,7 +28,7 @@ ENDCLASS.
CLASS ZCL_ABAPGIT_OBJECT_DDLX IMPLEMENTATION.
CLASS zcl_abapgit_object_ddlx IMPLEMENTATION.
METHOD clear_field.
@ -254,4 +254,12 @@ CLASS ZCL_ABAPGIT_OBJECT_DDLX IMPLEMENTATION.
ENDTRY.
ENDMETHOD.
METHOD zif_abapgit_object~is_locked.
rv_is_locked = exists_a_lock_entry_for( iv_lock_object = 'ESDICT'
iv_argument = |{ ms_item-obj_type }{ ms_item-obj_name }| ).
ENDMETHOD.
ENDCLASS.

View File

@ -544,4 +544,18 @@ CLASS zcl_abapgit_object_devc IMPLEMENTATION.
io_xml->add( iv_name = 'PERMISSION' ig_data = lt_usage_data ).
ENDIF.
ENDMETHOD.
METHOD zif_abapgit_object~is_locked.
DATA: lv_object TYPE eqegraarg .
lv_object = |DV{ ms_item-obj_name }|.
OVERLAY lv_object WITH ' '.
lv_object = lv_object && '*'.
rv_is_locked = exists_a_lock_entry_for( iv_lock_object = 'EEUDB'
iv_argument = lv_object ).
ENDMETHOD.
ENDCLASS.

View File

@ -206,4 +206,11 @@ CLASS ZCL_ABAPGIT_OBJECT_DIAL IMPLEMENTATION.
WHERE dnam = lv_dnam.
ENDMETHOD.
METHOD zif_abapgit_object~is_locked.
rv_is_locked = abap_false.
ENDMETHOD.
ENDCLASS.

View File

@ -191,4 +191,10 @@ CLASS zcl_abapgit_object_doct IMPLEMENTATION.
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
ENDMETHOD.
METHOD zif_abapgit_object~is_locked.
rv_is_locked = abap_false.
ENDMETHOD.
ENDCLASS. "zcl_abapgit_object_msag IMPLEMENTATION

View File

@ -153,4 +153,10 @@ CLASS zcl_abapgit_object_docv IMPLEMENTATION.
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
ENDMETHOD.
METHOD zif_abapgit_object~is_locked.
rv_is_locked = abap_false.
ENDMETHOD.
ENDCLASS. "zcl_abapgit_object_msag IMPLEMENTATION

View File

@ -36,7 +36,7 @@ ENDCLASS.
CLASS ZCL_ABAPGIT_OBJECT_DOMA IMPLEMENTATION.
CLASS zcl_abapgit_object_doma IMPLEMENTATION.
METHOD deserialize_texts.
@ -389,4 +389,12 @@ CLASS ZCL_ABAPGIT_OBJECT_DOMA IMPLEMENTATION.
serialize_texts( io_xml ).
ENDMETHOD. "serialize
METHOD zif_abapgit_object~is_locked.
rv_is_locked = exists_a_lock_entry_for( iv_lock_object = 'ESDICT'
iv_argument = |{ ms_item-obj_type }{ ms_item-obj_name }| ).
ENDMETHOD.
ENDCLASS.

View File

@ -162,4 +162,10 @@ CLASS zcl_abapgit_object_dsys IMPLEMENTATION.
ENDMETHOD.
METHOD zif_abapgit_object~is_locked.
rv_is_locked = abap_false.
ENDMETHOD.
ENDCLASS. "zcl_abapgit_object_dsys IMPLEMENTATION

View File

@ -29,7 +29,7 @@ ENDCLASS.
CLASS ZCL_ABAPGIT_OBJECT_DTEL IMPLEMENTATION.
CLASS zcl_abapgit_object_dtel IMPLEMENTATION.
METHOD deserialize_texts.
@ -334,4 +334,13 @@ CLASS ZCL_ABAPGIT_OBJECT_DTEL IMPLEMENTATION.
serialize_texts( io_xml ).
ENDMETHOD. "serialize
METHOD zif_abapgit_object~is_locked.
rv_is_locked = exists_a_lock_entry_for( iv_lock_object = 'ESDICT'
iv_argument = |{ ms_item-obj_type }{ ms_item-obj_name }| ).
ENDMETHOD.
ENDCLASS.

View File

@ -16,7 +16,8 @@ CLASS zcl_abapgit_object_ecat DEFINITION
METHODS:
get_object_type REDEFINITION,
get_upload REDEFINITION,
get_download REDEFINITION.
get_download REDEFINITION,
get_lock_object REDEFINITION.
ENDCLASS.
@ -51,4 +52,10 @@ CLASS zcl_abapgit_object_ecat IMPLEMENTATION.
ENDMETHOD.
METHOD get_lock_object.
rv_lock_object = 'E_ECATT'.
ENDMETHOD.
ENDCLASS.

View File

@ -28,7 +28,11 @@ CLASS zcl_abapgit_object_ecatt_super DEFINITION
get_download ABSTRACT
RETURNING
VALUE(ro_download) TYPE REF TO cl_apl_ecatt_download.
VALUE(ro_download) TYPE REF TO cl_apl_ecatt_download,
get_lock_object ABSTRACT
RETURNING
VALUE(rv_lock_object) TYPE eqeobj.
PRIVATE SECTION.
TYPES:
@ -628,5 +632,18 @@ CLASS zcl_abapgit_object_ecatt_super IMPLEMENTATION.
ENDMETHOD.
METHOD zif_abapgit_object~is_locked.
DATA: lv_object TYPE seqg3-garg.
lv_object = ms_item-obj_name.
OVERLAY lv_object WITH ' '.
lv_object = lv_object && '*'.
rv_is_locked = exists_a_lock_entry_for( iv_lock_object = get_lock_object( )
iv_argument = lv_object ).
ENDMETHOD.
ENDCLASS.

View File

@ -16,7 +16,8 @@ CLASS zcl_abapgit_object_ecsd DEFINITION
METHODS:
get_object_type REDEFINITION,
get_upload REDEFINITION,
get_download REDEFINITION.
get_download REDEFINITION,
get_lock_object REDEFINITION.
ENDCLASS.
@ -51,4 +52,10 @@ CLASS zcl_abapgit_object_ecsd IMPLEMENTATION.
ENDMETHOD.
METHOD get_lock_object.
rv_lock_object = 'E_ECATT_SD'.
ENDMETHOD.
ENDCLASS.

View File

@ -16,7 +16,8 @@ CLASS zcl_abapgit_object_ecsp DEFINITION
METHODS:
get_object_type REDEFINITION,
get_upload REDEFINITION,
get_download REDEFINITION.
get_download REDEFINITION,
get_lock_object REDEFINITION.
ENDCLASS.
@ -53,4 +54,10 @@ CLASS zcl_abapgit_object_ecsp IMPLEMENTATION.
ENDMETHOD.
METHOD get_lock_object.
rv_lock_object = 'E_ECATT_SP'.
ENDMETHOD.
ENDCLASS.

View File

@ -16,7 +16,8 @@ CLASS zcl_abapgit_object_ectc DEFINITION
METHODS:
get_object_type REDEFINITION,
get_upload REDEFINITION,
get_download REDEFINITION.
get_download REDEFINITION,
get_lock_object REDEFINITION.
ENDCLASS.
@ -51,4 +52,10 @@ CLASS zcl_abapgit_object_ectc IMPLEMENTATION.
ENDMETHOD.
METHOD get_lock_object.
rv_lock_object = 'E_ECATT_TC'.
ENDMETHOD.
ENDCLASS.

View File

@ -16,7 +16,8 @@ CLASS zcl_abapgit_object_ectd DEFINITION
METHODS:
get_object_type REDEFINITION,
get_upload REDEFINITION,
get_download REDEFINITION.
get_download REDEFINITION,
get_lock_object REDEFINITION.
ENDCLASS.
@ -50,4 +51,10 @@ CLASS zcl_abapgit_object_ectd IMPLEMENTATION.
ENDMETHOD.
METHOD get_lock_object.
rv_lock_object = 'E_ECATT_TD'.
ENDMETHOD.
ENDCLASS.

View File

@ -16,7 +16,8 @@ CLASS zcl_abapgit_object_ecvo DEFINITION
METHODS:
get_object_type REDEFINITION,
get_upload REDEFINITION,
get_download REDEFINITION.
get_download REDEFINITION,
get_lock_object REDEFINITION.
ENDCLASS.
@ -53,4 +54,10 @@ CLASS zcl_abapgit_object_ecvo IMPLEMENTATION.
ENDMETHOD.
METHOD get_lock_object.
rv_lock_object = 'E_ECATT_TD'.
ENDMETHOD.
ENDCLASS.

View File

@ -211,4 +211,10 @@ CLASS zcl_abapgit_object_enho IMPLEMENTATION.
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
ENDMETHOD. "zif_abapgit_object~compare_to_remote_version
METHOD zif_abapgit_object~is_locked.
rv_is_locked = abap_false.
ENDMETHOD.
ENDCLASS. "zcl_abapgit_object_enho IMPLEMENTATION

View File

@ -179,4 +179,10 @@ CLASS zcl_abapgit_object_enhs IMPLEMENTATION.
ENDMETHOD.
METHOD zif_abapgit_object~is_locked.
rv_is_locked = abap_false.
ENDMETHOD.
ENDCLASS. "zcl_abapgit_object_enhs

View File

@ -175,4 +175,10 @@ CLASS zcl_abapgit_object_enqu IMPLEMENTATION.
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
ENDMETHOD.
METHOD zif_abapgit_object~is_locked.
rv_is_locked = abap_false.
ENDMETHOD.
ENDCLASS. "zcl_abapgit_object_enqu IMPLEMENTATION

View File

@ -187,4 +187,10 @@ CLASS zcl_abapgit_object_ensc IMPLEMENTATION.
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
ENDMETHOD.
METHOD zif_abapgit_object~is_locked.
rv_is_locked = abap_false.
ENDMETHOD.
ENDCLASS. "zcl_abapgit_object_ensc

View File

@ -434,4 +434,10 @@ CLASS zcl_abapgit_object_form IMPLEMENTATION.
ENDMETHOD.
METHOD zif_abapgit_object~is_locked.
rv_is_locked = abap_false.
ENDMETHOD.
ENDCLASS. "zcl_abapgit_object_FORM IMPLEMENTATION

View File

@ -77,16 +77,34 @@ CLASS zcl_abapgit_object_fugr DEFINITION PUBLIC INHERITING FROM zcl_abapgit_obje
zcx_abapgit_exception .
METHODS are_exceptions_class_based
IMPORTING
!iv_function_name TYPE rs38l_fnam
iv_function_name TYPE rs38l_fnam
RETURNING
VALUE(rv_return) TYPE abap_bool
VALUE(rv_return) TYPE abap_bool
RAISING
zcx_abapgit_exception .
METHODS is_function_group_locked
RETURNING
VALUE(rv_is_functions_group_locked) TYPE abap_bool
RAISING
zcx_abapgit_exception.
METHODS is_any_include_locked
RETURNING
VALUE(rv_is_any_include_locked) TYPE abap_bool
RAISING
zcx_abapgit_exception.
METHODS is_any_function_module_locked
RETURNING
VALUE(rv_any_function_module_locked) TYPE abap_bool
RAISING
zcx_abapgit_exception.
ENDCLASS.
CLASS ZCL_ABAPGIT_OBJECT_FUGR IMPLEMENTATION.
CLASS zcl_abapgit_object_fugr IMPLEMENTATION.
METHOD are_exceptions_class_based.
@ -844,4 +862,79 @@ CLASS ZCL_ABAPGIT_OBJECT_FUGR IMPLEMENTATION.
ENDIF.
ENDMETHOD. "serialize
METHOD zif_abapgit_object~is_locked.
DATA: lv_program TYPE program.
lv_program = main_name( ).
IF is_function_group_locked( ) = abap_true
OR is_any_include_locked( ) = abap_true
OR is_any_function_module_locked( ) = abap_true
OR is_any_dynpro_locked( lv_program ) = abap_true
OR is_cua_locked( lv_program ) = abap_true
OR is_text_locked( lv_program ) = abap_true.
rv_is_locked = abap_true.
ENDIF.
ENDMETHOD.
METHOD is_function_group_locked.
DATA: lv_object TYPE eqegraarg .
lv_object = |FG{ ms_item-obj_name }|.
OVERLAY lv_object WITH ' '.
lv_object = lv_object && '*'.
rv_is_functions_group_locked = exists_a_lock_entry_for( iv_lock_object = 'EEUDB'
iv_argument = lv_object ).
ENDMETHOD.
METHOD is_any_include_locked.
DATA: lt_includes TYPE rso_t_objnm.
FIELD-SYMBOLS: <lv_include> TYPE sobj_name.
lt_includes = includes( ).
LOOP AT lt_includes ASSIGNING <lv_include>.
IF exists_a_lock_entry_for( iv_lock_object = 'ESRDIRE'
iv_argument = |{ <lv_include> }| ) = abap_true.
rv_is_any_include_locked = abap_true.
EXIT.
ENDIF.
ENDLOOP.
ENDMETHOD.
METHOD is_any_function_module_locked.
DATA: lt_functions TYPE zcl_abapgit_object_fugr=>ty_rs38l_incl_tt.
FIELD-SYMBOLS: <ls_function> TYPE rs38l_incl.
lt_functions = functions( ).
LOOP AT lt_functions ASSIGNING <ls_function>.
IF exists_a_lock_entry_for( iv_lock_object = 'ESFUNCTION'
iv_argument = |{ <ls_function>-funcname }| ) = abap_true.
rv_any_function_module_locked = abap_true.
EXIT.
ENDIF.
ENDLOOP.
ENDMETHOD.
ENDCLASS.

View File

@ -296,4 +296,10 @@ CLASS zcl_abapgit_object_iamu IMPLEMENTATION.
ENDMETHOD.
METHOD zif_abapgit_object~is_locked.
rv_is_locked = abap_false.
ENDMETHOD.
ENDCLASS.

View File

@ -184,4 +184,10 @@ CLASS zcl_abapgit_object_iarp IMPLEMENTATION.
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
ENDMETHOD.
METHOD zif_abapgit_object~is_locked.
rv_is_locked = abap_false.
ENDMETHOD.
ENDCLASS. "zcl_abapgit_object_iarp IMPLEMENTATION

View File

@ -184,4 +184,10 @@ CLASS zcl_abapgit_object_iasp IMPLEMENTATION.
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
ENDMETHOD.
METHOD zif_abapgit_object~is_locked.
rv_is_locked = abap_false.
ENDMETHOD.
ENDCLASS. "zcl_abapgit_object_iasp IMPLEMENTATION

View File

@ -201,4 +201,10 @@ CLASS zcl_abapgit_object_iatu IMPLEMENTATION.
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
ENDMETHOD.
METHOD zif_abapgit_object~is_locked.
rv_is_locked = abap_false.
ENDMETHOD.
ENDCLASS. "zcl_abapgit_object_iatu IMPLEMENTATION

View File

@ -225,4 +225,11 @@ CLASS ZCL_ABAPGIT_OBJECT_IDOC IMPLEMENTATION.
ig_data = ls_idoc ).
ENDMETHOD.
METHOD zif_abapgit_object~is_locked.
rv_is_locked = abap_false.
ENDMETHOD.
ENDCLASS.

View File

@ -222,4 +222,10 @@ CLASS zcl_abapgit_object_iext IMPLEMENTATION.
ENDMETHOD.
METHOD zif_abapgit_object~is_locked.
rv_is_locked = abap_false.
ENDMETHOD.
ENDCLASS.

View File

@ -265,4 +265,11 @@ CLASS ZCL_ABAPGIT_OBJECT_INTF IMPLEMENTATION.
serialize_xml( io_xml ).
ENDMETHOD.
METHOD zif_abapgit_object~is_locked.
rv_is_locked = abap_false.
ENDMETHOD.
ENDCLASS.

View File

@ -205,4 +205,11 @@ CLASS ZCL_ABAPGIT_OBJECT_JOBD IMPLEMENTATION.
ENDTRY.
ENDMETHOD.
METHOD zif_abapgit_object~is_locked.
rv_is_locked = abap_false.
ENDMETHOD.
ENDCLASS.

View File

@ -288,4 +288,10 @@ CLASS zcl_abapgit_object_msag IMPLEMENTATION.
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
ENDMETHOD.
METHOD zif_abapgit_object~is_locked.
rv_is_locked = abap_false.
ENDMETHOD.
ENDCLASS. "zcl_abapgit_object_msag IMPLEMENTATION

View File

@ -274,4 +274,10 @@ CLASS zcl_abapgit_object_nrob IMPLEMENTATION.
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
ENDMETHOD.
METHOD zif_abapgit_object~is_locked.
rv_is_locked = abap_false.
ENDMETHOD.
ENDCLASS. "zcl_abapgit_object_nrob IMPLEMENTATION

View File

@ -134,4 +134,10 @@ CLASS zcl_abapgit_object_para IMPLEMENTATION.
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
ENDMETHOD.
METHOD zif_abapgit_object~is_locked.
rv_is_locked = abap_false.
ENDMETHOD.
ENDCLASS. "zcl_abapgit_object_para IMPLEMENTATION

View File

@ -345,4 +345,10 @@ CLASS zcl_abapgit_object_pinf IMPLEMENTATION.
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
ENDMETHOD.
METHOD zif_abapgit_object~is_locked.
rv_is_locked = abap_false.
ENDMETHOD.
ENDCLASS. "zcl_abapgit_object_PINF IMPLEMENTATION

View File

@ -182,4 +182,11 @@ CLASS ZCL_ABAPGIT_OBJECT_PRAG IMPLEMENTATION.
zcx_abapgit_exception=>raise( |Pragma { ms_item-obj_name } doesn't exist| ).
ENDMETHOD.
METHOD zif_abapgit_object~is_locked.
rv_is_locked = abap_false.
ENDMETHOD.
ENDCLASS.

View File

@ -17,13 +17,18 @@ CLASS zcl_abapgit_object_prog DEFINITION PUBLIC INHERITING FROM zcl_abapgit_obje
RAISING zcx_abapgit_exception,
deserialize_texts
IMPORTING io_xml TYPE REF TO zcl_abapgit_xml_input
RAISING zcx_abapgit_exception.
RAISING zcx_abapgit_exception,
is_program_locked
RETURNING
VALUE(rv_is_program_locked) TYPE abap_bool
RAISING
zcx_abapgit_exception.
ENDCLASS.
CLASS ZCL_ABAPGIT_OBJECT_PROG IMPLEMENTATION.
CLASS zcl_abapgit_object_prog IMPLEMENTATION.
METHOD deserialize_texts.
@ -213,4 +218,26 @@ CLASS ZCL_ABAPGIT_OBJECT_PROG IMPLEMENTATION.
serialize_texts( io_xml ).
ENDMETHOD. "zif_abapgit_serialize~serialize
METHOD zif_abapgit_object~is_locked.
IF is_program_locked( ) = abap_true
OR is_any_dynpro_locked( ms_item-obj_name ) = abap_true
OR is_cua_locked( ms_item-obj_name ) = abap_true
OR is_text_locked( ms_item-obj_name ) = abap_true.
rv_is_locked = abap_true.
ENDIF.
ENDMETHOD.
METHOD is_program_locked.
rv_is_program_locked = exists_a_lock_entry_for( iv_lock_object = 'ESRDIRE'
iv_argument = |{ ms_item-obj_name }| ).
ENDMETHOD.
ENDCLASS.

View File

@ -176,6 +176,13 @@ CLASS ZCL_ABAPGIT_OBJECT_SFBF IMPLEMENTATION.
ENDMETHOD. "zif_abapgit_object~has_changed_since
METHOD zif_abapgit_object~is_locked.
rv_is_locked = abap_false.
ENDMETHOD.
METHOD zif_abapgit_object~jump.
CALL FUNCTION 'RS_TOOL_ACCESS'

View File

@ -224,4 +224,11 @@ CLASS ZCL_ABAPGIT_OBJECT_SFBS IMPLEMENTATION.
iv_name = 'PARENT_BFS' ).
ENDMETHOD. "serialize
METHOD zif_abapgit_object~is_locked.
rv_is_locked = abap_false.
ENDMETHOD.
ENDCLASS.

View File

@ -224,4 +224,11 @@ CLASS ZCL_ABAPGIT_OBJECT_SFPF IMPLEMENTATION.
io_xml->set_raw( li_document->get_root_element( ) ).
ENDMETHOD. "serialize
METHOD zif_abapgit_object~is_locked.
rv_is_locked = abap_false.
ENDMETHOD.
ENDCLASS.

View File

@ -157,4 +157,10 @@ CLASS zcl_abapgit_object_sfpi IMPLEMENTATION.
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
ENDMETHOD.
METHOD zif_abapgit_object~is_locked.
rv_is_locked = abap_false.
ENDMETHOD.
ENDCLASS. "zcl_abapgit_object_doma IMPLEMENTATION

View File

@ -215,4 +215,11 @@ CLASS ZCL_ABAPGIT_OBJECT_SFSW IMPLEMENTATION.
iv_name = 'CONFLICTS' ).
ENDMETHOD. "serialize
METHOD zif_abapgit_object~is_locked.
rv_is_locked = abap_false.
ENDMETHOD.
ENDCLASS.

View File

@ -261,4 +261,10 @@ CLASS zcl_abapgit_object_shi3 IMPLEMENTATION.
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
ENDMETHOD.
METHOD zif_abapgit_object~is_locked.
rv_is_locked = abap_false.
ENDMETHOD.
ENDCLASS. "zcl_abapgit_object_shi3 IMPLEMENTATION

View File

@ -126,4 +126,10 @@ CLASS zcl_abapgit_object_shi5 IMPLEMENTATION.
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
ENDMETHOD.
METHOD zif_abapgit_object~is_locked.
rv_is_locked = abap_false.
ENDMETHOD.
ENDCLASS. "zcl_abapgit_object_shi5 IMPLEMENTATION

View File

@ -132,4 +132,10 @@ CLASS zcl_abapgit_object_shi8 IMPLEMENTATION.
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
ENDMETHOD.
METHOD zif_abapgit_object~is_locked.
rv_is_locked = abap_false.
ENDMETHOD.
ENDCLASS. "zcl_abapgit_object_shi8 IMPLEMENTATION

View File

@ -196,4 +196,10 @@ CLASS zcl_abapgit_object_shlp IMPLEMENTATION.
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
ENDMETHOD.
METHOD zif_abapgit_object~is_locked.
rv_is_locked = abap_false.
ENDMETHOD.
ENDCLASS. "zcl_abapgit_object_shlp IMPLEMENTATION

View File

@ -266,4 +266,10 @@ CLASS zcl_abapgit_object_shma IMPLEMENTATION.
ENDMETHOD.
METHOD zif_abapgit_object~is_locked.
rv_is_locked = abap_false.
ENDMETHOD.
ENDCLASS.

View File

@ -572,4 +572,11 @@ CLASS ZCL_ABAPGIT_OBJECT_SICF IMPLEMENTATION.
ig_data = lt_icfhandler ).
ENDMETHOD. "serialize
METHOD zif_abapgit_object~is_locked.
rv_is_locked = abap_false.
ENDMETHOD.
ENDCLASS.

View File

@ -330,4 +330,10 @@ CLASS zcl_abapgit_object_smim IMPLEMENTATION.
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
ENDMETHOD.
METHOD zif_abapgit_object~is_locked.
rv_is_locked = abap_false.
ENDMETHOD.
ENDCLASS. "zcl_abapgit_object_smim IMPLEMENTATION

View File

@ -109,4 +109,10 @@ CLASS zcl_abapgit_object_splo IMPLEMENTATION.
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
ENDMETHOD.
METHOD zif_abapgit_object~is_locked.
rv_is_locked = abap_false.
ENDMETHOD.
ENDCLASS. "zcl_abapgit_object_splo IMPLEMENTATION

View File

@ -181,4 +181,11 @@ CLASS ZCL_ABAPGIT_OBJECT_SRFC IMPLEMENTATION.
ig_data = <lg_srfc_data> ).
ENDMETHOD.
METHOD zif_abapgit_object~is_locked.
rv_is_locked = abap_false.
ENDMETHOD.
ENDCLASS.

View File

@ -283,4 +283,10 @@ CLASS zcl_abapgit_object_ssfo IMPLEMENTATION.
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
ENDMETHOD.
METHOD zif_abapgit_object~is_locked.
rv_is_locked = abap_false.
ENDMETHOD.
ENDCLASS. "zcl_abapgit_object_ssfo IMPLEMENTATION

View File

@ -261,4 +261,11 @@ CLASS ZCL_ABAPGIT_OBJECT_SSST IMPLEMENTATION.
iv_name = 'STXSTAB' ).
ENDMETHOD. "serialize
METHOD zif_abapgit_object~is_locked.
rv_is_locked = abap_false.
ENDMETHOD.
ENDCLASS.

View File

@ -186,4 +186,10 @@ CLASS zcl_abapgit_object_styl IMPLEMENTATION.
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
ENDMETHOD.
METHOD zif_abapgit_object~is_locked.
rv_is_locked = abap_false.
ENDMETHOD.
ENDCLASS. "zcl_abapgit_object_styl IMPLEMENTATION

View File

@ -111,4 +111,10 @@ CLASS zcl_abapgit_object_susc IMPLEMENTATION.
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
ENDMETHOD.
METHOD zif_abapgit_object~is_locked.
rv_is_locked = abap_false.
ENDMETHOD.
ENDCLASS. "zcl_abapgit_object_susc IMPLEMENTATION

View File

@ -162,4 +162,10 @@ CLASS zcl_abapgit_object_suso IMPLEMENTATION.
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
ENDMETHOD.
METHOD zif_abapgit_object~is_locked.
rv_is_locked = abap_false.
ENDMETHOD.
ENDCLASS. "zcl_abapgit_object_suso IMPLEMENTATION

View File

@ -276,4 +276,11 @@ CLASS ZCL_ABAPGIT_OBJECT_SXCI IMPLEMENTATION.
ig_data = ls_classic_badi_implementation ).
ENDMETHOD.
METHOD zif_abapgit_object~is_locked.
rv_is_locked = abap_false.
ENDMETHOD.
ENDCLASS.

View File

@ -498,4 +498,12 @@ CLASS ZCL_ABAPGIT_OBJECT_TABL IMPLEMENTATION.
ig_data = lt_dd36m ).
ENDMETHOD. "serialize
METHOD zif_abapgit_object~is_locked.
rv_is_locked = exists_a_lock_entry_for( iv_lock_object = 'ESDICT'
iv_argument = |{ ms_item-obj_type }{ ms_item-obj_name }| ).
ENDMETHOD.
ENDCLASS.

View File

@ -55,4 +55,5 @@ CLASS ZCL_ABAPGIT_OBJECT_TABL_DIALOG IMPLEMENTATION.
ENDIF.
ENDMETHOD.
ENDCLASS.

View File

@ -300,4 +300,10 @@ CLASS zcl_abapgit_object_tobj IMPLEMENTATION.
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
ENDMETHOD.
METHOD zif_abapgit_object~is_locked.
rv_is_locked = abap_false.
ENDMETHOD.
ENDCLASS. "zcl_abapgit_object_tobj IMPLEMENTATION

View File

@ -482,4 +482,11 @@ CLASS ZCL_ABAPGIT_OBJECT_TRAN IMPLEMENTATION.
serialize_texts( io_xml ).
ENDMETHOD. "serialize
METHOD zif_abapgit_object~is_locked.
rv_is_locked = abap_false.
ENDMETHOD.
ENDCLASS.

View File

@ -175,4 +175,10 @@ CLASS zcl_abapgit_object_ttyp IMPLEMENTATION.
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
ENDMETHOD.
METHOD zif_abapgit_object~is_locked.
rv_is_locked = abap_false.
ENDMETHOD.
ENDCLASS. "zcl_abapgit_object_ttyp IMPLEMENTATION

View File

@ -201,4 +201,10 @@ CLASS zcl_abapgit_object_type IMPLEMENTATION.
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
ENDMETHOD.
METHOD zif_abapgit_object~is_locked.
rv_is_locked = abap_false.
ENDMETHOD.
ENDCLASS. "zcl_abapgit_object_type IMPLEMENTATION

View File

@ -272,4 +272,11 @@ CLASS ZCL_ABAPGIT_OBJECT_UCSA IMPLEMENTATION.
ENDTRY.
ENDMETHOD.
METHOD zif_abapgit_object~is_locked.
rv_is_locked = abap_false.
ENDMETHOD.
ENDCLASS.

View File

@ -185,4 +185,10 @@ CLASS zcl_abapgit_object_vcls IMPLEMENTATION.
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
ENDMETHOD.
METHOD zif_abapgit_object~is_locked.
rv_is_locked = abap_false.
ENDMETHOD.
ENDCLASS. "zcl_abapgit_object_vcls IMPLEMENTATION

View File

@ -268,4 +268,11 @@ CLASS ZCL_ABAPGIT_OBJECT_VIEW IMPLEMENTATION.
iv_name = 'DD28V_TABLE' ).
ENDMETHOD. "serialize
METHOD zif_abapgit_object~is_locked.
rv_is_locked = abap_false.
ENDMETHOD.
ENDCLASS.

View File

@ -491,4 +491,11 @@ CLASS ZCL_ABAPGIT_OBJECT_W3SUPER IMPLEMENTATION.
iv_ext = get_ext( lt_w3params ) ).
ENDMETHOD. "serialize
METHOD zif_abapgit_object~is_locked.
rv_is_locked = abap_false.
ENDMETHOD.
ENDCLASS.

View File

@ -473,4 +473,10 @@ CLASS zcl_abapgit_object_wapa IMPLEMENTATION.
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
ENDMETHOD.
METHOD zif_abapgit_object~is_locked.
rv_is_locked = abap_false.
ENDMETHOD.
ENDCLASS. "zcl_abapgit_object_tran IMPLEMENTATION

View File

@ -225,4 +225,10 @@ CLASS zcl_abapgit_object_wdya IMPLEMENTATION.
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
ENDMETHOD.
METHOD zif_abapgit_object~is_locked.
rv_is_locked = abap_false.
ENDMETHOD.
ENDCLASS. "zcl_abapgit_object_wdya IMPLEMENTATION

View File

@ -822,4 +822,11 @@ CLASS ZCL_ABAPGIT_OBJECT_WDYN IMPLEMENTATION.
iv_name = 'SOURCES' ).
ENDMETHOD. "serialize
METHOD zif_abapgit_object~is_locked.
rv_is_locked = abap_false.
ENDMETHOD.
ENDCLASS.

View File

@ -462,4 +462,11 @@ CLASS ZCL_ABAPGIT_OBJECT_WEBI IMPLEMENTATION.
ig_data = ls_webi ).
ENDMETHOD. "zif_abapgit_object~serialize
METHOD zif_abapgit_object~is_locked.
rv_is_locked = abap_false.
ENDMETHOD.
ENDCLASS.

View File

@ -213,4 +213,11 @@ CLASS zcl_abapgit_object_xinx IMPLEMENTATION.
ig_data = ls_extension_index ).
ENDMETHOD. "serialize
METHOD zif_abapgit_object~is_locked.
rv_is_locked = abap_false.
ENDMETHOD.
ENDCLASS.

View File

@ -206,4 +206,10 @@ CLASS zcl_abapgit_object_xslt IMPLEMENTATION.
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
ENDMETHOD.
METHOD zif_abapgit_object~is_locked.
rv_is_locked = abap_false.
ENDMETHOD.
ENDCLASS. "zcl_abapgit_object_xslt IMPLEMENTATION

View File

@ -114,6 +114,22 @@ CLASS zcl_abapgit_objects_program DEFINITION PUBLIC INHERITING FROM zcl_abapgit_
iv_skip_gui TYPE abap_bool DEFAULT abap_false
RETURNING VALUE(rv_changed) TYPE abap_bool.
METHODS is_any_dynpro_locked
IMPORTING iv_program TYPE programm
RETURNING VALUE(rv_is_any_dynpro_locked) TYPE abap_bool
RAISING zcx_abapgit_exception.
METHODS is_cua_locked
IMPORTING iv_program TYPE programm
RETURNING VALUE(rv_is_cua_locked) TYPE abap_bool
RAISING zcx_abapgit_exception.
METHODS is_text_locked
IMPORTING iv_program TYPE programm
RETURNING VALUE(rv_is_text_locked) TYPE abap_bool
RAISING zcx_abapgit_exception.
CLASS-METHODS:
add_tpool
IMPORTING it_tpool TYPE textpool_table
@ -137,6 +153,54 @@ ENDCLASS.
CLASS zcl_abapgit_objects_program IMPLEMENTATION.
METHOD is_text_locked.
DATA: lv_object TYPE eqegraarg.
lv_object = |*{ iv_program }|.
rv_is_text_locked = exists_a_lock_entry_for( iv_lock_object = 'EABAPTEXTE'
iv_argument = lv_object ).
ENDMETHOD.
METHOD is_cua_locked.
DATA: lv_object TYPE eqegraarg,
ls_cua TYPE zcl_abapgit_objects_program=>ty_cua.
lv_object = |CU{ iv_program }|.
OVERLAY lv_object WITH ' '.
lv_object = lv_object && '*'.
rv_is_cua_locked = exists_a_lock_entry_for( iv_lock_object = 'ESCUAPAINT'
iv_argument = lv_object ).
ENDMETHOD.
METHOD is_any_dynpro_locked.
DATA: lt_dynpros TYPE zcl_abapgit_objects_program=>ty_dynpro_tt,
lv_object TYPE seqg3-garg.
FIELD-SYMBOLS: <ls_dynpro> TYPE zcl_abapgit_objects_program=>ty_dynpro.
lt_dynpros = serialize_dynpros( iv_program ).
LOOP AT lt_dynpros ASSIGNING <ls_dynpro>.
lv_object = |{ <ls_dynpro>-header-screen }{ <ls_dynpro>-header-program }|.
IF exists_a_lock_entry_for( iv_lock_object = 'ESCRP'
iv_argument = lv_object ) = abap_true.
rv_is_any_dynpro_locked = abap_true.
EXIT.
ENDIF.
ENDLOOP.
ENDMETHOD.
METHOD condense_flow.
DATA: lv_spaces LIKE LINE OF et_spaces.

View File

@ -52,7 +52,7 @@ ENDCLASS.
CLASS ZCL_ABAPGIT_OBJECTS_SAXX_SUPER IMPLEMENTATION.
CLASS zcl_abapgit_objects_saxx_super IMPLEMENTATION.
METHOD create_channel_objects.
@ -391,4 +391,11 @@ CLASS ZCL_ABAPGIT_OBJECTS_SAXX_SUPER IMPLEMENTATION.
ig_data = <lg_data> ).
ENDMETHOD.
METHOD zif_abapgit_object~is_locked.
rv_is_locked = abap_false.
ENDMETHOD.
ENDCLASS.

View File

@ -40,6 +40,11 @@ CLASS zcl_abapgit_objects_super DEFINITION PUBLIC ABSTRACT.
jump_se11
IMPORTING iv_radio TYPE string
iv_field TYPE string
RAISING zcx_abapgit_exception,
exists_a_lock_entry_for
IMPORTING iv_lock_object TYPE string
iv_argument TYPE seqg3-garg OPTIONAL
RETURNING VALUE(rv_exists_a_lock_entry) TYPE abap_bool
RAISING zcx_abapgit_exception.
PRIVATE SECTION.
@ -55,7 +60,7 @@ ENDCLASS.
CLASS ZCL_ABAPGIT_OBJECTS_SUPER IMPLEMENTATION.
CLASS zcl_abapgit_objects_super IMPLEMENTATION.
METHOD check_timestamp.
@ -116,6 +121,34 @@ CLASS ZCL_ABAPGIT_OBJECTS_SUPER IMPLEMENTATION.
ENDMETHOD. "corr_insert
METHOD exists_a_lock_entry_for.
DATA: lt_lock_entries TYPE STANDARD TABLE OF seqg3.
CALL FUNCTION 'ENQUEUE_READ'
EXPORTING
guname = '*'
garg = iv_argument
TABLES
enq = lt_lock_entries
EXCEPTIONS
communication_failure = 1
system_failure = 2
OTHERS = 3.
IF sy-subrc <> 0.
zcx_abapgit_exception=>raise_t100( ).
ENDIF.
READ TABLE lt_lock_entries TRANSPORTING NO FIELDS
WITH KEY gobj = iv_lock_object.
IF sy-subrc = 0.
rv_exists_a_lock_entry = abap_true.
ENDIF.
ENDMETHOD.
METHOD get_metadata.
DATA: lv_class TYPE string.

View File

@ -13,6 +13,10 @@ INTERFACE zif_abapgit_object PUBLIC.
exists
RETURNING VALUE(rv_bool) TYPE abap_bool
RAISING zcx_abapgit_exception,
is_locked
RETURNING VALUE(rv_is_locked) type abap_bool
RAISING
zcx_abapgit_exception,
changed_by
RETURNING VALUE(rv_user) TYPE xubname
RAISING zcx_abapgit_exception,

View File

@ -79,7 +79,16 @@ CLASS zcl_abapgit_objects DEFINITION
CLASS-METHODS supported_list
RETURNING
VALUE(rt_types) TYPE ty_types_tt .
PROTECTED SECTION.
PRIVATE SECTION.
TYPES: BEGIN OF ty_obj_serializer_map,
item TYPE zif_abapgit_definitions=>ty_item,
metadata TYPE zif_abapgit_definitions=>ty_metadata,
END OF ty_obj_serializer_map,
tty_obj_serializer_map
TYPE SORTED TABLE OF ty_obj_serializer_map WITH UNIQUE KEY item.
CLASS-DATA st_obj_serializer_map TYPE tty_obj_serializer_map.
CLASS-METHODS files_to_deserialize
IMPORTING
@ -93,16 +102,7 @@ CLASS zcl_abapgit_objects DEFINITION
!it_files TYPE zif_abapgit_definitions=>ty_files_tt
RAISING
zcx_abapgit_exception .
CLASS-METHODS create_object
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!iv_language TYPE spras
!is_metadata TYPE zif_abapgit_definitions=>ty_metadata OPTIONAL
!iv_native_only TYPE abap_bool DEFAULT abap_false
RETURNING
VALUE(ri_obj) TYPE REF TO zif_abapgit_object
RAISING
zcx_abapgit_exception .
CLASS-METHODS prioritize_deser
IMPORTING
!it_results TYPE zif_abapgit_definitions=>ty_results_tt
@ -168,18 +168,34 @@ CLASS zcl_abapgit_objects DEFINITION
zcx_abapgit_exception .
CLASS-METHODS deserialize_objects
IMPORTING
!it_objects TYPE ty_deserialization_tt
!iv_ddic TYPE abap_bool DEFAULT abap_false
!iv_descr TYPE string
it_objects TYPE ty_deserialization_tt
iv_ddic TYPE abap_bool DEFAULT abap_false
iv_descr TYPE string
CHANGING
!ct_files TYPE zif_abapgit_definitions=>ty_file_signatures_tt
ct_files TYPE zif_abapgit_definitions=>ty_file_signatures_tt
RAISING
zcx_abapgit_exception .
CLASS-METHODS check_objects_locked
IMPORTING
iv_language TYPE spras
it_results TYPE zif_abapgit_definitions=>ty_results_tt
RAISING
zcx_abapgit_exception.
CLASS-METHODS create_object
IMPORTING
is_item TYPE zif_abapgit_definitions=>ty_item
iv_language TYPE spras
is_metadata TYPE zif_abapgit_definitions=>ty_metadata OPTIONAL
iv_native_only TYPE abap_bool DEFAULT abap_false
RETURNING
VALUE(ri_obj) TYPE REF TO zif_abapgit_object
RAISING
zcx_abapgit_exception .
ENDCLASS.
CLASS ZCL_ABAPGIT_OBJECTS IMPLEMENTATION.
CLASS zcl_abapgit_objects IMPLEMENTATION.
METHOD changed_by.
@ -234,6 +250,29 @@ CLASS ZCL_ABAPGIT_OBJECTS IMPLEMENTATION.
ENDMETHOD.
METHOD check_objects_locked.
DATA: li_obj TYPE REF TO zif_abapgit_object,
ls_item TYPE zif_abapgit_definitions=>ty_item.
FIELD-SYMBOLS: <ls_result> TYPE zif_abapgit_definitions=>ty_result.
LOOP AT it_results ASSIGNING <ls_result>.
MOVE-CORRESPONDING <ls_result> TO ls_item.
li_obj = create_object( is_item = ls_item
iv_language = iv_language ).
IF li_obj->is_locked( ) = abap_true.
zcx_abapgit_exception=>raise( |Object { ls_item-obj_type } { ls_item-obj_name } |
&& |is locked. Deserialization not possible.| ).
ENDIF.
ENDLOOP.
ENDMETHOD.
METHOD class_name.
CONCATENATE 'ZCL_ABAPGIT_OBJECT_' is_item-obj_type INTO rv_class_name. "#EC NOTEXT
@ -280,14 +319,6 @@ CLASS ZCL_ABAPGIT_OBJECTS IMPLEMENTATION.
METHOD create_object.
TYPES: BEGIN OF ty_obj_serializer_map,
item LIKE is_item,
metadata LIKE is_metadata,
END OF ty_obj_serializer_map.
STATICS st_obj_serializer_map
TYPE SORTED TABLE OF ty_obj_serializer_map WITH UNIQUE KEY item.
DATA: lv_message TYPE string,
lv_class_name TYPE string,
ls_obj_serializer_map LIKE LINE OF st_obj_serializer_map.
@ -441,6 +472,9 @@ CLASS ZCL_ABAPGIT_OBJECTS IMPLEMENTATION.
EXPORTING
iv_total = lines( lt_results ).
check_objects_locked( iv_language = io_repo->get_dot_abapgit( )->get_master_language( )
it_results = lt_results ).
LOOP AT lt_results ASSIGNING <ls_result>.
lo_progress->show( iv_current = sy-tabix
iv_text = |Deserialize { <ls_result>-obj_name }| ) ##NO_TEXT.

View File

@ -356,3 +356,153 @@ CLASS ltcl_serialize IMPLEMENTATION.
ENDMETHOD. "check
ENDCLASS. "ltcl_serialize IMPLEMENTATION
CLASS ltd_objcet_ddls_mock DEFINITION FOR TESTING.
PUBLIC SECTION.
INTERFACES zif_abapgit_object PARTIALLY IMPLEMENTED.
METHODS:
constructor
IMPORTING
is_item TYPE zif_abapgit_definitions=>ty_item
iv_language TYPE spras.
PRIVATE SECTION.
DATA ms_item TYPE zif_abapgit_definitions=>ty_item.
ENDCLASS.
CLASS ltd_objcet_ddls_mock IMPLEMENTATION.
METHOD constructor.
ms_item = is_item.
ENDMETHOD.
METHOD zif_abapgit_object~is_locked.
CASE ms_item-obj_name.
WHEN 'Z_TEST_DDLS'.
rv_is_locked = abap_true.
WHEN 'Z_TEST_DDLS2'.
rv_is_locked = abap_false.
ENDCASE.
ENDMETHOD.
ENDCLASS.
CLASS ltcl_check_objects_locked DEFINITION FINAL FOR TESTING
DURATION SHORT
RISK LEVEL HARMLESS.
PRIVATE SECTION.
DATA:
mt_given_results TYPE zif_abapgit_definitions=>ty_results_tt,
mv_exception_text TYPE string.
METHODS:
throw_excp_if_object_is_locked FOR TESTING RAISING cx_static_check,
no_excp_if_obj_is_not_locked FOR TESTING RAISING cx_static_check,
given_locked_object,
when_check_objects_locked,
then_exception_shd_be_raised,
given_not_locked_object,
then_no_exception_shd_occur,
given_object
IMPORTING
iv_object_name TYPE string.
ENDCLASS.
CLASS zcl_abapgit_objects DEFINITION LOCAL FRIENDS ltcl_check_objects_locked.
CLASS ltcl_check_objects_locked IMPLEMENTATION.
METHOD throw_excp_if_object_is_locked.
given_locked_object( ).
when_check_objects_locked( ).
then_exception_shd_be_raised( ).
ENDMETHOD.
METHOD no_excp_if_obj_is_not_locked.
given_not_locked_object( ).
when_check_objects_locked( ).
then_no_exception_shd_occur( ).
ENDMETHOD.
METHOD given_locked_object.
given_object( 'Z_TEST_DDLS' ).
ENDMETHOD.
METHOD when_check_objects_locked.
DATA: lx_error TYPE REF TO zcx_abapgit_exception.
TRY.
zcl_abapgit_objects=>check_objects_locked( iv_language = 'E'
it_results = mt_given_results ).
CATCH zcx_abapgit_exception INTO lx_error.
mv_exception_text = lx_error->get_text( ).
ENDTRY.
ENDMETHOD.
METHOD then_exception_shd_be_raised.
cl_abap_unit_assert=>assert_equals(
exp = |Object DDLS Z_TEST_DDLS is locked. Deserialization not possible.|
act = mv_exception_text ).
ENDMETHOD.
METHOD given_not_locked_object.
given_object( 'Z_TEST_DDLS2' ).
ENDMETHOD.
METHOD then_no_exception_shd_occur.
cl_abap_unit_assert=>assert_initial( mv_exception_text ).
ENDMETHOD.
METHOD given_object.
CONSTANTS:
co_obj_type TYPE string VALUE 'DDLS'.
DATA:
ls_result LIKE LINE OF mt_given_results,
ls_obj_serializer_map LIKE LINE OF zcl_abapgit_objects=>st_obj_serializer_map.
ls_result-obj_type = co_obj_type.
ls_result-obj_name = iv_object_name.
INSERT ls_result INTO TABLE mt_given_results.
ls_obj_serializer_map-item-obj_type = co_obj_type.
ls_obj_serializer_map-item-obj_name = iv_object_name.
ls_obj_serializer_map-metadata-class = '\CLASS-POOL=ZCL_ABAPGIT_OBJECTS\CLASS=LTD_OBJCET_DDLS_MOCK'.
INSERT ls_obj_serializer_map INTO TABLE zcl_abapgit_objects=>st_obj_serializer_map.
ENDMETHOD.
ENDCLASS.

View File

@ -175,6 +175,13 @@ CLASS ZCL_ABAPGIT_OBJECTS_BRIDGE IMPLEMENTATION.
ENDMETHOD. "lif_object~has_changed_since
METHOD zif_abapgit_object~is_locked.
rv_is_locked = abap_false.
ENDMETHOD.
METHOD zif_abapgit_object~jump.
CALL METHOD mo_plugin->('ZIF_ABAPGITP_PLUGIN~JUMP').

View File

@ -120,7 +120,6 @@ CLASS zcl_abapgit_repo DEFINITION
RAISING
zcx_abapgit_exception .
ENDCLASS.
@ -609,4 +608,7 @@ CLASS ZCL_ABAPGIT_REPO IMPLEMENTATION.
set( it_checksums = lt_checksums ).
ENDMETHOD. " update_local_checksums
ENDCLASS.