如何使用ENQUEUEGETSTAT功能模块中的网关服务

问题描述:

如何使用ENQUEUEGETSTAT功能模块中的网关服务,这FM返回3个参数(ENTRIES_TOTAL,ENTRIES_PEAK,ENTRIES_ACTUAL)如何使用ENQUEUEGETSTAT功能模块中的网关服务

我可以在网关映射表,但无法弄清楚这。我如何将这些参数收集到内部表中然后导出呢?

enter image description here

它看起来像一个function import使用情况给我。

首先,你必须定义一个ABAP结构返回的数据,如低于

@EndUserText.label : 'ENQUEUEGETSTAT' 
@AbapCatalog.enhancementCategory : #NOT_EXTENSIBLE 
define structure zza_enqueuegetstat { 
    entries_total : abap.int4; 
    entries_peak : abap.int4; 
    entries_actual : abap.int4; 
} 

在你SEGW项目,创建ENQUEUEGETSTAT实体类型映射到这个结构。

enter image description here

然后,创建一个函数导入ENQUEUEGETSTAT

enter image description here

转到您的DPC_EXT类,并重新定义方法/IWBEP/IF_MGW_APPL_SRV_RUNTIME~EXECUTE_ACTION

method /iwbep/if_mgw_appl_srv_runtime~execute_action. 

    data ls_enqueuegetstat type zza_enqueuegetstat. 

    if iv_action_name = 'ENQUEUEGETSTAT'. 
     call function 'ENQUEUEGETSTAT' 
     importing 
      entries_total = ls_enqueuegetstat-entries_actual 
      entries_peak = ls_enqueuegetstat-entries_peak 
      entries_actual = ls_enqueuegetstat-entries_total. 

     copy_data_to_ref(
      exporting 
      is_data = ls_enqueuegetstat 
      changing 
      cr_data = er_data 
    ). 
    endif. 
endmethod. 

保存并激活一切。那么你应该能够访问你的函数进口/sap/opu/odata/sap/**YOUR_SERVICE**/ENQUEUEGETSTAT?$format=json

{ 
    "d": { 
     "EntriesTotal": 382, 
     "EntriesPeak": 43189, 
     "EntriesActual": 500000 
    } 
} 

希望它能帮助。