且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

SAP gateway 后台OData model data查看工具

更新时间:2022-09-03 21:54:15

Jerry has written this tool for support colleague in Zeiss to enable them to conveniently check a given OData Model cache status at any time.


How to use

执行report,输入OData model name和metadata 实现class name:


SAP gateway 后台OData model data查看工具执行report,可在debuger里查看该model的所有cache数据(如果cache确实存在):SAP gateway 后台OData model data查看工具并打印model class 最后修改的时间戳:SAP gateway 后台OData model data查看工具源代码分享给大家: 

REPORT tool_gateway_model_cache_view.

PARAMETERS: cls  TYPE  seoclsname OBLIGATORY DEFAULT 'CL_CRM_OPPORTUNITY_MPC_EXT',

           name TYPE /iwbep/med_mdl_technical_name OBLIGATORY DEFAULT 'CRM_OPPORTUNITY'.

DATA: ls_data         TYPE /iwbep/if_mgw_med_odata_types=>ty_s_med_model,

     lv_found        TYPE abap_bool,

     lv_lastchange   TYPE timestamp,

     lv_timezone     TYPE tzonref-tzone,

     lv_include_name TYPE program,

     lv_sdate        TYPE rdir_sdate,   " Standard selection screen generation: Date

     lv_stime        TYPE rdir_stime.

CALL FUNCTION 'GET_SYSTEM_TIMEZONE'

 IMPORTING

   timezone = lv_timezone

 EXCEPTIONS

   OTHERS   = 0.           " initial lv_timezone means UTC in CONVERT ...

lv_include_name =  cl_oo_classname_service=>get_classpool_name( clsname = cls ). "Is enough for last_modified  

SELECT SINGLE sdate stime

 FROM reposrc

 INTO (lv_sdate, lv_stime)

 WHERE progname = lv_include_name

   AND r3state  = 'A'.

* Create timestamp

CONVERT DATE lv_sdate TIME lv_stime INTO TIME STAMP lv_lastchange TIME ZONE lv_timezone.

CALL METHOD /iwbep/cl_mgw_med_utils=>get_cached_model

 EXPORTING

   iv_last_modified  = lv_lastchange

   iv_version        = '0001'

   iv_technical_name = name

 IMPORTING

   es_model_data     = ls_data

   ev_found          = lv_found.

WRITE: / 'Cache found? : ' , lv_found COLOR COL_NEGATIVE, ' name: ' , ls_data-header-ext_model_tname COLOR COL_GROUP,

' last changed' , ls_data-header-changed_timestmp COLOR COL_POSITIVE.