mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 12:20:51 +08:00
fix for serialize view cluster inactive/not exits (#2339)
* add missing functions in plugin VCLS * fix pretty print * fix check usage for abaplint * adjust detection of locks * german type
This commit is contained in:
parent
ad7809e4f2
commit
96edce7e96
|
@ -5,10 +5,19 @@ CLASS zcl_abapgit_object_vcls DEFINITION PUBLIC INHERITING FROM zcl_abapgit_obje
|
||||||
|
|
||||||
PROTECTED SECTION.
|
PROTECTED SECTION.
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
* See include MTOBJCON:
|
|
||||||
CONSTANTS: c_cluster_type TYPE c VALUE 'C'.
|
|
||||||
CONSTANTS: c_mode_insert TYPE obj_para-maint_mode VALUE 'I'.
|
|
||||||
|
|
||||||
|
* See include MTOBJCON:
|
||||||
|
CONSTANTS c_cluster_type TYPE c VALUE 'C' ##NO_TEXT.
|
||||||
|
CONSTANTS c_mode_insert TYPE obj_para-maint_mode VALUE 'I' ##NO_TEXT.
|
||||||
|
|
||||||
|
METHODS check_lock
|
||||||
|
IMPORTING
|
||||||
|
!iv_tabname TYPE tabname
|
||||||
|
!iv_argument TYPE seqg3-garg
|
||||||
|
RETURNING
|
||||||
|
VALUE(rv_is_locked) TYPE abap_bool
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception .
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
@ -16,6 +25,26 @@ ENDCLASS.
|
||||||
CLASS ZCL_ABAPGIT_OBJECT_VCLS IMPLEMENTATION.
|
CLASS ZCL_ABAPGIT_OBJECT_VCLS IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD check_lock.
|
||||||
|
|
||||||
|
DATA:
|
||||||
|
ls_rstable_key TYPE rstable, " Lock argument for table RSTABLE
|
||||||
|
lv_argument TYPE eqegraarg.
|
||||||
|
|
||||||
|
" Set Values for generic table lock
|
||||||
|
ls_rstable_key-tabname = iv_tabname.
|
||||||
|
ls_rstable_key-varkey = iv_argument.
|
||||||
|
|
||||||
|
" include all sub keys
|
||||||
|
lv_argument = ls_rstable_key.
|
||||||
|
lv_argument = lv_argument && '*'.
|
||||||
|
|
||||||
|
rv_is_locked = exists_a_lock_entry_for( iv_lock_object = 'E_TABLEE'
|
||||||
|
iv_argument = lv_argument ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD zif_abapgit_object~changed_by.
|
METHOD zif_abapgit_object~changed_by.
|
||||||
rv_user = c_user_unknown. " todo
|
rv_user = c_user_unknown. " todo
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
@ -121,11 +150,6 @@ CLASS ZCL_ABAPGIT_OBJECT_VCLS IMPLEMENTATION.
|
||||||
|
|
||||||
rv_bool = boolc( sy-subrc = 0 ).
|
rv_bool = boolc( sy-subrc = 0 ).
|
||||||
|
|
||||||
IF lv_changedate IS INITIAL.
|
|
||||||
* same logic as in function module VIEWCLUSTER_GET_DEFINITION
|
|
||||||
rv_bool = abap_false.
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
@ -141,13 +165,44 @@ CLASS ZCL_ABAPGIT_OBJECT_VCLS IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD zif_abapgit_object~is_active.
|
METHOD zif_abapgit_object~is_active.
|
||||||
rv_active = is_active( ).
|
|
||||||
|
DATA lv_changedate TYPE vcldir-changedate.
|
||||||
|
|
||||||
|
SELECT SINGLE changedate INTO lv_changedate FROM vcldir
|
||||||
|
WHERE vclname = ms_item-obj_name.
|
||||||
|
|
||||||
|
IF lv_changedate IS NOT INITIAL.
|
||||||
|
* see logic in function module VIEWCLUSTER_GET_DEFINITION
|
||||||
|
rv_active = abap_true.
|
||||||
|
ELSE.
|
||||||
|
rv_active = abap_false.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD zif_abapgit_object~is_locked.
|
METHOD zif_abapgit_object~is_locked.
|
||||||
|
|
||||||
rv_is_locked = abap_false.
|
DATA:
|
||||||
|
ls_vcldir TYPE vcldir,
|
||||||
|
ls_vcldirt TYPE vcldirt,
|
||||||
|
|
||||||
|
lv_argument TYPE seqg3-garg,
|
||||||
|
lv_argument_langu TYPE seqg3-garg.
|
||||||
|
|
||||||
|
lv_argument = me->ms_item-obj_name.
|
||||||
|
lv_argument_langu = |@{ me->ms_item-obj_name }|.
|
||||||
|
|
||||||
|
"Check all relevant maintein tabeles for view clusters
|
||||||
|
IF check_lock( iv_tabname = 'VCLDIR' iv_argument = lv_argument ) = abap_true
|
||||||
|
OR check_lock( iv_tabname = 'VCLDIRT' iv_argument = lv_argument_langu ) = abap_true
|
||||||
|
OR check_lock( iv_tabname = 'VCLSTRUC' iv_argument = lv_argument ) = abap_true
|
||||||
|
OR check_lock( iv_tabname = 'VCLSTRUCT' iv_argument = lv_argument_langu ) = abap_true
|
||||||
|
OR check_lock( iv_tabname = 'VCLSTRUC' iv_argument = lv_argument ) = abap_true
|
||||||
|
OR check_lock( iv_tabname = 'VCLMF' iv_argument = lv_argument ) = abap_true.
|
||||||
|
|
||||||
|
rv_is_locked = abap_true.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
|
@ -12,6 +12,14 @@
|
||||||
<FIXPT>X</FIXPT>
|
<FIXPT>X</FIXPT>
|
||||||
<UNICODE>X</UNICODE>
|
<UNICODE>X</UNICODE>
|
||||||
</VSEOCLASS>
|
</VSEOCLASS>
|
||||||
|
<DESCRIPTIONS>
|
||||||
|
<SEOCOMPOTX>
|
||||||
|
<CLSNAME>ZCL_ABAPGIT_OBJECT_VCLS</CLSNAME>
|
||||||
|
<CMPNAME>CHECK_LOCK</CMPNAME>
|
||||||
|
<LANGU>E</LANGU>
|
||||||
|
<DESCRIPT>check if lock entry exits</DESCRIPT>
|
||||||
|
</SEOCOMPOTX>
|
||||||
|
</DESCRIPTIONS>
|
||||||
</asx:values>
|
</asx:values>
|
||||||
</asx:abap>
|
</asx:abap>
|
||||||
</abapGit>
|
</abapGit>
|
||||||
|
|
Loading…
Reference in New Issue
Block a user