SYSTEM_DATA_ALREADY_FREE + FREED STACK

2020-08-31 01:45发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好, 我正在开发一种网关...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

我正在开发一种网关方法来在后端调用RFC。 当我在Gateway Client上执行服务时,它将按以下顺序调用以下方法:

班级:

/ITSTGW/CL_ST10_ORDER_DPC_EXT

方法:

1-/IWBEP/IF_MGW_APPL_SRV_RUNTIME〜CHANGESET_BEGIN(cv_defer_mode = abap_true)-通知框架它可以一次处理所有变更集操作

2-/IWBEP/IF_MGW_APPL_SRV_RUNTIME〜CHANGESET_PROCESS(检查更改集的类型以调用以下方法)

3-HANDLE_CHANGESET_CREATES(查找RFC目标并在后端调用RFC)

4-/IWBEP/IF_MGW_APPL_SRV_RUNTIME〜CHANGESET_END(结束执行并返回到客户端)

在第三个方法中,当我尝试找到RFC目标名称时,将引发转储。

代码:

数据lo_dp_facade类型参考/iwbep/if_mgw_dp_facade。

DATA LV_DESTINATION类型RFCDEST。

*获取RFC目的地

lo_dp_facade =/iwbep/if_mgw_conv_srv_runtime〜get_dp_facade()。

lv_destination =/iwbep/cl_sb_gen_dpc_rt_util => get_rfc_destination(io_dp_facade = lo_dp_facade)。


执行第一行时,将获得:'FREED STACK'。 那就是问题所在。

当我将相同的代码放在相同类的另一个方法中时,它工作正常。

转储:

SYSTEM_DATA_ALREADY_FREE

/IWBEP/CL_MGW_DP_FACADE ======= CP

由于错误,呼叫服务/SAP/OPU/ODATA/NAMESPACE/PM_ORDER_SRV/$ batch已终止。 系统中处理了以下错误文本:不允许访问已发布的数据。

有什么想法的人吗?

非常感谢您,

Danilo

4条回答
nice_wp
2020-08-31 02:03

Danilo,

HANDLE_CHANGESET_CREATES似乎是您的自定义方法。

基本事实是,当控件使用此方法时,它不再引用dp_facade。


因此,您的选择是在changeset_process中进行上述调用,并将lo_dp_facade传递给HANDLE_CHANGESET_CREATES。


致谢

克里希纳

一周热门 更多>