mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 12:20:51 +08:00
serialization caching, basic objects #366
This commit is contained in:
parent
f9f00a7d51
commit
762dc7bc89
|
@ -39,13 +39,10 @@ CLASS lcl_file_status IMPLEMENTATION.
|
||||||
READ TABLE it_repo WITH KEY
|
READ TABLE it_repo WITH KEY
|
||||||
path = is_gen-path
|
path = is_gen-path
|
||||||
filename = is_gen-filename
|
filename = is_gen-filename
|
||||||
data = is_gen-data
|
sha1 = is_gen-sha1
|
||||||
TRANSPORTING NO FIELDS.
|
TRANSPORTING NO FIELDS.
|
||||||
IF sy-subrc <> 0.
|
|
||||||
rv_match = abap_false.
|
rv_match = boolc( sy-subrc = 0 ).
|
||||||
ELSE.
|
|
||||||
rv_match = abap_true.
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
ENDMETHOD. "compare_files
|
ENDMETHOD. "compare_files
|
||||||
|
|
||||||
|
|
|
@ -27,6 +27,10 @@ ENDCLASS. "lcl_object_acid DEFINITION
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
CLASS lcl_object_acid IMPLEMENTATION.
|
CLASS lcl_object_acid IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD lif_object~has_changed_since.
|
||||||
|
rv_changed = abap_true.
|
||||||
|
ENDMETHOD. "lif_object~has_changed_since
|
||||||
|
|
||||||
METHOD lif_object~get_metadata.
|
METHOD lif_object~get_metadata.
|
||||||
rs_metadata = get_metadata( ).
|
rs_metadata = get_metadata( ).
|
||||||
ENDMETHOD. "lif_object~get_metadata
|
ENDMETHOD. "lif_object~get_metadata
|
||||||
|
|
|
@ -22,6 +22,10 @@ ENDCLASS. "lcl_object_auth DEFINITION
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
CLASS lcl_object_auth IMPLEMENTATION.
|
CLASS lcl_object_auth IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD lif_object~has_changed_since.
|
||||||
|
rv_changed = abap_true.
|
||||||
|
ENDMETHOD. "lif_object~has_changed_since
|
||||||
|
|
||||||
METHOD lif_object~get_metadata.
|
METHOD lif_object~get_metadata.
|
||||||
rs_metadata = get_metadata( ).
|
rs_metadata = get_metadata( ).
|
||||||
ENDMETHOD. "lif_object~get_metadata
|
ENDMETHOD. "lif_object~get_metadata
|
||||||
|
|
|
@ -121,6 +121,37 @@ ENDCLASS. "lcl_object_intf DEFINITION
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
CLASS lcl_object_clas IMPLEMENTATION.
|
CLASS lcl_object_clas IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD lif_object~has_changed_since.
|
||||||
|
|
||||||
|
DATA: lv_clsname TYPE seoclsname,
|
||||||
|
lt_incl TYPE seoincl_t.
|
||||||
|
|
||||||
|
FIELD-SYMBOLS <incl> LIKE LINE OF lt_incl.
|
||||||
|
|
||||||
|
lv_clsname = ms_item-obj_name.
|
||||||
|
|
||||||
|
CASE ms_item-obj_type.
|
||||||
|
WHEN 'CLAS'.
|
||||||
|
lt_incl = cl_oo_classname_service=>get_all_class_includes( lv_clsname ).
|
||||||
|
WHEN 'INTF'.
|
||||||
|
APPEND INITIAL LINE TO lt_incl ASSIGNING <incl>.
|
||||||
|
<incl> = cl_oo_classname_service=>get_interfacepool_name( lv_clsname ).
|
||||||
|
WHEN OTHERS.
|
||||||
|
lcx_exception=>raise( 'class delete, unknown type' ).
|
||||||
|
ENDCASE.
|
||||||
|
|
||||||
|
LOOP AT lt_incl ASSIGNING <incl>.
|
||||||
|
rv_changed = check_prog_changed_since(
|
||||||
|
iv_program = <incl>
|
||||||
|
iv_timestamp = iv_timestamp
|
||||||
|
iv_skip_gui = abap_true ).
|
||||||
|
IF rv_changed = abap_true.
|
||||||
|
RETURN.
|
||||||
|
ENDIF.
|
||||||
|
ENDLOOP.
|
||||||
|
|
||||||
|
ENDMETHOD. "lif_object~has_changed_since
|
||||||
|
|
||||||
METHOD lif_object~get_metadata.
|
METHOD lif_object~get_metadata.
|
||||||
rs_metadata = get_metadata( ).
|
rs_metadata = get_metadata( ).
|
||||||
ENDMETHOD. "lif_object~get_metadata
|
ENDMETHOD. "lif_object~get_metadata
|
||||||
|
|
|
@ -32,6 +32,10 @@ ENDCLASS. "lcl_object_msag DEFINITION
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
CLASS lcl_object_doct IMPLEMENTATION.
|
CLASS lcl_object_doct IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD lif_object~has_changed_since.
|
||||||
|
rv_changed = abap_true.
|
||||||
|
ENDMETHOD. "lif_object~has_changed_since
|
||||||
|
|
||||||
METHOD lif_object~get_metadata.
|
METHOD lif_object~get_metadata.
|
||||||
rs_metadata = get_metadata( ).
|
rs_metadata = get_metadata( ).
|
||||||
rs_metadata-delete_tadir = abap_true.
|
rs_metadata-delete_tadir = abap_true.
|
||||||
|
|
|
@ -31,6 +31,10 @@ ENDCLASS. "lcl_object_msag DEFINITION
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
CLASS lcl_object_docv IMPLEMENTATION.
|
CLASS lcl_object_docv IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD lif_object~has_changed_since.
|
||||||
|
rv_changed = abap_true.
|
||||||
|
ENDMETHOD. "lif_object~has_changed_since
|
||||||
|
|
||||||
METHOD lif_object~changed_by.
|
METHOD lif_object~changed_by.
|
||||||
rv_user = read( )-head-tdluser.
|
rv_user = read( )-head-tdluser.
|
||||||
ENDMETHOD. "lif_object~changed_by
|
ENDMETHOD. "lif_object~changed_by
|
||||||
|
|
|
@ -22,6 +22,22 @@ ENDCLASS. "lcl_object_doma DEFINITION
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
CLASS lcl_object_doma IMPLEMENTATION.
|
CLASS lcl_object_doma IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD lif_object~has_changed_since.
|
||||||
|
|
||||||
|
DATA: lv_date TYPE dats,
|
||||||
|
lv_time TYPE tims,
|
||||||
|
lv_ts TYPE timestamp.
|
||||||
|
|
||||||
|
SELECT SINGLE as4date as4time FROM dd01l
|
||||||
|
INTO (lv_date, lv_time)
|
||||||
|
WHERE domname = ms_item-obj_name
|
||||||
|
AND as4local = 'A'
|
||||||
|
AND as4vers = '0000'.
|
||||||
|
|
||||||
|
object_check_timestamp lv_date lv_time.
|
||||||
|
|
||||||
|
ENDMETHOD. "lif_object~has_changed_since
|
||||||
|
|
||||||
METHOD lif_object~changed_by.
|
METHOD lif_object~changed_by.
|
||||||
|
|
||||||
SELECT SINGLE as4user FROM dd01l INTO rv_user
|
SELECT SINGLE as4user FROM dd01l INTO rv_user
|
||||||
|
|
|
@ -22,6 +22,22 @@ ENDCLASS. "lcl_object_dtel DEFINITION
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
CLASS lcl_object_dtel IMPLEMENTATION.
|
CLASS lcl_object_dtel IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD lif_object~has_changed_since.
|
||||||
|
|
||||||
|
DATA: lv_date TYPE dats,
|
||||||
|
lv_time TYPE tims,
|
||||||
|
lv_ts TYPE timestamp.
|
||||||
|
|
||||||
|
SELECT SINGLE as4date as4time FROM dd04l
|
||||||
|
INTO (lv_date, lv_time)
|
||||||
|
WHERE rollname = ms_item-obj_name
|
||||||
|
AND as4local = 'A'
|
||||||
|
AND as4vers = '0000'.
|
||||||
|
|
||||||
|
object_check_timestamp lv_date lv_time.
|
||||||
|
|
||||||
|
ENDMETHOD. "lif_object~has_changed_since
|
||||||
|
|
||||||
METHOD lif_object~changed_by.
|
METHOD lif_object~changed_by.
|
||||||
|
|
||||||
SELECT SINGLE as4user FROM dd04l INTO rv_user
|
SELECT SINGLE as4user FROM dd04l INTO rv_user
|
||||||
|
|
|
@ -43,6 +43,10 @@ ENDCLASS. "lcl_object_enho DEFINITION
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
CLASS lcl_object_enho IMPLEMENTATION.
|
CLASS lcl_object_enho IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD lif_object~has_changed_since.
|
||||||
|
rv_changed = abap_true.
|
||||||
|
ENDMETHOD. "lif_object~has_changed_since
|
||||||
|
|
||||||
METHOD lif_object~get_metadata.
|
METHOD lif_object~get_metadata.
|
||||||
rs_metadata = get_metadata( ).
|
rs_metadata = get_metadata( ).
|
||||||
ENDMETHOD. "lif_object~get_metadata
|
ENDMETHOD. "lif_object~get_metadata
|
||||||
|
|
|
@ -17,6 +17,10 @@ ENDCLASS. "lcl_object_enhs
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
CLASS lcl_object_enhs IMPLEMENTATION.
|
CLASS lcl_object_enhs IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD lif_object~has_changed_since.
|
||||||
|
rv_changed = abap_true.
|
||||||
|
ENDMETHOD. "lif_object~has_changed_since
|
||||||
|
|
||||||
METHOD lif_object~changed_by.
|
METHOD lif_object~changed_by.
|
||||||
rv_user = c_user_unknown. " todo
|
rv_user = c_user_unknown. " todo
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
|
@ -22,6 +22,22 @@ ENDCLASS. "lcl_object_dtel DEFINITION
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
CLASS lcl_object_enqu IMPLEMENTATION.
|
CLASS lcl_object_enqu IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD lif_object~has_changed_since.
|
||||||
|
|
||||||
|
DATA: lv_date TYPE dats,
|
||||||
|
lv_time TYPE tims,
|
||||||
|
lv_ts TYPE timestamp.
|
||||||
|
|
||||||
|
SELECT SINGLE as4date as4time FROM dd25l
|
||||||
|
INTO (lv_date, lv_time)
|
||||||
|
WHERE viewname = ms_item-obj_name
|
||||||
|
AND as4local = 'A'
|
||||||
|
AND as4vers = '0000'.
|
||||||
|
|
||||||
|
object_check_timestamp lv_date lv_time.
|
||||||
|
|
||||||
|
ENDMETHOD. "lif_object~has_changed_since
|
||||||
|
|
||||||
METHOD lif_object~changed_by.
|
METHOD lif_object~changed_by.
|
||||||
rv_user = c_user_unknown. " todo
|
rv_user = c_user_unknown. " todo
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
|
@ -14,6 +14,10 @@ ENDCLASS. "lcl_object_ensc
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
CLASS lcl_object_ensc IMPLEMENTATION.
|
CLASS lcl_object_ensc IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD lif_object~has_changed_since.
|
||||||
|
rv_changed = abap_true.
|
||||||
|
ENDMETHOD. "lif_object~has_changed_since
|
||||||
|
|
||||||
METHOD lif_object~changed_by.
|
METHOD lif_object~changed_by.
|
||||||
rv_user = c_user_unknown. " todo
|
rv_user = c_user_unknown. " todo
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
|
@ -84,6 +84,38 @@ CLASS lcl_object_fugr IMPLEMENTATION.
|
||||||
* function group SIFP
|
* function group SIFP
|
||||||
* function group SUNI
|
* function group SUNI
|
||||||
|
|
||||||
|
METHOD lif_object~has_changed_since.
|
||||||
|
|
||||||
|
DATA: lt_functab TYPE ty_rs38l_incl_tt,
|
||||||
|
lt_includes TYPE rso_t_objnm.
|
||||||
|
|
||||||
|
FIELD-SYMBOLS: <ls_func> LIKE LINE OF lt_functab,
|
||||||
|
<include_name> LIKE LINE OF lt_includes.
|
||||||
|
|
||||||
|
lt_includes = includes( ). " Main prog also included here
|
||||||
|
|
||||||
|
LOOP AT lt_includes ASSIGNING <include_name>.
|
||||||
|
rv_changed = check_prog_changed_since(
|
||||||
|
iv_program = <include_name>
|
||||||
|
iv_timestamp = iv_timestamp ).
|
||||||
|
IF rv_changed = abap_true.
|
||||||
|
RETURN.
|
||||||
|
ENDIF.
|
||||||
|
ENDLOOP.
|
||||||
|
|
||||||
|
lt_functab = functions( ).
|
||||||
|
|
||||||
|
LOOP AT lt_functab ASSIGNING <ls_func>.
|
||||||
|
rv_changed = check_prog_changed_since(
|
||||||
|
iv_program = <ls_func>-include
|
||||||
|
iv_timestamp = iv_timestamp ).
|
||||||
|
IF rv_changed = abap_true.
|
||||||
|
RETURN.
|
||||||
|
ENDIF.
|
||||||
|
ENDLOOP.
|
||||||
|
|
||||||
|
ENDMETHOD. "lif_object~has_changed_since
|
||||||
|
|
||||||
METHOD lif_object~changed_by.
|
METHOD lif_object~changed_by.
|
||||||
rv_user = c_user_unknown. " todo
|
rv_user = c_user_unknown. " todo
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
|
@ -33,6 +33,10 @@ ENDCLASS. "lcl_object_dtel DEFINITION
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
CLASS lcl_object_iarp IMPLEMENTATION.
|
CLASS lcl_object_iarp IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD lif_object~has_changed_since.
|
||||||
|
rv_changed = abap_true.
|
||||||
|
ENDMETHOD. "lif_object~has_changed_since
|
||||||
|
|
||||||
METHOD lif_object~changed_by.
|
METHOD lif_object~changed_by.
|
||||||
rv_user = c_user_unknown. " todo
|
rv_user = c_user_unknown. " todo
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
|
@ -33,6 +33,10 @@ ENDCLASS. "lcl_object_dtel DEFINITION
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
CLASS lcl_object_iasp IMPLEMENTATION.
|
CLASS lcl_object_iasp IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD lif_object~has_changed_since.
|
||||||
|
rv_changed = abap_true.
|
||||||
|
ENDMETHOD. "lif_object~has_changed_since
|
||||||
|
|
||||||
METHOD lif_object~changed_by.
|
METHOD lif_object~changed_by.
|
||||||
rv_user = c_user_unknown. " todo
|
rv_user = c_user_unknown. " todo
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
|
@ -33,6 +33,10 @@ ENDCLASS. "lcl_object_iatu DEFINITION
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
CLASS lcl_object_iatu IMPLEMENTATION.
|
CLASS lcl_object_iatu IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD lif_object~has_changed_since.
|
||||||
|
rv_changed = abap_true.
|
||||||
|
ENDMETHOD. "lif_object~has_changed_since
|
||||||
|
|
||||||
METHOD lif_object~changed_by.
|
METHOD lif_object~changed_by.
|
||||||
rv_user = c_user_unknown. " todo
|
rv_user = c_user_unknown. " todo
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
|
@ -22,6 +22,10 @@ ENDCLASS. "lcl_object_msag DEFINITION
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
CLASS lcl_object_msag IMPLEMENTATION.
|
CLASS lcl_object_msag IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD lif_object~has_changed_since.
|
||||||
|
rv_changed = abap_true.
|
||||||
|
ENDMETHOD. "lif_object~has_changed_since
|
||||||
|
|
||||||
METHOD lif_object~changed_by.
|
METHOD lif_object~changed_by.
|
||||||
|
|
||||||
SELECT SINGLE lastuser FROM t100a INTO rv_user
|
SELECT SINGLE lastuser FROM t100a INTO rv_user
|
||||||
|
|
|
@ -22,6 +22,10 @@ ENDCLASS. "lcl_object_nrob DEFINITION
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
CLASS lcl_object_nrob IMPLEMENTATION.
|
CLASS lcl_object_nrob IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD lif_object~has_changed_since.
|
||||||
|
rv_changed = abap_true.
|
||||||
|
ENDMETHOD. "lif_object~has_changed_since
|
||||||
|
|
||||||
METHOD lif_object~changed_by.
|
METHOD lif_object~changed_by.
|
||||||
|
|
||||||
DATA: lv_objectid TYPE cdhdr-objectid,
|
DATA: lv_objectid TYPE cdhdr-objectid,
|
||||||
|
|
|
@ -22,6 +22,10 @@ ENDCLASS. "lcl_object_para DEFINITION
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
CLASS lcl_object_para IMPLEMENTATION.
|
CLASS lcl_object_para IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD lif_object~has_changed_since.
|
||||||
|
rv_changed = abap_true.
|
||||||
|
ENDMETHOD. "lif_object~has_changed_since
|
||||||
|
|
||||||
METHOD lif_object~changed_by.
|
METHOD lif_object~changed_by.
|
||||||
* looks like "changed by user" is not stored in the database
|
* looks like "changed by user" is not stored in the database
|
||||||
rv_user = c_user_unknown.
|
rv_user = c_user_unknown.
|
||||||
|
|
|
@ -47,6 +47,10 @@ ENDCLASS. "lcl_object_PINF DEFINITION
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
CLASS lcl_object_pinf IMPLEMENTATION.
|
CLASS lcl_object_pinf IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD lif_object~has_changed_since.
|
||||||
|
rv_changed = abap_true.
|
||||||
|
ENDMETHOD. "lif_object~has_changed_since
|
||||||
|
|
||||||
METHOD lif_object~changed_by.
|
METHOD lif_object~changed_by.
|
||||||
|
|
||||||
SELECT SINGLE changed_by FROM intf INTO rv_user
|
SELECT SINGLE changed_by FROM intf INTO rv_user
|
||||||
|
|
|
@ -28,6 +28,14 @@ ENDCLASS. "lcl_object_prog DEFINITION
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
CLASS lcl_object_prog IMPLEMENTATION.
|
CLASS lcl_object_prog IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD lif_object~has_changed_since.
|
||||||
|
|
||||||
|
rv_changed = check_prog_changed_since(
|
||||||
|
iv_program = ms_item-obj_name
|
||||||
|
iv_timestamp = iv_timestamp ).
|
||||||
|
|
||||||
|
ENDMETHOD. "lif_object~has_changed_since
|
||||||
|
|
||||||
METHOD lif_object~changed_by.
|
METHOD lif_object~changed_by.
|
||||||
SELECT SINGLE unam FROM reposrc INTO rv_user
|
SELECT SINGLE unam FROM reposrc INTO rv_user
|
||||||
WHERE progname = ms_item-obj_name
|
WHERE progname = ms_item-obj_name
|
||||||
|
|
|
@ -27,6 +27,10 @@ ENDCLASS. "lcl_object_SFBF DEFINITION
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
CLASS lcl_object_sfbf IMPLEMENTATION.
|
CLASS lcl_object_sfbf IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD lif_object~has_changed_since.
|
||||||
|
rv_changed = abap_true.
|
||||||
|
ENDMETHOD. "lif_object~has_changed_since
|
||||||
|
|
||||||
METHOD lif_object~changed_by.
|
METHOD lif_object~changed_by.
|
||||||
|
|
||||||
rv_user = get( )->get_header_data( )-changedby.
|
rv_user = get( )->get_header_data( )-changedby.
|
||||||
|
|
|
@ -27,6 +27,10 @@ ENDCLASS. "lcl_object_SFBS DEFINITION
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
CLASS lcl_object_sfbs IMPLEMENTATION.
|
CLASS lcl_object_sfbs IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD lif_object~has_changed_since.
|
||||||
|
rv_changed = abap_true.
|
||||||
|
ENDMETHOD. "lif_object~has_changed_since
|
||||||
|
|
||||||
METHOD lif_object~changed_by.
|
METHOD lif_object~changed_by.
|
||||||
|
|
||||||
rv_user = get( )->get_header_data( )-changedby.
|
rv_user = get( )->get_header_data( )-changedby.
|
||||||
|
|
|
@ -27,6 +27,10 @@ ENDCLASS. "lcl_object_sfsw DEFINITION
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
CLASS lcl_object_sfsw IMPLEMENTATION.
|
CLASS lcl_object_sfsw IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD lif_object~has_changed_since.
|
||||||
|
rv_changed = abap_true.
|
||||||
|
ENDMETHOD. "lif_object~has_changed_since
|
||||||
|
|
||||||
METHOD lif_object~changed_by.
|
METHOD lif_object~changed_by.
|
||||||
|
|
||||||
rv_user = get( )->get_header_data( )-changedby.
|
rv_user = get( )->get_header_data( )-changedby.
|
||||||
|
|
|
@ -54,6 +54,10 @@ ENDCLASS. "lcl_object_shi3 DEFINITION
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
CLASS lcl_object_shi3 IMPLEMENTATION.
|
CLASS lcl_object_shi3 IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD lif_object~has_changed_since.
|
||||||
|
rv_changed = abap_true.
|
||||||
|
ENDMETHOD. "lif_object~has_changed_since
|
||||||
|
|
||||||
METHOD lif_object~changed_by.
|
METHOD lif_object~changed_by.
|
||||||
rv_user = c_user_unknown. " todo
|
rv_user = c_user_unknown. " todo
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
|
@ -22,6 +22,21 @@ ENDCLASS. "lcl_object_dtel DEFINITION
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
CLASS lcl_object_shlp IMPLEMENTATION.
|
CLASS lcl_object_shlp IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD lif_object~has_changed_since.
|
||||||
|
|
||||||
|
DATA: lv_date TYPE dats,
|
||||||
|
lv_time TYPE tims,
|
||||||
|
lv_ts TYPE timestamp.
|
||||||
|
|
||||||
|
SELECT SINGLE as4date as4time FROM dd30l
|
||||||
|
INTO (lv_date, lv_time)
|
||||||
|
WHERE shlpname = ms_item-obj_name
|
||||||
|
AND as4local = 'A'.
|
||||||
|
|
||||||
|
object_check_timestamp lv_date lv_time.
|
||||||
|
|
||||||
|
ENDMETHOD. "lif_object~has_changed_since
|
||||||
|
|
||||||
METHOD lif_object~changed_by.
|
METHOD lif_object~changed_by.
|
||||||
|
|
||||||
SELECT SINGLE as4user FROM dd30l INTO rv_user
|
SELECT SINGLE as4user FROM dd30l INTO rv_user
|
||||||
|
|
|
@ -62,6 +62,10 @@ ENDCLASS. "lcl_object_sicf DEFINITION
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
CLASS lcl_object_sicf IMPLEMENTATION.
|
CLASS lcl_object_sicf IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD lif_object~has_changed_since.
|
||||||
|
rv_changed = abap_true.
|
||||||
|
ENDMETHOD. "lif_object~has_changed_since
|
||||||
|
|
||||||
METHOD lif_object~changed_by.
|
METHOD lif_object~changed_by.
|
||||||
|
|
||||||
DATA: ls_icfservice TYPE icfservice.
|
DATA: ls_icfservice TYPE icfservice.
|
||||||
|
|
|
@ -42,6 +42,10 @@ ENDCLASS. "lcl_object_smim DEFINITION
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
CLASS lcl_object_smim IMPLEMENTATION.
|
CLASS lcl_object_smim IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD lif_object~has_changed_since.
|
||||||
|
rv_changed = abap_true.
|
||||||
|
ENDMETHOD. "lif_object~has_changed_since
|
||||||
|
|
||||||
METHOD lif_object~changed_by.
|
METHOD lif_object~changed_by.
|
||||||
|
|
||||||
DATA: lv_loio TYPE sdok_docid.
|
DATA: lv_loio TYPE sdok_docid.
|
||||||
|
|
|
@ -22,6 +22,10 @@ ENDCLASS. "lcl_object_splo DEFINITION
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
CLASS lcl_object_splo IMPLEMENTATION.
|
CLASS lcl_object_splo IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD lif_object~has_changed_since.
|
||||||
|
rv_changed = abap_true.
|
||||||
|
ENDMETHOD. "lif_object~has_changed_since
|
||||||
|
|
||||||
METHOD lif_object~changed_by.
|
METHOD lif_object~changed_by.
|
||||||
|
|
||||||
SELECT SINGLE chgname1 FROM tsp1d INTO rv_user
|
SELECT SINGLE chgname1 FROM tsp1d INTO rv_user
|
||||||
|
|
|
@ -22,6 +22,10 @@ ENDCLASS. "lcl_object_dtel DEFINITION
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
CLASS lcl_object_ssfo IMPLEMENTATION.
|
CLASS lcl_object_ssfo IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD lif_object~has_changed_since.
|
||||||
|
rv_changed = abap_true.
|
||||||
|
ENDMETHOD. "lif_object~has_changed_since
|
||||||
|
|
||||||
METHOD lif_object~changed_by.
|
METHOD lif_object~changed_by.
|
||||||
|
|
||||||
SELECT SINGLE lastuser FROM stxfadm INTO rv_user
|
SELECT SINGLE lastuser FROM stxfadm INTO rv_user
|
||||||
|
|
|
@ -27,6 +27,10 @@ ENDCLASS. "lcl_object_ssst DEFINITION
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
CLASS lcl_object_ssst IMPLEMENTATION.
|
CLASS lcl_object_ssst IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD lif_object~has_changed_since.
|
||||||
|
rv_changed = abap_true.
|
||||||
|
ENDMETHOD. "lif_object~has_changed_since
|
||||||
|
|
||||||
METHOD lif_object~changed_by.
|
METHOD lif_object~changed_by.
|
||||||
|
|
||||||
SELECT SINGLE lastuser FROM stxsadm INTO rv_user
|
SELECT SINGLE lastuser FROM stxsadm INTO rv_user
|
||||||
|
|
|
@ -22,6 +22,10 @@ ENDCLASS. "lcl_object_susc DEFINITION
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
CLASS lcl_object_susc IMPLEMENTATION.
|
CLASS lcl_object_susc IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD lif_object~has_changed_since.
|
||||||
|
rv_changed = abap_true.
|
||||||
|
ENDMETHOD. "lif_object~has_changed_since
|
||||||
|
|
||||||
METHOD lif_object~changed_by.
|
METHOD lif_object~changed_by.
|
||||||
rv_user = c_user_unknown. " todo
|
rv_user = c_user_unknown. " todo
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
|
@ -22,6 +22,10 @@ ENDCLASS. "lcl_object_suso DEFINITION
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
CLASS lcl_object_suso IMPLEMENTATION.
|
CLASS lcl_object_suso IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD lif_object~has_changed_since.
|
||||||
|
rv_changed = abap_true.
|
||||||
|
ENDMETHOD. "lif_object~has_changed_since
|
||||||
|
|
||||||
METHOD lif_object~changed_by.
|
METHOD lif_object~changed_by.
|
||||||
rv_user = c_user_unknown. " todo
|
rv_user = c_user_unknown. " todo
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
|
@ -22,6 +22,43 @@ ENDCLASS. "lcl_object_dtel DEFINITION
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
CLASS lcl_object_tabl IMPLEMENTATION.
|
CLASS lcl_object_tabl IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD lif_object~has_changed_since.
|
||||||
|
|
||||||
|
DATA: lv_date TYPE dats,
|
||||||
|
lv_time TYPE tims,
|
||||||
|
lv_ts TYPE timestamp,
|
||||||
|
lt_indexes TYPE STANDARD TABLE OF dd09l.
|
||||||
|
|
||||||
|
FIELD-SYMBOLS <ls_index> LIKE LINE OF lt_indexes.
|
||||||
|
|
||||||
|
SELECT SINGLE as4date as4time FROM dd02l " Table
|
||||||
|
INTO (lv_date, lv_time)
|
||||||
|
WHERE tabname = ms_item-obj_name
|
||||||
|
AND as4local = 'A'
|
||||||
|
AND as4vers = '0000'.
|
||||||
|
|
||||||
|
object_check_timestamp lv_date lv_time.
|
||||||
|
|
||||||
|
SELECT SINGLE as4date as4time FROM dd09l " Table tech settings
|
||||||
|
INTO (lv_date, lv_time)
|
||||||
|
WHERE tabname = ms_item-obj_name
|
||||||
|
AND as4local = 'A'
|
||||||
|
AND as4vers = '0000'.
|
||||||
|
|
||||||
|
object_check_timestamp lv_date lv_time.
|
||||||
|
|
||||||
|
SELECT as4date as4time FROM dd12l " Table tech settings
|
||||||
|
INTO CORRESPONDING FIELDS OF TABLE lt_indexes
|
||||||
|
WHERE sqltab = ms_item-obj_name
|
||||||
|
AND as4local = 'A'
|
||||||
|
AND as4vers = '0000' ##TOO_MANY_ITAB_FIELDS.
|
||||||
|
|
||||||
|
LOOP AT lt_indexes ASSIGNING <ls_index>.
|
||||||
|
object_check_timestamp <ls_index>-as4date <ls_index>-as4time.
|
||||||
|
ENDLOOP.
|
||||||
|
|
||||||
|
ENDMETHOD. "lif_object~has_changed_since
|
||||||
|
|
||||||
METHOD lif_object~changed_by.
|
METHOD lif_object~changed_by.
|
||||||
|
|
||||||
SELECT SINGLE as4user FROM dd02l INTO rv_user
|
SELECT SINGLE as4user FROM dd02l INTO rv_user
|
||||||
|
|
|
@ -22,6 +22,10 @@ ENDCLASS. "lcl_object_tobj DEFINITION
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
CLASS lcl_object_tobj IMPLEMENTATION.
|
CLASS lcl_object_tobj IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD lif_object~has_changed_since.
|
||||||
|
rv_changed = abap_true.
|
||||||
|
ENDMETHOD. "lif_object~has_changed_since
|
||||||
|
|
||||||
METHOD lif_object~changed_by.
|
METHOD lif_object~changed_by.
|
||||||
rv_user = c_user_unknown. " todo
|
rv_user = c_user_unknown. " todo
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
|
@ -47,6 +47,10 @@ ENDCLASS. "lcl_object_TRAN DEFINITION
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
CLASS lcl_object_tran IMPLEMENTATION.
|
CLASS lcl_object_tran IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD lif_object~has_changed_since.
|
||||||
|
rv_changed = abap_true.
|
||||||
|
ENDMETHOD. "lif_object~has_changed_since
|
||||||
|
|
||||||
METHOD lif_object~changed_by.
|
METHOD lif_object~changed_by.
|
||||||
rv_user = c_user_unknown. " todo
|
rv_user = c_user_unknown. " todo
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
|
@ -22,6 +22,21 @@ ENDCLASS. "lcl_object_dtel DEFINITION
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
CLASS lcl_object_ttyp IMPLEMENTATION.
|
CLASS lcl_object_ttyp IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD lif_object~has_changed_since.
|
||||||
|
|
||||||
|
DATA: lv_date TYPE dats,
|
||||||
|
lv_time TYPE tims,
|
||||||
|
lv_ts TYPE timestamp.
|
||||||
|
|
||||||
|
SELECT SINGLE as4date as4time FROM dd40l
|
||||||
|
INTO (lv_date, lv_time)
|
||||||
|
WHERE typename = ms_item-obj_name
|
||||||
|
AND as4local = 'A'.
|
||||||
|
|
||||||
|
object_check_timestamp lv_date lv_time.
|
||||||
|
|
||||||
|
ENDMETHOD. "lif_object~has_changed_since
|
||||||
|
|
||||||
METHOD lif_object~changed_by.
|
METHOD lif_object~changed_by.
|
||||||
|
|
||||||
SELECT SINGLE as4user FROM dd40l INTO rv_user
|
SELECT SINGLE as4user FROM dd40l INTO rv_user
|
||||||
|
|
|
@ -35,6 +35,10 @@ ENDCLASS. "lcl_object_type DEFINITION
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
CLASS lcl_object_type IMPLEMENTATION.
|
CLASS lcl_object_type IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD lif_object~has_changed_since.
|
||||||
|
rv_changed = abap_true.
|
||||||
|
ENDMETHOD. "lif_object~has_changed_since
|
||||||
|
|
||||||
METHOD lif_object~changed_by.
|
METHOD lif_object~changed_by.
|
||||||
rv_user = c_user_unknown. " todo
|
rv_user = c_user_unknown. " todo
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
|
@ -26,6 +26,10 @@ ENDCLASS. "lcl_object_vcls DEFINITION
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
CLASS lcl_object_vcls IMPLEMENTATION.
|
CLASS lcl_object_vcls IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD lif_object~has_changed_since.
|
||||||
|
rv_changed = abap_true.
|
||||||
|
ENDMETHOD. "lif_object~has_changed_since
|
||||||
|
|
||||||
METHOD lif_object~changed_by.
|
METHOD lif_object~changed_by.
|
||||||
rv_user = c_user_unknown. " todo
|
rv_user = c_user_unknown. " todo
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
|
@ -22,6 +22,30 @@ ENDCLASS. "lcl_object_dtel DEFINITION
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
CLASS lcl_object_view IMPLEMENTATION.
|
CLASS lcl_object_view IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD lif_object~has_changed_since.
|
||||||
|
|
||||||
|
DATA: lv_date TYPE dats,
|
||||||
|
lv_time TYPE tims,
|
||||||
|
lv_ts TYPE timestamp.
|
||||||
|
|
||||||
|
SELECT SINGLE as4date as4time FROM dd25l " View
|
||||||
|
INTO (lv_date, lv_time)
|
||||||
|
WHERE viewname = ms_item-obj_name
|
||||||
|
AND as4local = 'A'
|
||||||
|
AND as4vers = '0000'.
|
||||||
|
|
||||||
|
object_check_timestamp lv_date lv_time.
|
||||||
|
|
||||||
|
SELECT SINGLE as4date as4time FROM dd09l " Table tech settings
|
||||||
|
INTO (lv_date, lv_time)
|
||||||
|
WHERE tabname = ms_item-obj_name
|
||||||
|
AND as4local = 'A'
|
||||||
|
AND as4vers = '0000'.
|
||||||
|
|
||||||
|
object_check_timestamp lv_date lv_time.
|
||||||
|
|
||||||
|
ENDMETHOD. "lif_object~has_changed_since
|
||||||
|
|
||||||
METHOD lif_object~changed_by.
|
METHOD lif_object~changed_by.
|
||||||
|
|
||||||
SELECT SINGLE as4user FROM dd25l INTO rv_user
|
SELECT SINGLE as4user FROM dd25l INTO rv_user
|
||||||
|
|
|
@ -24,6 +24,10 @@ ENDCLASS. "lcl_object_W3SUPER DEFINITION
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
CLASS lcl_object_w3super IMPLEMENTATION.
|
CLASS lcl_object_w3super IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD lif_object~has_changed_since.
|
||||||
|
rv_changed = abap_true.
|
||||||
|
ENDMETHOD. "lif_object~has_changed_since
|
||||||
|
|
||||||
METHOD lif_object~changed_by.
|
METHOD lif_object~changed_by.
|
||||||
rv_user = c_user_unknown. " todo
|
rv_user = c_user_unknown. " todo
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
|
@ -34,6 +34,10 @@ ENDCLASS. "lcl_object_wdya DEFINITION
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
CLASS lcl_object_wdya IMPLEMENTATION.
|
CLASS lcl_object_wdya IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD lif_object~has_changed_since.
|
||||||
|
rv_changed = abap_true.
|
||||||
|
ENDMETHOD. "lif_object~has_changed_since
|
||||||
|
|
||||||
METHOD lif_object~changed_by.
|
METHOD lif_object~changed_by.
|
||||||
rv_user = c_user_unknown. " todo
|
rv_user = c_user_unknown. " todo
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
|
@ -68,6 +68,10 @@ ENDCLASS. "lcl_object_wdyn DEFINITION
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
CLASS lcl_object_wdyn IMPLEMENTATION.
|
CLASS lcl_object_wdyn IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD lif_object~has_changed_since.
|
||||||
|
rv_changed = abap_true.
|
||||||
|
ENDMETHOD. "lif_object~has_changed_since
|
||||||
|
|
||||||
METHOD lif_object~changed_by.
|
METHOD lif_object~changed_by.
|
||||||
rv_user = c_user_unknown. " todo
|
rv_user = c_user_unknown. " todo
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
|
@ -62,6 +62,10 @@ ENDCLASS. "lcl_object_SFBS DEFINITION
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
CLASS lcl_object_webi IMPLEMENTATION.
|
CLASS lcl_object_webi IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD lif_object~has_changed_since.
|
||||||
|
rv_changed = abap_true.
|
||||||
|
ENDMETHOD. "lif_object~has_changed_since
|
||||||
|
|
||||||
METHOD lif_object~changed_by.
|
METHOD lif_object~changed_by.
|
||||||
rv_user = c_user_unknown. " todo
|
rv_user = c_user_unknown. " todo
|
||||||
ENDMETHOD. "lif_object~changed_by
|
ENDMETHOD. "lif_object~changed_by
|
||||||
|
|
|
@ -28,6 +28,10 @@ ENDCLASS. "lcl_object_xslt DEFINITION
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
CLASS lcl_object_xslt IMPLEMENTATION.
|
CLASS lcl_object_xslt IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD lif_object~has_changed_since.
|
||||||
|
rv_changed = abap_true.
|
||||||
|
ENDMETHOD. "lif_object~has_changed_since
|
||||||
|
|
||||||
METHOD lif_object~changed_by.
|
METHOD lif_object~changed_by.
|
||||||
rv_user = c_user_unknown. " todo
|
rv_user = c_user_unknown. " todo
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
|
@ -2,6 +2,26 @@
|
||||||
*& Include ZABAPGIT_OBJECTS
|
*& Include ZABAPGIT_OBJECTS
|
||||||
*&---------------------------------------------------------------------*
|
*&---------------------------------------------------------------------*
|
||||||
|
|
||||||
|
* Macros
|
||||||
|
|
||||||
|
DEFINE object_check_timestamp.
|
||||||
|
IF sy-subrc = 0 AND &1 IS NOT INITIAL AND &2 IS NOT INITIAL.
|
||||||
|
cl_abap_tstmp=>systemtstmp_syst2utc(
|
||||||
|
EXPORTING syst_date = &1
|
||||||
|
syst_time = &2
|
||||||
|
IMPORTING utc_tstmp = lv_ts ).
|
||||||
|
IF lv_ts < iv_timestamp.
|
||||||
|
rv_changed = abap_false. " Unchanged
|
||||||
|
ELSE.
|
||||||
|
rv_changed = abap_true.
|
||||||
|
RETURN.
|
||||||
|
ENDIF.
|
||||||
|
ELSE. " Not found? => changed
|
||||||
|
rv_changed = abap_true.
|
||||||
|
RETURN.
|
||||||
|
ENDIF.
|
||||||
|
END-OF-DEFINITION.
|
||||||
|
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
* CLASS lcl_objects_activation DEFINITION
|
* CLASS lcl_objects_activation DEFINITION
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
|
@ -230,7 +250,11 @@ INTERFACE lif_object.
|
||||||
jump
|
jump
|
||||||
RAISING lcx_exception,
|
RAISING lcx_exception,
|
||||||
get_metadata
|
get_metadata
|
||||||
RETURNING VALUE(rs_metadata) TYPE ty_metadata.
|
RETURNING VALUE(rs_metadata) TYPE ty_metadata,
|
||||||
|
has_changed_since
|
||||||
|
IMPORTING iv_timestamp TYPE timestamp
|
||||||
|
RETURNING VALUE(rv_changed) TYPE abap_bool
|
||||||
|
RAISING lcx_exception.
|
||||||
|
|
||||||
DATA: mo_files TYPE REF TO lcl_objects_files.
|
DATA: mo_files TYPE REF TO lcl_objects_files.
|
||||||
|
|
||||||
|
@ -435,6 +459,7 @@ ENDCLASS. "lcl_objects_files IMPLEMENTATION
|
||||||
CLASS lcl_objects_super DEFINITION ABSTRACT.
|
CLASS lcl_objects_super DEFINITION ABSTRACT.
|
||||||
|
|
||||||
PUBLIC SECTION.
|
PUBLIC SECTION.
|
||||||
|
|
||||||
METHODS:
|
METHODS:
|
||||||
constructor
|
constructor
|
||||||
IMPORTING
|
IMPORTING
|
||||||
|
@ -497,6 +522,10 @@ ENDCLASS. "lcl_objects_bridge DEFINITION
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
CLASS lcl_objects_bridge IMPLEMENTATION.
|
CLASS lcl_objects_bridge IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD lif_object~has_changed_since.
|
||||||
|
rv_changed = abap_true.
|
||||||
|
ENDMETHOD. "lif_object~has_changed_since
|
||||||
|
|
||||||
METHOD lif_object~get_metadata.
|
METHOD lif_object~get_metadata.
|
||||||
|
|
||||||
CALL METHOD mo_plugin->('ZIF_ABAPGIT_PLUGIN~GET_METADATA')
|
CALL METHOD mo_plugin->('ZIF_ABAPGIT_PLUGIN~GET_METADATA')
|
||||||
|
@ -706,6 +735,7 @@ CLASS lcl_objects_program DEFINITION INHERITING FROM lcl_objects_super.
|
||||||
RAISING lcx_exception.
|
RAISING lcx_exception.
|
||||||
|
|
||||||
PROTECTED SECTION.
|
PROTECTED SECTION.
|
||||||
|
|
||||||
TYPES: ty_spaces_tt TYPE STANDARD TABLE OF i WITH DEFAULT KEY.
|
TYPES: ty_spaces_tt TYPE STANDARD TABLE OF i WITH DEFAULT KEY.
|
||||||
|
|
||||||
TYPES: BEGIN OF ty_tpool.
|
TYPES: BEGIN OF ty_tpool.
|
||||||
|
@ -759,6 +789,12 @@ CLASS lcl_objects_program DEFINITION INHERITING FROM lcl_objects_super.
|
||||||
is_cua TYPE ty_cua
|
is_cua TYPE ty_cua
|
||||||
RAISING lcx_exception.
|
RAISING lcx_exception.
|
||||||
|
|
||||||
|
METHODS check_prog_changed_since
|
||||||
|
IMPORTING iv_program TYPE programm
|
||||||
|
iv_timestamp TYPE timestamp
|
||||||
|
iv_skip_gui TYPE abap_bool DEFAULT abap_false
|
||||||
|
RETURNING VALUE(rv_changed) TYPE abap_bool.
|
||||||
|
|
||||||
CLASS-METHODS:
|
CLASS-METHODS:
|
||||||
add_tpool
|
add_tpool
|
||||||
IMPORTING it_tpool TYPE textpool_table
|
IMPORTING it_tpool TYPE textpool_table
|
||||||
|
@ -1309,6 +1345,55 @@ CLASS lcl_objects_program IMPLEMENTATION.
|
||||||
|
|
||||||
ENDMETHOD. "deserialize_cua
|
ENDMETHOD. "deserialize_cua
|
||||||
|
|
||||||
|
METHOD check_prog_changed_since.
|
||||||
|
|
||||||
|
DATA: lv_date TYPE dats,
|
||||||
|
lv_time TYPE tims,
|
||||||
|
lv_ts TYPE timestamp,
|
||||||
|
lt_screens TYPE STANDARD TABLE OF d020s,
|
||||||
|
lt_eudb TYPE STANDARD TABLE OF eudb.
|
||||||
|
|
||||||
|
FIELD-SYMBOLS: <ls_screen> LIKE LINE OF lt_screens,
|
||||||
|
<ls_eudb> LIKE LINE OF lt_eudb.
|
||||||
|
|
||||||
|
SELECT SINGLE udat utime FROM reposrc " Program
|
||||||
|
INTO (lv_date, lv_time)
|
||||||
|
WHERE progname = iv_program
|
||||||
|
AND r3state = 'A'.
|
||||||
|
|
||||||
|
object_check_timestamp lv_date lv_time.
|
||||||
|
|
||||||
|
SELECT SINGLE udat utime FROM repotext " Program text pool
|
||||||
|
INTO (lv_date, lv_time)
|
||||||
|
WHERE progname = iv_program
|
||||||
|
AND r3state = 'A'.
|
||||||
|
|
||||||
|
object_check_timestamp lv_date lv_time.
|
||||||
|
|
||||||
|
IF iv_skip_gui = abap_true.
|
||||||
|
RETURN.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
SELECT dgen tgen FROM d020s " Screens
|
||||||
|
INTO CORRESPONDING FIELDS OF TABLE lt_screens
|
||||||
|
WHERE prog = iv_program ##TOO_MANY_ITAB_FIELDS.
|
||||||
|
|
||||||
|
LOOP AT lt_screens ASSIGNING <ls_screen>.
|
||||||
|
object_check_timestamp <ls_screen>-dgen <ls_screen>-tgen.
|
||||||
|
ENDLOOP.
|
||||||
|
|
||||||
|
SELECT vdatum vzeit FROM eudb " GUI
|
||||||
|
INTO CORRESPONDING FIELDS OF TABLE lt_eudb
|
||||||
|
WHERE relid = 'CU'
|
||||||
|
AND name = iv_program
|
||||||
|
AND srtf2 = 0 ##TOO_MANY_ITAB_FIELDS.
|
||||||
|
|
||||||
|
LOOP AT lt_eudb ASSIGNING <ls_eudb>.
|
||||||
|
object_check_timestamp <ls_eudb>-vdatum <ls_eudb>-vzeit.
|
||||||
|
ENDLOOP.
|
||||||
|
|
||||||
|
ENDMETHOD. "check_prog_changed_since
|
||||||
|
|
||||||
ENDCLASS. "lcl_objects_program IMPLEMENTATION
|
ENDCLASS. "lcl_objects_program IMPLEMENTATION
|
||||||
|
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
|
@ -1435,6 +1520,12 @@ CLASS lcl_objects DEFINITION FINAL.
|
||||||
RETURNING VALUE(rv_user) TYPE xubname
|
RETURNING VALUE(rv_user) TYPE xubname
|
||||||
RAISING lcx_exception.
|
RAISING lcx_exception.
|
||||||
|
|
||||||
|
CLASS-METHODS has_changed_since
|
||||||
|
IMPORTING is_item TYPE ty_item
|
||||||
|
iv_timestamp TYPE timestamp
|
||||||
|
RETURNING VALUE(rv_changed) TYPE abap_bool
|
||||||
|
RAISING lcx_exception.
|
||||||
|
|
||||||
CLASS-METHODS is_supported
|
CLASS-METHODS is_supported
|
||||||
IMPORTING is_item TYPE ty_item
|
IMPORTING is_item TYPE ty_item
|
||||||
RETURNING VALUE(rv_bool) TYPE abap_bool.
|
RETURNING VALUE(rv_bool) TYPE abap_bool.
|
||||||
|
|
|
@ -172,6 +172,19 @@ CLASS lcl_objects IMPLEMENTATION.
|
||||||
|
|
||||||
ENDMETHOD. "create_object
|
ENDMETHOD. "create_object
|
||||||
|
|
||||||
|
METHOD has_changed_since.
|
||||||
|
rv_changed = abap_true. " Assume changed
|
||||||
|
|
||||||
|
IF is_supported( is_item ) = abap_false.
|
||||||
|
RETURN. " Will requre serialize which will log the error
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
rv_changed = create_object(
|
||||||
|
is_item = is_item
|
||||||
|
iv_language = gc_english )->has_changed_since( iv_timestamp ).
|
||||||
|
|
||||||
|
ENDMETHOD. "has_changed_since
|
||||||
|
|
||||||
METHOD is_supported.
|
METHOD is_supported.
|
||||||
|
|
||||||
TRY.
|
TRY.
|
||||||
|
|
|
@ -38,7 +38,9 @@ CLASS lcl_repo DEFINITION ABSTRACT FRIENDS lcl_repo_srv.
|
||||||
deserialize
|
deserialize
|
||||||
RAISING lcx_exception,
|
RAISING lcx_exception,
|
||||||
refresh
|
refresh
|
||||||
|
IMPORTING iv_drop_cache TYPE abap_bool DEFAULT abap_false
|
||||||
RAISING lcx_exception,
|
RAISING lcx_exception,
|
||||||
|
refresh_local, " For testing purposes, maybe removed later
|
||||||
build_local_checksums
|
build_local_checksums
|
||||||
RETURNING VALUE(rt_checksums) TYPE lcl_persistence_repo=>ty_local_checksum_tt
|
RETURNING VALUE(rt_checksums) TYPE lcl_persistence_repo=>ty_local_checksum_tt
|
||||||
RAISING lcx_exception,
|
RAISING lcx_exception,
|
||||||
|
@ -51,6 +53,8 @@ CLASS lcl_repo DEFINITION ABSTRACT FRIENDS lcl_repo_srv.
|
||||||
DATA: mt_local TYPE ty_files_item_tt,
|
DATA: mt_local TYPE ty_files_item_tt,
|
||||||
mt_remote TYPE ty_files_tt,
|
mt_remote TYPE ty_files_tt,
|
||||||
mo_dot_abapgit TYPE REF TO lcl_dot_abapgit,
|
mo_dot_abapgit TYPE REF TO lcl_dot_abapgit,
|
||||||
|
mv_do_local_refresh TYPE abap_bool,
|
||||||
|
mv_last_serialization TYPE timestamp,
|
||||||
ms_data TYPE lcl_persistence_repo=>ty_repo.
|
ms_data TYPE lcl_persistence_repo=>ty_repo.
|
||||||
|
|
||||||
METHODS:
|
METHODS:
|
||||||
|
@ -121,7 +125,8 @@ CLASS lcl_repo_online DEFINITION INHERITING FROM lcl_repo FINAL.
|
||||||
mt_objects TYPE ty_objects_tt,
|
mt_objects TYPE ty_objects_tt,
|
||||||
mv_branch TYPE ty_sha1,
|
mv_branch TYPE ty_sha1,
|
||||||
mv_initialized TYPE abap_bool,
|
mv_initialized TYPE abap_bool,
|
||||||
mo_branches TYPE REF TO lcl_git_branch_list.
|
mo_branches TYPE REF TO lcl_git_branch_list,
|
||||||
|
mt_status TYPE ty_results_tt.
|
||||||
|
|
||||||
METHODS:
|
METHODS:
|
||||||
handle_stage_ignore
|
handle_stage_ignore
|
||||||
|
|
|
@ -42,8 +42,11 @@ CLASS lcl_repo_online IMPLEMENTATION.
|
||||||
|
|
||||||
initialize( ).
|
initialize( ).
|
||||||
|
|
||||||
rt_results = lcl_file_status=>status( io_repo = me
|
IF lines( mt_status ) = 0.
|
||||||
|
mt_status = lcl_file_status=>status( io_repo = me
|
||||||
io_log = io_log ).
|
io_log = io_log ).
|
||||||
|
ENDIF.
|
||||||
|
rt_results = mt_status.
|
||||||
|
|
||||||
ENDMETHOD. "status
|
ENDMETHOD. "status
|
||||||
|
|
||||||
|
@ -65,7 +68,8 @@ CLASS lcl_repo_online IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD refresh.
|
METHOD refresh.
|
||||||
|
|
||||||
super->refresh( ).
|
super->refresh( iv_drop_cache ).
|
||||||
|
CLEAR mt_status.
|
||||||
|
|
||||||
lcl_progress=>show( iv_key = 'Fetch'
|
lcl_progress=>show( iv_key = 'Fetch'
|
||||||
iv_current = 1
|
iv_current = 1
|
||||||
|
@ -365,7 +369,7 @@ CLASS lcl_repo IMPLEMENTATION.
|
||||||
|
|
||||||
lcl_objects=>deserialize( me ).
|
lcl_objects=>deserialize( me ).
|
||||||
|
|
||||||
CLEAR mt_local.
|
CLEAR: mt_local, mv_last_serialization.
|
||||||
|
|
||||||
set( it_checksums = build_local_checksums( ) ).
|
set( it_checksums = build_local_checksums( ) ).
|
||||||
|
|
||||||
|
@ -381,12 +385,17 @@ CLASS lcl_repo IMPLEMENTATION.
|
||||||
ls_item TYPE ty_item,
|
ls_item TYPE ty_item,
|
||||||
lt_files TYPE ty_files_tt.
|
lt_files TYPE ty_files_tt.
|
||||||
|
|
||||||
|
DATA: lt_cache TYPE SORTED TABLE OF ty_file_item
|
||||||
|
WITH NON-UNIQUE KEY item.
|
||||||
|
|
||||||
FIELD-SYMBOLS: <ls_file> LIKE LINE OF lt_files,
|
FIELD-SYMBOLS: <ls_file> LIKE LINE OF lt_files,
|
||||||
<ls_return> LIKE LINE OF rt_files,
|
<ls_return> LIKE LINE OF rt_files,
|
||||||
|
<ls_cache> LIKE LINE OF lt_cache,
|
||||||
<ls_tadir> LIKE LINE OF lt_tadir.
|
<ls_tadir> LIKE LINE OF lt_tadir.
|
||||||
|
|
||||||
|
|
||||||
IF lines( mt_local ) > 0.
|
" Serialization happened before and no refresh request
|
||||||
|
IF mv_last_serialization IS NOT INITIAL AND mv_do_local_refresh = abap_false.
|
||||||
rt_files = mt_local.
|
rt_files = mt_local.
|
||||||
RETURN.
|
RETURN.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
@ -401,16 +410,32 @@ CLASS lcl_repo IMPLEMENTATION.
|
||||||
<ls_return>-file-sha1 = lcl_hash=>sha1( iv_type = gc_type-blob
|
<ls_return>-file-sha1 = lcl_hash=>sha1( iv_type = gc_type-blob
|
||||||
iv_data = <ls_return>-file-data ).
|
iv_data = <ls_return>-file-data ).
|
||||||
|
|
||||||
|
lt_cache = mt_local.
|
||||||
lt_tadir = lcl_tadir=>read( get_package( ) ).
|
lt_tadir = lcl_tadir=>read( get_package( ) ).
|
||||||
LOOP AT lt_tadir ASSIGNING <ls_tadir>.
|
LOOP AT lt_tadir ASSIGNING <ls_tadir>.
|
||||||
|
|
||||||
|
ls_item-obj_type = <ls_tadir>-object.
|
||||||
|
ls_item-obj_name = <ls_tadir>-obj_name.
|
||||||
|
|
||||||
|
IF mv_last_serialization IS NOT INITIAL. " Try to fetch from cache
|
||||||
|
READ TABLE lt_cache TRANSPORTING NO FIELDS
|
||||||
|
WITH KEY item = ls_item.
|
||||||
|
IF sy-subrc = 0 " There is something in cache and the object is unchanged
|
||||||
|
AND abap_false = lcl_objects=>has_changed_since( is_item = ls_item
|
||||||
|
iv_timestamp = mv_last_serialization ).
|
||||||
|
LOOP AT lt_cache ASSIGNING <ls_cache> WHERE item = ls_item.
|
||||||
|
APPEND <ls_cache> TO rt_files.
|
||||||
|
ENDLOOP.
|
||||||
|
|
||||||
|
CONTINUE.
|
||||||
|
ENDIF.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
lcl_progress=>show( iv_key = 'Serialize'
|
lcl_progress=>show( iv_key = 'Serialize'
|
||||||
iv_current = sy-tabix
|
iv_current = sy-tabix
|
||||||
iv_total = lines( lt_tadir )
|
iv_total = lines( lt_tadir )
|
||||||
iv_text = <ls_tadir>-obj_name ) ##NO_TEXT.
|
iv_text = <ls_tadir>-obj_name ) ##NO_TEXT.
|
||||||
|
|
||||||
ls_item-obj_type = <ls_tadir>-object.
|
|
||||||
ls_item-obj_name = <ls_tadir>-obj_name.
|
|
||||||
|
|
||||||
lt_files = lcl_objects=>serialize(
|
lt_files = lcl_objects=>serialize(
|
||||||
is_item = ls_item
|
is_item = ls_item
|
||||||
iv_language = get_master_language( )
|
iv_language = get_master_language( )
|
||||||
|
@ -425,7 +450,9 @@ CLASS lcl_repo IMPLEMENTATION.
|
||||||
ENDLOOP.
|
ENDLOOP.
|
||||||
ENDLOOP.
|
ENDLOOP.
|
||||||
|
|
||||||
|
GET TIME STAMP FIELD mv_last_serialization.
|
||||||
mt_local = rt_files.
|
mt_local = rt_files.
|
||||||
|
mv_do_local_refresh = abap_false. " Fulfill refresh
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
@ -449,9 +476,19 @@ CLASS lcl_repo IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
METHOD refresh.
|
METHOD refresh.
|
||||||
CLEAR mt_local.
|
|
||||||
|
mv_do_local_refresh = abap_true.
|
||||||
|
|
||||||
|
IF iv_drop_cache = abap_true.
|
||||||
|
CLEAR: mv_last_serialization, mt_local.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
ENDMETHOD. "refresh
|
ENDMETHOD. "refresh
|
||||||
|
|
||||||
|
METHOD refresh_local. " For testing purposes, maybe removed later
|
||||||
|
mv_do_local_refresh = abap_true.
|
||||||
|
ENDMETHOD. "refresh_local
|
||||||
|
|
||||||
METHOD get_package.
|
METHOD get_package.
|
||||||
rv_package = ms_data-package.
|
rv_package = ms_data-package.
|
||||||
ENDMETHOD. "get_package
|
ENDMETHOD. "get_package
|
||||||
|
|
Loading…
Reference in New Issue
Block a user