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 * See http://www.abapgit.org
CONSTANTS: gc_xml_version TYPE string VALUE 'v1.0.0', "#EC NOTEXT 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) * The MIT License (MIT)

View File

@ -102,6 +102,9 @@ CLASS lcl_object_clas DEFINITION INHERITING FROM lcl_objects_program.
METHODS reduce METHODS reduce
CHANGING ct_source TYPE ty_string_tt. CHANGING ct_source TYPE ty_string_tt.
METHODS get_all_class_includes
RETURNING VALUE(rt_includes) TYPE seoincl_t.
ENDCLASS. "lcl_object_dtel DEFINITION ENDCLASS. "lcl_object_dtel DEFINITION
*----------------------------------------------------------------------* *----------------------------------------------------------------------*
@ -121,6 +124,37 @@ ENDCLASS. "lcl_object_intf DEFINITION
*----------------------------------------------------------------------* *----------------------------------------------------------------------*
CLASS lcl_object_clas IMPLEMENTATION. 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. METHOD lif_object~has_changed_since.
DATA: lv_clsname TYPE seoclsname, DATA: lv_clsname TYPE seoclsname,
@ -169,18 +203,39 @@ CLASS lcl_object_clas IMPLEMENTATION.
ENDMETHOD. "lif_object~get_metadata ENDMETHOD. "lif_object~get_metadata
METHOD lif_object~changed_by. METHOD lif_object~changed_by.
* todo, not sure this is correct, to be tested
SELECT SINGLE changedby FROM seoclassdf INTO rv_user TYPES: BEGIN OF ty_includes,
WHERE clsname = ms_item-obj_name programm TYPE programm,
AND version = '1'. "#EC CI_GENBUFF END OF ty_includes.
IF sy-subrc = 0 AND rv_user IS INITIAL.
SELECT SINGLE author FROM seoclassdf INTO rv_user TYPES: BEGIN OF ty_reposrc,
WHERE clsname = ms_item-obj_name unam TYPE reposrc-unam,
AND version = '1'. "#EC CI_GENBUFF udat TYPE reposrc-udat,
ENDIF. 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. IF sy-subrc <> 0.
rv_user = c_user_unknown. 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. ENDIF.
ENDMETHOD. ENDMETHOD.
METHOD lif_object~exists. METHOD lif_object~exists.

View File

@ -2,7 +2,7 @@
*& Include zabapgit_object_tabl_valid *& Include zabapgit_object_tabl_valid
*&---------------------------------------------------------------------* *&---------------------------------------------------------------------*
CLASS lcl_object_tabl_validation DEFINITION. CLASS lcl_object_tabl_validation DEFINITION FINAL.
PUBLIC SECTION. PUBLIC SECTION.
METHODS validate METHODS validate
IMPORTING IMPORTING
@ -14,7 +14,7 @@ CLASS lcl_object_tabl_validation DEFINITION.
lcx_exception. lcx_exception.
ENDCLASS. ENDCLASS.
CLASS lcl_tabl_validation_dialog DEFINITION. CLASS lcl_tabl_validation_dialog DEFINITION FINAL.
PUBLIC SECTION. PUBLIC SECTION.
METHODS: METHODS:
constructor constructor
@ -91,7 +91,7 @@ CLASS lcl_tabl_validation_dialog IMPLEMENTATION.
ENDCLASS. 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. PRIVATE SECTION.
METHODS: METHODS:
setup, setup,

View File

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