SYSTEM_DATA_ALREADY_FREE + FREED STACK

2020-08-31 01:45发布

         点击此处--->   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

         点击此处--->   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条回答
何必丶何苦呢
1楼 · 2020-08-31 02:04.采纳回答

Hello Danilo,

使用以下代码进行检查。

数据:ls_changeset_request TYPE/iwbep/if_mgw_appl_types => ty_s_changeset_request。

数据:

lo_req_obj类型REF到/IWBEP/CL_MGW_REQUEST,

ls_req_data TYPE/IWBEP/IF_MGW_CORE_SRV_RUNTIME => TY_S_MGW_REQUEST_CONTEXT,

ls_system_alias_info INFO/p >循环到it_changeset_request INTO ls_changeset_request。

lo_req_obj?= ls_changeset_request-request_context。

调用方法lo_req_obj-> GET_REQUEST_DETAILS(正在接收RS_REQUEST = info_s_p_s = <系统数据>) ls_req_data-SYSTEM_ALIAS_INFO。

ENDLOOP。


其中ls_system_alias_info将具有RFC目标。


致谢

Ashwin

亦是此间程序员
2楼-- · 2020-08-31 02:29

我在哪里应该将此代码称为? 在changeset_process中,我无法传递外观类的引用。

更新实体映射中正在发生转储。

nice_wp
3楼-- · 2020-08-31 02:03

Danilo,

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

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


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


致谢

克里希纳

Climb_Ma
4楼-- · 2020-08-31 02:07

你好克里希纳,

是的,我创建了此方法。 您所说的就是正在发生的事情,丢失了参考。

我已经尝试在changeset_begin和changeset_process中进行调用,但是由于某些原因,会发生相同的情况。

如上所述,我可以解决改变呼叫方式的问题。

非常感谢您的帮助,非常感谢!

此致

Danilo

一周热门 更多>