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

Abap 如何在网关服务中使用ENQUEUEGETSTAT功能模块,abap,sap-gateway,Abap,Sap Gateway,如何在网关服务中使用ENQUEUEGETSTAT功能模块,此fm返回3个参数(条目\总计、条目\峰值、条目\实际值) 我可以在Gateway中映射表,但无法解决此问题。如何将这些参数收集到内部表中并导出 在我看来,它就像一个用例 首先,您必须为返回的数据定义一个ABAP结构,如下所示 @EndUserText.label : 'ENQUEUEGETSTAT' @AbapCatalog.enhancementCategory : #NOT_EXTENSIBLE define structure z

如何在网关服务中使用ENQUEUEGETSTAT功能模块,此fm返回3个参数(条目\总计、条目\峰值、条目\实际值)

我可以在Gateway中映射表,但无法解决此问题。如何将这些参数收集到内部表中并导出

在我看来,它就像一个用例

首先,您必须为返回的数据定义一个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

然后,创建一个函数import
ENQUEUEGETSTAT

转到DPC_EXT类并重新定义方法
/IWBEP/IF\MGW\u APPL\u SRV\u运行时~EXECUTE\u 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.
保存并激活所有内容。然后您应该能够访问函数import
/sap/opu/odata/sap/**您的服务**/ENQUEUEGETSTAT?$format=json

{
    "d": {
        "EntriesTotal": 382,
        "EntriesPeak": 43189,
        "EntriesActual": 500000
    }
}
希望能有帮助