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
236 lines
5.5 KiB
ABAP
236 lines
5.5 KiB
ABAP
CLASS zcl_abapgit_object_enqu DEFINITION PUBLIC INHERITING FROM zcl_abapgit_objects_super FINAL.
|
|
|
|
PUBLIC SECTION.
|
|
INTERFACES zif_abapgit_object.
|
|
ALIASES mo_files FOR zif_abapgit_object~mo_files.
|
|
PRIVATE SECTION.
|
|
TYPES: tyt_dd27p TYPE STANDARD TABLE OF dd27p WITH DEFAULT KEY.
|
|
METHODS _clear_dd27p_fields CHANGING ct_dd27p TYPE tyt_dd27p.
|
|
|
|
ENDCLASS.
|
|
|
|
|
|
|
|
CLASS zcl_abapgit_object_enqu IMPLEMENTATION.
|
|
|
|
|
|
METHOD zif_abapgit_object~changed_by.
|
|
|
|
SELECT SINGLE as4user FROM dd25l
|
|
INTO rv_user
|
|
WHERE viewname = ms_item-obj_name
|
|
AND as4local = 'A'
|
|
AND as4vers = '0000'.
|
|
IF sy-subrc <> 0.
|
|
rv_user = c_user_unknown.
|
|
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_objname TYPE rsedd0-ddobjname.
|
|
|
|
|
|
lv_objname = ms_item-obj_name.
|
|
|
|
CALL FUNCTION 'RS_DD_DELETE_OBJ'
|
|
EXPORTING
|
|
no_ask = abap_true
|
|
objname = lv_objname
|
|
objtype = 'L'
|
|
EXCEPTIONS
|
|
not_executed = 1
|
|
object_not_found = 2
|
|
object_not_specified = 3
|
|
permission_failure = 4.
|
|
IF sy-subrc <> 0.
|
|
zcx_abapgit_exception=>raise( 'error from RS_DD_DELETE_OBJ, ENQU' ).
|
|
ENDIF.
|
|
|
|
ENDMETHOD.
|
|
|
|
|
|
METHOD zif_abapgit_object~deserialize.
|
|
|
|
DATA: lv_name TYPE ddobjname,
|
|
ls_dd25v TYPE dd25v,
|
|
lt_dd26e TYPE TABLE OF dd26e,
|
|
lt_dd27p TYPE tyt_dd27p.
|
|
|
|
|
|
io_xml->read( EXPORTING iv_name = 'DD25V'
|
|
CHANGING cg_data = ls_dd25v ).
|
|
io_xml->read( EXPORTING iv_name = 'DD26E_TABLE'
|
|
CHANGING cg_data = lt_dd26e ).
|
|
io_xml->read( EXPORTING iv_name = 'DD27P_TABLE'
|
|
CHANGING cg_data = lt_dd27p ).
|
|
|
|
corr_insert( iv_package ).
|
|
|
|
lv_name = ms_item-obj_name.
|
|
|
|
CALL FUNCTION 'DDIF_ENQU_PUT'
|
|
EXPORTING
|
|
name = lv_name
|
|
dd25v_wa = ls_dd25v
|
|
TABLES
|
|
dd26e_tab = lt_dd26e
|
|
dd27p_tab = lt_dd27p
|
|
EXCEPTIONS
|
|
enqu_not_found = 1
|
|
name_inconsistent = 2
|
|
enqu_inconsistent = 3
|
|
put_failure = 4
|
|
put_refused = 5
|
|
OTHERS = 6.
|
|
IF sy-subrc <> 0.
|
|
zcx_abapgit_exception=>raise( 'error from DDIF_ENQU_PUT' ).
|
|
ENDIF.
|
|
|
|
zcl_abapgit_objects_activation=>add_item( ms_item ).
|
|
|
|
ENDMETHOD.
|
|
|
|
|
|
METHOD zif_abapgit_object~exists.
|
|
|
|
DATA: lv_viewname TYPE dd25l-viewname.
|
|
|
|
|
|
SELECT SINGLE viewname FROM dd25l INTO lv_viewname
|
|
WHERE viewname = ms_item-obj_name
|
|
AND as4local = 'A'
|
|
AND as4vers = '0000'.
|
|
rv_bool = boolc( sy-subrc = 0 ).
|
|
|
|
ENDMETHOD.
|
|
|
|
|
|
METHOD zif_abapgit_object~get_metadata.
|
|
rs_metadata = get_metadata( ).
|
|
rs_metadata-ddic = abap_true.
|
|
ENDMETHOD.
|
|
|
|
|
|
METHOD zif_abapgit_object~has_changed_since.
|
|
|
|
DATA: lv_date TYPE dats,
|
|
lv_time TYPE tims.
|
|
|
|
SELECT SINGLE as4date as4time FROM dd25l
|
|
INTO (lv_date, lv_time)
|
|
WHERE viewname = ms_item-obj_name
|
|
AND as4local = 'A'
|
|
AND as4vers = '0000'.
|
|
|
|
rv_changed = check_timestamp(
|
|
iv_timestamp = iv_timestamp
|
|
iv_date = lv_date
|
|
iv_time = lv_time ).
|
|
|
|
ENDMETHOD.
|
|
|
|
|
|
METHOD zif_abapgit_object~is_locked.
|
|
|
|
rv_is_locked = abap_false.
|
|
|
|
ENDMETHOD.
|
|
|
|
|
|
METHOD zif_abapgit_object~jump.
|
|
|
|
jump_se11( iv_radio = 'RSRD1-ENQU'
|
|
iv_field = 'RSRD1-ENQU_VAL' ).
|
|
|
|
ENDMETHOD.
|
|
|
|
|
|
METHOD zif_abapgit_object~serialize.
|
|
|
|
DATA: lv_name TYPE ddobjname,
|
|
ls_dd25v TYPE dd25v,
|
|
lt_dd26e TYPE TABLE OF dd26e,
|
|
lt_dd27p TYPE tyt_dd27p.
|
|
|
|
lv_name = ms_item-obj_name.
|
|
|
|
CALL FUNCTION 'DDIF_ENQU_GET'
|
|
EXPORTING
|
|
name = lv_name
|
|
state = 'A'
|
|
langu = mv_language
|
|
IMPORTING
|
|
dd25v_wa = ls_dd25v
|
|
TABLES
|
|
dd26e_tab = lt_dd26e
|
|
dd27p_tab = lt_dd27p
|
|
EXCEPTIONS
|
|
illegal_input = 1
|
|
OTHERS = 2.
|
|
IF sy-subrc <> 0.
|
|
zcx_abapgit_exception=>raise( 'error from DDIF_ENQU_GET' ).
|
|
ENDIF.
|
|
IF ls_dd25v IS INITIAL.
|
|
RETURN. " does not exist in system
|
|
ENDIF.
|
|
|
|
CLEAR: ls_dd25v-as4user,
|
|
ls_dd25v-as4date,
|
|
ls_dd25v-as4time.
|
|
|
|
_clear_dd27p_fields( CHANGING ct_dd27p = lt_dd27p ).
|
|
|
|
io_xml->add( iv_name = 'DD25V'
|
|
ig_data = ls_dd25v ).
|
|
io_xml->add( ig_data = lt_dd26e
|
|
iv_name = 'DD26E_TABLE' ).
|
|
io_xml->add( ig_data = lt_dd27p
|
|
iv_name = 'DD27P_TABLE' ).
|
|
|
|
ENDMETHOD.
|
|
|
|
|
|
METHOD _clear_dd27p_fields.
|
|
|
|
FIELD-SYMBOLS <ls_dd27p> TYPE dd27p.
|
|
|
|
LOOP AT ct_dd27p ASSIGNING <ls_dd27p>.
|
|
"taken from table
|
|
CLEAR <ls_dd27p>-headlen.
|
|
CLEAR <ls_dd27p>-scrlen1.
|
|
CLEAR <ls_dd27p>-scrlen2.
|
|
CLEAR <ls_dd27p>-scrlen3.
|
|
CLEAR <ls_dd27p>-intlen.
|
|
CLEAR <ls_dd27p>-outputlen.
|
|
CLEAR <ls_dd27p>-flength.
|
|
CLEAR <ls_dd27p>-ddtext.
|
|
CLEAR <ls_dd27p>-reptext.
|
|
CLEAR <ls_dd27p>-scrtext_s.
|
|
CLEAR <ls_dd27p>-scrtext_m.
|
|
CLEAR <ls_dd27p>-scrtext_l.
|
|
CLEAR <ls_dd27p>-rollname.
|
|
CLEAR <ls_dd27p>-rollnamevi.
|
|
CLEAR <ls_dd27p>-entitytab.
|
|
CLEAR <ls_dd27p>-datatype.
|
|
CLEAR <ls_dd27p>-inttype.
|
|
CLEAR <ls_dd27p>-ddlanguage.
|
|
CLEAR <ls_dd27p>-domname.
|
|
CLEAR <ls_dd27p>-signflag.
|
|
ENDLOOP.
|
|
|
|
ENDMETHOD.
|
|
|
|
|
|
METHOD zif_abapgit_object~is_active.
|
|
rv_active = is_active( ).
|
|
ENDMETHOD.
|
|
ENDCLASS.
|