CLAS: better changed_by

but still not perfect
This commit is contained in:
larshp 2016-11-25 15:16:14 +01:00
parent 662ff0904e
commit 16fe500579
4 changed files with 69 additions and 14 deletions

View File

@ -3,7 +3,7 @@ REPORT zabapgit LINE-SIZE 100.
* See http://www.abapgit.org
CONSTANTS: gc_xml_version TYPE string VALUE 'v1.0.0', "#EC NOTEXT
gc_abap_version TYPE string VALUE 'v1.23.4'. "#EC NOTEXT
gc_abap_version TYPE string VALUE 'v1.23.5'. "#EC NOTEXT
********************************************************************************
* The MIT License (MIT)

View File

@ -102,6 +102,9 @@ CLASS lcl_object_clas DEFINITION INHERITING FROM lcl_objects_program.
METHODS reduce
CHANGING ct_source TYPE ty_string_tt.
METHODS get_all_class_includes
RETURNING VALUE(rt_includes) TYPE seoincl_t.
ENDCLASS. "lcl_object_dtel DEFINITION
*----------------------------------------------------------------------*
@ -121,6 +124,37 @@ ENDCLASS. "lcl_object_intf DEFINITION
*----------------------------------------------------------------------*
CLASS lcl_object_clas IMPLEMENTATION.
METHOD get_all_class_includes.
* note: includes returned might not exist
* method cl_oo_classname_service=>GET_ALL_CLASS_INCLUDES does not exist in 702
DATA: lv_clsname TYPE seoclsname,
lt_methods TYPE seop_methods_w_include.
FIELD-SYMBOLS: <ls_method> LIKE LINE OF lt_methods.
lv_clsname = ms_item-obj_name.
APPEND cl_oo_classname_service=>get_ccdef_name( lv_clsname ) TO rt_includes.
APPEND cl_oo_classname_service=>get_ccmac_name( lv_clsname ) TO rt_includes.
APPEND cl_oo_classname_service=>get_ccimp_name( lv_clsname ) TO rt_includes.
APPEND cl_oo_classname_service=>get_cl_name( lv_clsname ) TO rt_includes.
APPEND cl_oo_classname_service=>get_ccau_name( lv_clsname ) TO rt_includes.
APPEND cl_oo_classname_service=>get_pubsec_name( lv_clsname ) TO rt_includes.
APPEND cl_oo_classname_service=>get_prosec_name( lv_clsname ) TO rt_includes.
APPEND cl_oo_classname_service=>get_prisec_name( lv_clsname ) TO rt_includes.
APPEND cl_oo_classname_service=>get_classpool_name( lv_clsname ) TO rt_includes.
APPEND cl_oo_classname_service=>get_ct_name( lv_clsname ) TO rt_includes.
APPEND cl_oo_classname_service=>get_cs_name( lv_clsname ) TO rt_includes.
lt_methods = cl_oo_classname_service=>get_all_method_includes( lv_clsname ).
LOOP AT lt_methods ASSIGNING <ls_method>.
APPEND <ls_method>-incname TO rt_includes.
ENDLOOP.
ENDMETHOD.
METHOD lif_object~has_changed_since.
DATA: lv_clsname TYPE seoclsname,
@ -169,18 +203,39 @@ CLASS lcl_object_clas IMPLEMENTATION.
ENDMETHOD. "lif_object~get_metadata
METHOD lif_object~changed_by.
* todo, not sure this is correct, to be tested
SELECT SINGLE changedby FROM seoclassdf INTO rv_user
WHERE clsname = ms_item-obj_name
AND version = '1'. "#EC CI_GENBUFF
IF sy-subrc = 0 AND rv_user IS INITIAL.
SELECT SINGLE author FROM seoclassdf INTO rv_user
WHERE clsname = ms_item-obj_name
AND version = '1'. "#EC CI_GENBUFF
ENDIF.
TYPES: BEGIN OF ty_includes,
programm TYPE programm,
END OF ty_includes.
TYPES: BEGIN OF ty_reposrc,
unam TYPE reposrc-unam,
udat TYPE reposrc-udat,
utime TYPE reposrc-utime,
END OF ty_reposrc.
DATA: lt_reposrc TYPE STANDARD TABLE OF ty_reposrc,
ls_reposrc LIKE LINE OF lt_reposrc,
lt_includes TYPE STANDARD TABLE OF ty_includes.
lt_includes = get_all_class_includes( ).
ASSERT lines( lt_includes ) > 0.
SELECT unam udat utime FROM reposrc
INTO TABLE lt_reposrc
FOR ALL ENTRIES IN lt_includes
WHERE progname = lt_includes-programm
AND r3state = 'A'.
IF sy-subrc <> 0.
rv_user = c_user_unknown.
ELSE.
SORT lt_reposrc BY udat DESCENDING utime DESCENDING.
READ TABLE lt_reposrc INDEX 1 INTO ls_reposrc.
ASSERT sy-subrc = 0.
rv_user = ls_reposrc-unam.
ENDIF.
ENDMETHOD.
METHOD lif_object~exists.

View File

@ -2,7 +2,7 @@
*& Include zabapgit_object_tabl_valid
*&---------------------------------------------------------------------*
CLASS lcl_object_tabl_validation DEFINITION.
CLASS lcl_object_tabl_validation DEFINITION FINAL.
PUBLIC SECTION.
METHODS validate
IMPORTING
@ -14,7 +14,7 @@ CLASS lcl_object_tabl_validation DEFINITION.
lcx_exception.
ENDCLASS.
CLASS lcl_tabl_validation_dialog DEFINITION.
CLASS lcl_tabl_validation_dialog DEFINITION FINAL.
PUBLIC SECTION.
METHODS:
constructor
@ -91,7 +91,7 @@ CLASS lcl_tabl_validation_dialog IMPLEMENTATION.
ENDCLASS.
CLASS lct_table_validation DEFINITION FOR TESTING RISK LEVEL HARMLESS DURATION SHORT.
CLASS lct_table_validation DEFINITION FOR TESTING RISK LEVEL HARMLESS DURATION SHORT FINAL.
PRIVATE SECTION.
METHODS:
setup,

View File

@ -81,7 +81,7 @@ CLASS ltcl_convert IMPLEMENTATION.
ENDCLASS. "ltcl_convert IMPLEMENTATION
CLASS lth_critical_tests DEFINITION .
CLASS lth_critical_tests DEFINITION FINAL.
PUBLIC SECTION.
CLASS-METHODS:
check_run_permission.