点击此处---> 群内免费提供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
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目标。
p>
致谢
Ashwin
我在哪里应该将此代码称为? 在changeset_process中,我无法传递外观类的引用。
更新实体映射中正在发生转储。
Danilo,
HANDLE_CHANGESET_CREATES似乎是您的自定义方法。
基本事实是,当控件使用此方法时,它不再引用dp_facade。
因此,您的选择是在changeset_process中进行上述调用,并将lo_dp_facade传递给HANDLE_CHANGESET_CREATES。
致谢
克里希纳
你好克里希纳,
是的,我创建了此方法。 您所说的就是正在发生的事情,丢失了参考。
我已经尝试在changeset_begin和changeset_process中进行调用,但是由于某些原因,会发生相同的情况。
如上所述,我可以解决改变呼叫方式的问题。
非常感谢您的帮助,非常感谢!
此致
Danilo
一周热门 更多>