来自ECC的Odata服务响应的成功/错误/信息消息

2020-08-18 23:34发布

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

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


大家好,

我正在研究Odata服务,希望将消息返回到HTML5设计的前端应用程序,该应用程序提供更新/删除或创建操作的状态。 我想将错误类型和描述返回到前端。

我正在使用类-/iwbep/if_message_container返回消息并尝试了以下方法:

lo_message_container = mo_context-> get_message_container()。

ls_return-type ='S'。

ls_return-id ='ZTEST'。

ls_return-number ='000'。

* ls_return-log_no ='111'。

ls_return-message ='更新方法中可用的数据'。

追加ls_return到lt_return。

***

lo_message_container-> add_messages_from_bapi(

it_bapi_messages = lt_return

iv_determine_leading_msg =/iwbep/if_message_container => gcs_leading_msg_search_option-first


它没有出现在对前端的请求响应中,并且响应主体为空。 如果我提出例外情况,则/IWBEP/CX_MGW_BUSI_EXCEPTION或/IWBEP/CX_MGW_TECH_EXCEPTION响应将带有错误代码-404。


请提出任何更好的方法来将响应发送到前端。


此致

拉杰什

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

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


大家好,

我正在研究Odata服务,希望将消息返回到HTML5设计的前端应用程序,该应用程序提供更新/删除或创建操作的状态。 我想将错误类型和描述返回到前端。

我正在使用类-/iwbep/if_message_container返回消息并尝试了以下方法:

lo_message_container = mo_context-> get_message_container()。

ls_return-type ='S'。

ls_return-id ='ZTEST'。

ls_return-number ='000'。

* ls_return-log_no ='111'。

ls_return-message ='更新方法中可用的数据'。

追加ls_return到lt_return。

***

lo_message_container-> add_messages_from_bapi(

it_bapi_messages = lt_return

iv_determine_leading_msg =/iwbep/if_message_container => gcs_leading_msg_search_option-first


它没有出现在对前端的请求响应中,并且响应主体为空。 如果我提出例外情况,则/IWBEP/CX_MGW_BUSI_EXCEPTION或/IWBEP/CX_MGW_TECH_EXCEPTION响应将带有错误代码-404。


请提出任何更好的方法来将响应发送到前端。


此致

拉杰什

付费偷看设置
发送
16条回答
当学会了学习
1楼 · 2020-08-19 00:28.采纳回答

嗨Rajesh,

网关SP08现在具有将S,I,W消息放置在SAP标头SAP-Message中的标准机制:将消息容器映射为消息协议格式-SAP NetWeaver Gateway-SAP库。。 p>

要将消息添加到标头中,请保留消息容器,并添加一条消息,指定您要将其添加到响应标头中:

lo_container = me-> mo_context-> get_message_container()。

lo_container-> add_message(

...

iv_add_to_response_header = abap_true

)。

< p>致谢

-拉尔夫

2楼-- · 2020-08-19 00:21

嗨拉吉什,

你好吗? 我正在寻找发送自定义成功消息的方法。 我可以发送自定义错误消息。

我想知道您的问题是否真的得到解决。 请分享解决方案

感谢您的帮助。

Raibin

粗暴的香蕉
3楼-- · 2020-08-19 00:31

你好Rajesh,

这是您的摘录

 数据lo_message_container类型参考/iwbep/if_message_container。
 "获取消息容器对象


 lo_message_container-> add_message
 出口
 iv_msg_type = <>"请参阅GCS_MESSAGE_TYPE
 iv_msg_text = <>。




 lo_message_container = me->/iwbep/if_mgw_core_srv_runtime〜mo_context-> get_message_container()。


 引发例外类型/iwbep/cx_mgw_busi_exception
       出口
           message_container = io_message_container。
 

还有许多其他有用的方法,您可以查看下面的链接

SAP库-SAP NetWeaver网关

此致

Atanu

空代码
4楼-- · 2020-08-19 00:37

嗨Ralf,

我尝试了您提供的解决方案,我的代码如下所示。

lo_message_container = me-> mo_context-> get_message_container()。

lo_message_container-> add_message(
导出
iv_msg_id ='BL'
iv_msg_number ='001'
iv_msg_type ='S'
iv_msg_text ='STO成功修改'
iv_is_lead_message = abap_true
iv_add_to_response_header = abap_true
)。

我可以在调试中看到它正在通过此代码。 但是在我的Fiori应用程序中,自定义消息不会出现,而只会显示标准消息。

我尝试从/IWBEP/IF_MGW_APPL_SRV_RUNTIME〜CHANGESET_PROCESS发送消息。

我们正在使用测试系统并学习Fiori。 因此,请让我知道我们是否真的可以通过这种方法发送自定义成功消息。 也不确定我们需要在网关系统或后端ECC系统中进行任何配置。

ECC的版本是Netweaver 7.02 SP 20(ECC 6 Ehp5 SP 17)。

非常感谢您的帮助

谢谢

Raibin

大简至美
5楼-- · 2020-08-19 00:33

嗨,

您需要在"创建"操作中使用的同一实体中添加参数,并在成功创建和更改后更改值 您可以将同一实体返回到前端。

谢谢

Raju Bonagiri

Cikesha
6楼-- · 2020-08-19 00:20

你好

您知道脱机odata SDK中是否也支持这种sap消息吗? 如果可以,我在哪里以及如何访问它?

谢谢

Yohan

CJones
7楼-- · 2020-08-19 00:31

谢谢您提出的可能选择。.我将尝试同时实现这两种方法,然后看看哪种方法在过程中都能很好地工作。.

一周热门 更多>