Gateway服务中如何使用ENQUEUEGETSTAT功能模块

How to use ENQUEUEGETSTAT function module in Gateway service

如何在网关服务中使用ENQUEUEGETSTAT功能模块,这个fm returns 3参数(ENTRIES_TOTAL, ENTRIES_PEAK, ENTRIES_ACTUAL)

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

对我来说,它看起来像一个 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

.

之后,创建一个函数 import ENQUEUEGETSTAT

转到您的 DPC_EXT class 并重新定义方法 /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.

保存并激活一切。然后你应该可以访问你的函数 import /sap/opu/odata/sap/**YOUR_SERVICE**/ENQUEUEGETSTAT?$format=json

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

希望对您有所帮助。