如何在网关服务中使用 ENQUEUEGETSTAT 功能模块,这个 fm 返回 3 个参数(ENTRIES_TOTAL、ENTRIES_PEAK、ENTRIES_ACTUAL)
我可以在网关中映射表,但无法弄清楚这一点。如何将这些参数收集到内部表中然后导出?
如何在网关服务中使用 ENQUEUEGETSTAT 功能模块,这个 fm 返回 3 个参数(ENTRIES_TOTAL、ENTRIES_PEAK、ENTRIES_ACTUAL)
我可以在网关中映射表,但无法弄清楚这一点。如何将这些参数收集到内部表中然后导出?
对我来说它看起来像一个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 类并重新定义方法/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
}
}
希望能帮助到你。