mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-04 05:47:17 +08:00

* mark inactive objects in repo list Inactive object are marked in the repo list The sort order for changed files is not changed unchanged inactive files come right after the changed files * move acitve check to object interface * add is_active for objects up to F * add is_active for objects up to P * add is_active for objects up to T * add is_active for objects up to X all core object implement (except SSFO) the standard active check via FM RS_INACTIVE_OBJECTS_WARNING now * add is_active to plugins bridge - always active * finish object interface implementation + objects * add is_active for offline with object interface * rename returning to RV_ * use returning for serialize * cleanup, PP, UT
227 lines
5.5 KiB
ABAP
227 lines
5.5 KiB
ABAP
CLASS zcl_abapgit_object_sfsw DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL.
|
|
|
|
PUBLIC SECTION.
|
|
INTERFACES zif_abapgit_object.
|
|
|
|
PRIVATE SECTION.
|
|
METHODS:
|
|
get
|
|
RETURNING VALUE(ro_switch) TYPE REF TO cl_sfw_sw
|
|
RAISING zcx_abapgit_exception.
|
|
|
|
ENDCLASS.
|
|
|
|
|
|
|
|
CLASS zcl_abapgit_object_sfsw IMPLEMENTATION.
|
|
|
|
|
|
METHOD get.
|
|
|
|
DATA: lv_switch_id TYPE sfw_switch_id.
|
|
|
|
lv_switch_id = ms_item-obj_name.
|
|
|
|
TRY.
|
|
ro_switch = cl_sfw_sw=>get_switch_from_db( lv_switch_id ).
|
|
CATCH cx_pak_invalid_data cx_pak_invalid_state cx_pak_not_authorized.
|
|
zcx_abapgit_exception=>raise( 'Error from CL_SFW_SW=>GET_SWITCH' ).
|
|
ENDTRY.
|
|
|
|
ENDMETHOD.
|
|
|
|
|
|
METHOD zif_abapgit_object~changed_by.
|
|
|
|
DATA: ls_data TYPE sfw_switch.
|
|
|
|
|
|
ls_data = get( )->get_header_data( ).
|
|
|
|
rv_user = ls_data-changedby.
|
|
IF rv_user IS INITIAL.
|
|
rv_user = ls_data-author.
|
|
ENDIF.
|
|
|
|
ENDMETHOD.
|
|
|
|
|
|
METHOD zif_abapgit_object~compare_to_remote_version.
|
|
CREATE OBJECT ro_comparison_result TYPE zcl_abapgit_comparison_null.
|
|
ENDMETHOD.
|
|
|
|
|
|
METHOD zif_abapgit_object~delete.
|
|
|
|
DATA: lv_switch_id TYPE sfw_switch_id,
|
|
lo_switch TYPE REF TO cl_sfw_sw.
|
|
|
|
|
|
lv_switch_id = ms_item-obj_name.
|
|
TRY.
|
|
lo_switch = cl_sfw_sw=>get_switch( lv_switch_id ).
|
|
lo_switch->set_delete_flag( lv_switch_id ).
|
|
lo_switch->save_all( ).
|
|
CATCH cx_pak_invalid_data cx_pak_invalid_state cx_pak_not_authorized.
|
|
zcx_abapgit_exception=>raise( 'Error deleting Switch' ).
|
|
ENDTRY.
|
|
|
|
ENDMETHOD.
|
|
|
|
|
|
METHOD zif_abapgit_object~deserialize.
|
|
|
|
DATA: lo_switch TYPE REF TO cl_sfw_sw,
|
|
lv_switch_id TYPE sfw_switch_id,
|
|
ls_header TYPE sfw_switch,
|
|
lv_name_32 TYPE sfw_name32,
|
|
lv_name_80 TYPE sfw_name80,
|
|
lt_parent_bf TYPE sfw_bf_sw_outtab,
|
|
lt_conflicts TYPE sfw_confl_outtab.
|
|
|
|
|
|
io_xml->read( EXPORTING iv_name = 'HEADER'
|
|
CHANGING cg_data = ls_header ).
|
|
io_xml->read( EXPORTING iv_name = 'NAME32'
|
|
CHANGING cg_data = lv_name_32 ).
|
|
io_xml->read( EXPORTING iv_name = 'NAME80'
|
|
CHANGING cg_data = lv_name_80 ).
|
|
|
|
io_xml->read( EXPORTING iv_name = 'PARENT_BF'
|
|
CHANGING cg_data = lt_parent_bf ).
|
|
io_xml->read( EXPORTING iv_name = 'CONFLICTS'
|
|
CHANGING cg_data = lt_conflicts ).
|
|
|
|
lv_switch_id = ms_item-obj_name.
|
|
TRY.
|
|
lo_switch = cl_sfw_sw=>create_switch( lv_switch_id ).
|
|
CATCH cx_pak_not_authorized cx_pak_invalid_state cx_pak_invalid_data.
|
|
zcx_abapgit_exception=>raise( 'error in CL_SFW_SW=>CREATE_SWITCH' ).
|
|
ENDTRY.
|
|
|
|
ls_header-author = sy-uname.
|
|
ls_header-createdon = sy-datum.
|
|
lo_switch->set_header_data( ls_header ).
|
|
|
|
lo_switch->set_texts( p_32 = lv_name_32
|
|
p_80 = lv_name_80 ).
|
|
|
|
lo_switch->set_parent_bf( lt_parent_bf ).
|
|
lo_switch->set_conflicts( lt_conflicts ).
|
|
|
|
set_default_package( iv_package ).
|
|
lo_switch->save_all(
|
|
EXCEPTIONS
|
|
not_saved = 1
|
|
OTHERS = 2 ).
|
|
|
|
IF sy-subrc <> 0.
|
|
zcx_abapgit_exception=>raise( 'error in CL_SFW_SW->SAVE_ALL' ).
|
|
ENDIF.
|
|
|
|
zcl_abapgit_objects_activation=>add_item( ms_item ).
|
|
|
|
ENDMETHOD.
|
|
|
|
|
|
METHOD zif_abapgit_object~exists.
|
|
|
|
DATA: ls_tadir TYPE tadir,
|
|
lv_switch_id TYPE sfw_switch_id.
|
|
|
|
|
|
lv_switch_id = ms_item-obj_name.
|
|
IF cl_sfw_sw=>check_existence( lv_switch_id ) = abap_false.
|
|
RETURN.
|
|
ENDIF.
|
|
|
|
SELECT SINGLE * FROM tadir INTO ls_tadir
|
|
WHERE pgmid = 'R3TR'
|
|
AND object = ms_item-obj_type
|
|
AND obj_name = ms_item-obj_name.
|
|
IF ls_tadir IS INITIAL.
|
|
RETURN.
|
|
ENDIF.
|
|
|
|
rv_bool = abap_true.
|
|
ENDMETHOD.
|
|
|
|
|
|
METHOD zif_abapgit_object~get_metadata.
|
|
rs_metadata = get_metadata( ).
|
|
rs_metadata-ddic = abap_true.
|
|
ENDMETHOD.
|
|
|
|
|
|
METHOD zif_abapgit_object~has_changed_since.
|
|
rv_changed = abap_true.
|
|
ENDMETHOD.
|
|
|
|
|
|
METHOD zif_abapgit_object~jump.
|
|
|
|
CALL FUNCTION 'RS_TOOL_ACCESS'
|
|
EXPORTING
|
|
operation = 'SHOW'
|
|
object_name = ms_item-obj_name
|
|
object_type = 'SFSW'
|
|
in_new_window = abap_true.
|
|
|
|
ENDMETHOD.
|
|
|
|
|
|
METHOD zif_abapgit_object~serialize.
|
|
|
|
DATA: lo_switch TYPE REF TO cl_sfw_sw,
|
|
ls_header TYPE sfw_switch,
|
|
lv_name_32 TYPE sfw_name32,
|
|
lv_name_80 TYPE sfw_name80,
|
|
lt_parent_bf TYPE sfw_bf_sw_outtab,
|
|
lt_conflicts TYPE sfw_confl_outtab.
|
|
|
|
|
|
IF zif_abapgit_object~exists( ) = abap_false.
|
|
RETURN.
|
|
ENDIF.
|
|
|
|
lo_switch = get( ).
|
|
|
|
ls_header = lo_switch->get_header_data( ).
|
|
CLEAR: ls_header-author,
|
|
ls_header-createdon,
|
|
ls_header-changedby,
|
|
ls_header-changedon,
|
|
ls_header-timestamp.
|
|
|
|
lo_switch->get_texts(
|
|
IMPORTING
|
|
p_32 = lv_name_32
|
|
p_80 = lv_name_80 ).
|
|
|
|
lt_parent_bf = lo_switch->get_parent_bf( ).
|
|
lt_conflicts = lo_switch->get_conflicts( ).
|
|
|
|
io_xml->add( ig_data = ls_header
|
|
iv_name = 'HEADER' ).
|
|
io_xml->add( ig_data = lv_name_32
|
|
iv_name = 'NAME32' ).
|
|
io_xml->add( ig_data = lv_name_80
|
|
iv_name = 'NAME80' ).
|
|
|
|
io_xml->add( ig_data = lt_parent_bf
|
|
iv_name = 'PARENT_BF' ).
|
|
io_xml->add( ig_data = lt_conflicts
|
|
iv_name = 'CONFLICTS' ).
|
|
|
|
ENDMETHOD.
|
|
|
|
METHOD zif_abapgit_object~is_locked.
|
|
rv_is_locked = abap_false.
|
|
ENDMETHOD.
|
|
|
|
|
|
METHOD zif_abapgit_object~is_active.
|
|
rv_active = is_active( ).
|
|
ENDMETHOD.
|
|
ENDCLASS.
|