mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 04:08:27 +08:00
refactor _OBJECT_CHECK_TIMESTAMP macro #773
This commit is contained in:
parent
e124e5c0d9
commit
b9ea4960a3
|
@ -1,23 +1,3 @@
|
||||||
*&---------------------------------------------------------------------*
|
*&---------------------------------------------------------------------*
|
||||||
*& Include ZABAPGIT_MACROS
|
*& Include ZABAPGIT_MACROS
|
||||||
*&---------------------------------------------------------------------*
|
*&---------------------------------------------------------------------*
|
||||||
|
|
||||||
* 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.
|
|
||||||
|
|
|
@ -53,8 +53,7 @@ CLASS lcl_object_doma IMPLEMENTATION.
|
||||||
METHOD lif_object~has_changed_since.
|
METHOD lif_object~has_changed_since.
|
||||||
|
|
||||||
DATA: lv_date TYPE dats,
|
DATA: lv_date TYPE dats,
|
||||||
lv_time TYPE tims,
|
lv_time TYPE tims.
|
||||||
lv_ts TYPE timestamp.
|
|
||||||
|
|
||||||
SELECT SINGLE as4date as4time FROM dd01l
|
SELECT SINGLE as4date as4time FROM dd01l
|
||||||
INTO (lv_date, lv_time)
|
INTO (lv_date, lv_time)
|
||||||
|
@ -62,7 +61,10 @@ CLASS lcl_object_doma IMPLEMENTATION.
|
||||||
AND as4local = 'A'
|
AND as4local = 'A'
|
||||||
AND as4vers = '0000'.
|
AND as4vers = '0000'.
|
||||||
|
|
||||||
_object_check_timestamp lv_date lv_time.
|
rv_changed = check_timestamp(
|
||||||
|
iv_timestamp = iv_timestamp
|
||||||
|
iv_date = lv_date
|
||||||
|
iv_time = lv_time ).
|
||||||
|
|
||||||
ENDMETHOD. "lif_object~has_changed_since
|
ENDMETHOD. "lif_object~has_changed_since
|
||||||
|
|
||||||
|
|
|
@ -46,8 +46,7 @@ CLASS lcl_object_dtel IMPLEMENTATION.
|
||||||
METHOD lif_object~has_changed_since.
|
METHOD lif_object~has_changed_since.
|
||||||
|
|
||||||
DATA: lv_date TYPE dats,
|
DATA: lv_date TYPE dats,
|
||||||
lv_time TYPE tims,
|
lv_time TYPE tims.
|
||||||
lv_ts TYPE timestamp.
|
|
||||||
|
|
||||||
SELECT SINGLE as4date as4time FROM dd04l
|
SELECT SINGLE as4date as4time FROM dd04l
|
||||||
INTO (lv_date, lv_time)
|
INTO (lv_date, lv_time)
|
||||||
|
@ -55,7 +54,10 @@ CLASS lcl_object_dtel IMPLEMENTATION.
|
||||||
AND as4local = 'A'
|
AND as4local = 'A'
|
||||||
AND as4vers = '0000'.
|
AND as4vers = '0000'.
|
||||||
|
|
||||||
_object_check_timestamp lv_date lv_time.
|
rv_changed = check_timestamp(
|
||||||
|
iv_timestamp = iv_timestamp
|
||||||
|
iv_date = lv_date
|
||||||
|
iv_time = lv_time ).
|
||||||
|
|
||||||
ENDMETHOD. "lif_object~has_changed_since
|
ENDMETHOD. "lif_object~has_changed_since
|
||||||
|
|
||||||
|
|
|
@ -25,8 +25,7 @@ CLASS lcl_object_enqu IMPLEMENTATION.
|
||||||
METHOD lif_object~has_changed_since.
|
METHOD lif_object~has_changed_since.
|
||||||
|
|
||||||
DATA: lv_date TYPE dats,
|
DATA: lv_date TYPE dats,
|
||||||
lv_time TYPE tims,
|
lv_time TYPE tims.
|
||||||
lv_ts TYPE timestamp.
|
|
||||||
|
|
||||||
SELECT SINGLE as4date as4time FROM dd25l
|
SELECT SINGLE as4date as4time FROM dd25l
|
||||||
INTO (lv_date, lv_time)
|
INTO (lv_date, lv_time)
|
||||||
|
@ -34,7 +33,10 @@ CLASS lcl_object_enqu IMPLEMENTATION.
|
||||||
AND as4local = 'A'
|
AND as4local = 'A'
|
||||||
AND as4vers = '0000'.
|
AND as4vers = '0000'.
|
||||||
|
|
||||||
_object_check_timestamp lv_date lv_time.
|
rv_changed = check_timestamp(
|
||||||
|
iv_timestamp = iv_timestamp
|
||||||
|
iv_date = lv_date
|
||||||
|
iv_time = lv_time ).
|
||||||
|
|
||||||
ENDMETHOD. "lif_object~has_changed_since
|
ENDMETHOD. "lif_object~has_changed_since
|
||||||
|
|
||||||
|
|
|
@ -25,15 +25,17 @@ CLASS lcl_object_shlp IMPLEMENTATION.
|
||||||
METHOD lif_object~has_changed_since.
|
METHOD lif_object~has_changed_since.
|
||||||
|
|
||||||
DATA: lv_date TYPE dats,
|
DATA: lv_date TYPE dats,
|
||||||
lv_time TYPE tims,
|
lv_time TYPE tims.
|
||||||
lv_ts TYPE timestamp.
|
|
||||||
|
|
||||||
SELECT SINGLE as4date as4time FROM dd30l
|
SELECT SINGLE as4date as4time FROM dd30l
|
||||||
INTO (lv_date, lv_time)
|
INTO (lv_date, lv_time)
|
||||||
WHERE shlpname = ms_item-obj_name
|
WHERE shlpname = ms_item-obj_name
|
||||||
AND as4local = 'A'.
|
AND as4local = 'A'.
|
||||||
|
|
||||||
_object_check_timestamp lv_date lv_time.
|
rv_changed = check_timestamp(
|
||||||
|
iv_timestamp = iv_timestamp
|
||||||
|
iv_date = lv_date
|
||||||
|
iv_time = lv_time ).
|
||||||
|
|
||||||
ENDMETHOD. "lif_object~has_changed_since
|
ENDMETHOD. "lif_object~has_changed_since
|
||||||
|
|
||||||
|
|
|
@ -38,7 +38,11 @@ CLASS lcl_object_tabl IMPLEMENTATION.
|
||||||
AND as4local = 'A'
|
AND as4local = 'A'
|
||||||
AND as4vers = '0000'.
|
AND as4vers = '0000'.
|
||||||
|
|
||||||
_object_check_timestamp lv_date lv_time.
|
rv_changed = check_timestamp(
|
||||||
|
iv_timestamp = iv_timestamp
|
||||||
|
iv_date = lv_date
|
||||||
|
iv_time = lv_time ).
|
||||||
|
CHECK rv_changed = abap_false.
|
||||||
|
|
||||||
SELECT SINGLE as4date as4time FROM dd09l " Table tech settings
|
SELECT SINGLE as4date as4time FROM dd09l " Table tech settings
|
||||||
INTO (lv_date, lv_time)
|
INTO (lv_date, lv_time)
|
||||||
|
@ -46,7 +50,11 @@ CLASS lcl_object_tabl IMPLEMENTATION.
|
||||||
AND as4local = 'A'
|
AND as4local = 'A'
|
||||||
AND as4vers = '0000'.
|
AND as4vers = '0000'.
|
||||||
|
|
||||||
_object_check_timestamp lv_date lv_time.
|
rv_changed = check_timestamp(
|
||||||
|
iv_timestamp = iv_timestamp
|
||||||
|
iv_date = lv_date
|
||||||
|
iv_time = lv_time ).
|
||||||
|
CHECK rv_changed = abap_false.
|
||||||
|
|
||||||
SELECT as4date as4time FROM dd12l " Table tech settings
|
SELECT as4date as4time FROM dd12l " Table tech settings
|
||||||
INTO CORRESPONDING FIELDS OF TABLE lt_indexes
|
INTO CORRESPONDING FIELDS OF TABLE lt_indexes
|
||||||
|
@ -55,7 +63,11 @@ CLASS lcl_object_tabl IMPLEMENTATION.
|
||||||
AND as4vers = '0000' ##TOO_MANY_ITAB_FIELDS.
|
AND as4vers = '0000' ##TOO_MANY_ITAB_FIELDS.
|
||||||
|
|
||||||
LOOP AT lt_indexes ASSIGNING <ls_index>.
|
LOOP AT lt_indexes ASSIGNING <ls_index>.
|
||||||
_object_check_timestamp <ls_index>-as4date <ls_index>-as4time.
|
rv_changed = check_timestamp(
|
||||||
|
iv_timestamp = iv_timestamp
|
||||||
|
iv_date = <ls_index>-as4date
|
||||||
|
iv_time = <ls_index>-as4time ).
|
||||||
|
CHECK rv_changed = abap_false.
|
||||||
ENDLOOP.
|
ENDLOOP.
|
||||||
|
|
||||||
ENDMETHOD. "lif_object~has_changed_since
|
ENDMETHOD. "lif_object~has_changed_since
|
||||||
|
|
|
@ -33,7 +33,10 @@ CLASS lcl_object_ttyp IMPLEMENTATION.
|
||||||
WHERE typename = ms_item-obj_name
|
WHERE typename = ms_item-obj_name
|
||||||
AND as4local = 'A'.
|
AND as4local = 'A'.
|
||||||
|
|
||||||
_object_check_timestamp lv_date lv_time.
|
rv_changed = check_timestamp(
|
||||||
|
iv_timestamp = iv_timestamp
|
||||||
|
iv_date = lv_date
|
||||||
|
iv_time = lv_time ).
|
||||||
|
|
||||||
ENDMETHOD. "lif_object~has_changed_since
|
ENDMETHOD. "lif_object~has_changed_since
|
||||||
|
|
||||||
|
|
|
@ -25,24 +25,31 @@ CLASS lcl_object_view IMPLEMENTATION.
|
||||||
METHOD lif_object~has_changed_since.
|
METHOD lif_object~has_changed_since.
|
||||||
|
|
||||||
DATA: lv_date TYPE dats,
|
DATA: lv_date TYPE dats,
|
||||||
lv_time TYPE tims,
|
lv_time TYPE tims.
|
||||||
lv_ts TYPE timestamp.
|
|
||||||
|
|
||||||
SELECT SINGLE as4date as4time FROM dd25l " View
|
SELECT SINGLE as4date as4time FROM dd25l
|
||||||
INTO (lv_date, lv_time)
|
INTO (lv_date, lv_time)
|
||||||
WHERE viewname = ms_item-obj_name
|
WHERE viewname = ms_item-obj_name
|
||||||
AND as4local = 'A'
|
AND as4local = 'A'
|
||||||
AND as4vers = '0000'.
|
AND as4vers = '0000'.
|
||||||
|
|
||||||
_object_check_timestamp lv_date lv_time.
|
rv_changed = check_timestamp(
|
||||||
|
iv_timestamp = iv_timestamp
|
||||||
|
iv_date = lv_date
|
||||||
|
iv_time = lv_time ).
|
||||||
|
CHECK rv_changed = abap_false.
|
||||||
|
|
||||||
SELECT SINGLE as4date as4time FROM dd09l " Table tech settings
|
SELECT SINGLE as4date as4time FROM dd09l
|
||||||
INTO (lv_date, lv_time)
|
INTO (lv_date, lv_time)
|
||||||
WHERE tabname = ms_item-obj_name
|
WHERE tabname = ms_item-obj_name
|
||||||
AND as4local = 'A'
|
AND as4local = 'A'
|
||||||
AND as4vers = '0000'.
|
AND as4vers = '0000'.
|
||||||
|
|
||||||
_object_check_timestamp lv_date lv_time.
|
rv_changed = check_timestamp(
|
||||||
|
iv_timestamp = iv_timestamp
|
||||||
|
iv_date = lv_date
|
||||||
|
iv_time = lv_time ).
|
||||||
|
CHECK rv_changed = abap_false.
|
||||||
|
|
||||||
ENDMETHOD. "lif_object~has_changed_since
|
ENDMETHOD. "lif_object~has_changed_since
|
||||||
|
|
||||||
|
|
|
@ -571,6 +571,13 @@ CLASS lcl_objects_super DEFINITION ABSTRACT.
|
||||||
mv_language TYPE spras.
|
mv_language TYPE spras.
|
||||||
|
|
||||||
METHODS:
|
METHODS:
|
||||||
|
check_timestamp
|
||||||
|
IMPORTING
|
||||||
|
iv_timestamp TYPE timestamp
|
||||||
|
iv_date TYPE datum
|
||||||
|
iv_time TYPE uzeit
|
||||||
|
RETURNING
|
||||||
|
VALUE(rv_changed) TYPE abap_bool,
|
||||||
get_metadata
|
get_metadata
|
||||||
RETURNING VALUE(rs_metadata) TYPE lif_defs=>ty_metadata,
|
RETURNING VALUE(rs_metadata) TYPE lif_defs=>ty_metadata,
|
||||||
corr_insert
|
corr_insert
|
||||||
|
@ -1539,7 +1546,11 @@ CLASS lcl_objects_program IMPLEMENTATION.
|
||||||
WHERE progname = iv_program
|
WHERE progname = iv_program
|
||||||
AND r3state = 'A'.
|
AND r3state = 'A'.
|
||||||
|
|
||||||
_object_check_timestamp lv_date lv_time.
|
rv_changed = check_timestamp(
|
||||||
|
iv_timestamp = iv_timestamp
|
||||||
|
iv_date = lv_date
|
||||||
|
iv_time = lv_time ).
|
||||||
|
CHECK rv_changed = abap_false.
|
||||||
|
|
||||||
SELECT SINGLE udat utime FROM repotext " Program text pool
|
SELECT SINGLE udat utime FROM repotext " Program text pool
|
||||||
INTO (lv_date, lv_time)
|
INTO (lv_date, lv_time)
|
||||||
|
@ -1547,7 +1558,11 @@ CLASS lcl_objects_program IMPLEMENTATION.
|
||||||
AND r3state = 'A'.
|
AND r3state = 'A'.
|
||||||
|
|
||||||
IF sy-subrc = 0. " Text not found ? Assuming no changes, see #404
|
IF sy-subrc = 0. " Text not found ? Assuming no changes, see #404
|
||||||
_object_check_timestamp lv_date lv_time.
|
rv_changed = check_timestamp(
|
||||||
|
iv_timestamp = iv_timestamp
|
||||||
|
iv_date = lv_date
|
||||||
|
iv_time = lv_time ).
|
||||||
|
CHECK rv_changed = abap_false.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
IF iv_skip_gui = abap_true.
|
IF iv_skip_gui = abap_true.
|
||||||
|
@ -1559,7 +1574,11 @@ CLASS lcl_objects_program IMPLEMENTATION.
|
||||||
WHERE prog = iv_program ##TOO_MANY_ITAB_FIELDS. "#EC CI_SUBRC
|
WHERE prog = iv_program ##TOO_MANY_ITAB_FIELDS. "#EC CI_SUBRC
|
||||||
|
|
||||||
LOOP AT lt_screens ASSIGNING <ls_screen>.
|
LOOP AT lt_screens ASSIGNING <ls_screen>.
|
||||||
_object_check_timestamp <ls_screen>-dgen <ls_screen>-tgen.
|
rv_changed = check_timestamp(
|
||||||
|
iv_timestamp = iv_timestamp
|
||||||
|
iv_date = <ls_screen>-dgen
|
||||||
|
iv_time = <ls_screen>-tgen ).
|
||||||
|
CHECK rv_changed = abap_false.
|
||||||
ENDLOOP.
|
ENDLOOP.
|
||||||
|
|
||||||
SELECT vdatum vzeit FROM eudb " GUI
|
SELECT vdatum vzeit FROM eudb " GUI
|
||||||
|
@ -1569,7 +1588,11 @@ CLASS lcl_objects_program IMPLEMENTATION.
|
||||||
AND srtf2 = 0 ##TOO_MANY_ITAB_FIELDS. "#EC CI_SUBRC
|
AND srtf2 = 0 ##TOO_MANY_ITAB_FIELDS. "#EC CI_SUBRC
|
||||||
|
|
||||||
LOOP AT lt_eudb ASSIGNING <ls_eudb>.
|
LOOP AT lt_eudb ASSIGNING <ls_eudb>.
|
||||||
_object_check_timestamp <ls_eudb>-vdatum <ls_eudb>-vzeit.
|
rv_changed = check_timestamp(
|
||||||
|
iv_timestamp = iv_timestamp
|
||||||
|
iv_date = <ls_eudb>-vdatum
|
||||||
|
iv_time = <ls_eudb>-vzeit ).
|
||||||
|
CHECK rv_changed = abap_false.
|
||||||
ENDLOOP.
|
ENDLOOP.
|
||||||
|
|
||||||
ENDMETHOD. "check_prog_changed_since
|
ENDMETHOD. "check_prog_changed_since
|
||||||
|
@ -1690,6 +1713,25 @@ CLASS lcl_objects_super IMPLEMENTATION.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD check_timestamp.
|
||||||
|
|
||||||
|
DATA: lv_ts TYPE timestamp.
|
||||||
|
|
||||||
|
IF sy-subrc = 0 AND iv_date IS NOT INITIAL AND iv_time IS NOT INITIAL.
|
||||||
|
cl_abap_tstmp=>systemtstmp_syst2utc(
|
||||||
|
EXPORTING syst_date = iv_date
|
||||||
|
syst_time = iv_time
|
||||||
|
IMPORTING utc_tstmp = lv_ts ).
|
||||||
|
IF lv_ts < iv_timestamp.
|
||||||
|
rv_changed = abap_false. " Unchanged
|
||||||
|
ELSE.
|
||||||
|
rv_changed = abap_true.
|
||||||
|
ENDIF.
|
||||||
|
ELSE. " Not found? => changed
|
||||||
|
rv_changed = abap_true.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
METHOD get_metadata.
|
METHOD get_metadata.
|
||||||
rs_metadata-class =
|
rs_metadata-class =
|
||||||
|
|
Loading…
Reference in New Issue
Block a user