点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大家好,
我正在使用Data Provider Class和Model Provider Class创建Odata Services。 但是我不知道如何捕获BAPIRET2错误消息并将其传递给Rest Client。
Eg:
IF(ls_return-type ='E')。
"引发异常,如何在 休息客户端并将其保存到/n/IWFND/ERROR_LOG?
其他。
copy_data_to_ref(
导出
is_data = ls_issues
更改
cr_data = er_entity
)。
ENDIF。
感谢
Arun Chembra
您好,阿伦
请尝试以下代码:
数据lo_logger类型参考/iwbep/cl_cos_logger。
数据lo_message_container类型参考/iwbep/if_message_container。
数据lt_bapi_ret类型bapiret2_t。
数据ls_return类型BAPIRET2 lt_bapi_ret。
数据lv_text类型bapi_msg。
数据lv_error_category类型/iwbep/if_message_container => ty_error_category。
lo_logger =/iwbep/if_mgw_conv_srv_runtime〜get_logger()。
lo_message_container =/iwbep/if_mgw_conv_srv_runtime〜get_message_container()。
附加ls_return到lt_bapi_ret。
lv_error_category =/iwbep/if_message_container => gcs_error_category处理。
"保存后端返回的日志
io_message_container-> add_messages_from_bapi(
导出
it_bapi_messages = lt_bapi_ret
iv_error_category = lv_error_category
iv_entity_type = key_tab_)
消息ID ls_return-id类型ls_return-type NUMBER ls_return-number INTO lv_text。
"向消费者提出商业例外
引发异常类型/IWBEP/CX_MGW_BUSI_EXCEPTION
导出
textid =/iwbep/cx_mgw_busi_exception => business_error
message = lv_text
message_container = io_message_container。
或者,如果您是通过Service Builder工具生成的服务
您只需在DPC生成的方法代码中调用以下方法:
*呼叫RFC呼叫异常处理
me->/iwbep/if_sb_dpc_comm_services〜rfc_save_log(
导出
is_return = return
iv_entity_type = iv_entity_name
it_key_tab = it_key_tab)。
谢谢
Alex
嗨,
可能返回而不会抛出异常消息?
最诚挚的问候,
嗨,阿伦,
请检查以下链接以登录SAP NetWeaver Gateway:
http://help.sap.com/saphelp_gateway20sp06/ helpdata/zh-CN/a7/e34826e0f54073aa0d5b298e470041/frameset.htm
还请检查本文档中的所有子节点,例如记录BAPI返回等。
代码段可能会有所帮助:
http://help.sap.com/saphelp_gateway20sp06/ helpdata/zh-CN/99/29f0c9bfd04ea4bb60b084fd45d624/frameset.htm
最诚挚的问候,
Aakash
感谢Alex,Aakash和Arun。
链接现已更新:
登录SAP Gateway
记录BAPI返回
一周热门 更多>