来自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>致谢

-拉尔夫

xfwsx85
2楼-- · 2020-08-19 00:25

我的荣幸!

三十六小时_GS
3楼-- · 2020-08-19 00:26

您好,是否有可能告诉消息容器他应该传递回什么HTTP状态代码? 我只能用状态码引发异常,但显然我不能传回2xx状态码。 有什么建议吗?

四川大学会员
4楼-- · 2020-08-19 00:29

嗨,卢卡斯,

对我来说,如果我通过

lo_container = me-> mo_context-> get_message_container检索消息容器,它就可以工作 ()。

lo_container-> add_message(

iv_msg_type ='S'

iv_msg_id ='BL'

iv_msg_number = 308

iv_msg_v1 ='成功'

iv_is_lead_message = abap_true

iv_add_to_response_header = abap_true

)。

然后显示消息

希望这会有所帮助!

-Ralf

四川大学会员
5楼-- · 2020-08-19 00:28

大家好,

让我们谈谈ui5应用程序要调用FM时的情况,当然要了解FM的返回状态/消息。

程序员希望将此消息返回给UI5应用。

如何按照odata的最佳做法进行操作?

我使用/iwbep/if_message_container做到了,并返回状态400,但是我猜这种解决方案确实不理想。

卢卡斯

追夢秋陽
6楼-- · 2020-08-19 00:36

无论别人怎么说,我都尝试过。 没有错误,我可以看到程序在调试中执行。 但是Fiori前端仅显示标准消息。 显示自定义错误消息没有问题。 但是我还需要显示自定义成功消息。

因此,如果您能找到一种方法,请告诉我。 感谢您的回应

谢谢

Raibin

追夢秋陽
7楼-- · 2020-08-19 00:33

我想你们做一个混合的teori," u"是" u",ui5是abp,请不要混淆,我可以补充您的工作,让我告诉您一些事情 发生了严重的麻烦 不要回复

一周热门 更多>