如何在ODATA服务中返回错误MESSAGE

我们在写ABAP代码时,出要返回错误消息,我们一般写

之类的错误代码返回错误消息,但在ODATA的类中,如直接这样写的话,那在ODATA的返回只会说是在/IWFND/ERROR_LOG 中可查询错误,错误如下

而事实上我们想返回的错误是最终用户看的,此满足不了我们的需求,所以需要对返回错误内容进行修改。

原文地址:https://www.saplearners.com/map-message-odata-response-header-sap-message/

1.说明

SAP官方建议的是把错误消息放入OData response header parameter “sap-message”

如何在ODATA服务中返回错误MESSAGE - 第1张  | 优通SAP

2.ODATA中错误的写法

3.改进

上面的写法是把错误内容写到HEADER里,但读取时总是有些麻烦,而在WEBIDE中,默认程序模板并不能调用到上面返回的错误信息,使用如下的代码,在SAP WEB IDE中可以默认返回错误内容,但内容信息有点长,也是还需要再进行改进。

如何在ODATA服务中返回错误MESSAGE - 第2张  | 优通SAP

更多相关函数可参看:

ADD_MESSAGE_FROM_EXCEPTION
ADD_MESSAGES_FROM_BAPI
ADD_MESSAGE_FROM_BAPI
ADD_MESSAGE
ADD_MESSAGE_TEXT_ONLY

此时我们测试时会得到如图

如何在ODATA服务中返回错误MESSAGE - 第3张  | 优通SAP

4.SAPUI5中使用此ODATA错误消息的用法

如何在ODATA服务中返回错误MESSAGE - 第4张  | 优通SAP