OData V2 SubmitChanges错误回调不起作用

2020-08-19 16:55发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)你好 我已经实现了OData批...

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

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


你好

我已经实现了OData批处理,并且存在以下问题。

即使后端引发业务异常,也不会触发错误回调。

(我发现只有在出现连接错误时才会触发)

我的引发异常的后端代码

如果sy-subrc <> 0。
   io_message_container-> add_message_from_bapi(
     出口
       it_bapi_messages = lt_return
       iv_add_to_response_header = abap_true
   )
   引发异常类型/iwbep/cx_mgw_busi_excetion
     出口
       message_container = io_message_container。
 endif。

用于调用SubmitChanges的前端代码

 oModel.submitChanges({
 成功:功能(oRes){
//一些代码;
 },
 错误:函数(oErr){
//一些代码;
 },
 groupId:sBatchGroup
 });
 

引发异常时,我可以在控制台中看到错误消息,但不会触发错误回调。


我已阅读以下有关此问题的主题,但尚未找到解决方案。

https://answers。 sap.com/questions/12184545/submitchanges-error-callback-not-working-in-versio.html

/img/questions /12269639/odata-submitchanges-error-handling.html#

我需要做的是显示带有服务器返回的消息的消息弹出窗口。

除非OData请求失败,否则消息似乎不会出现在消息弹出窗口中。

此致

宇达电通

(47.4 kB)
7条回答
我是小鹏鹏啊
2020-08-19 17:39 .采纳回答

已通过将" iv_message_target"传递到" add_message"方法解决了该问题。

(" add_messages_from_bapi"没有此参数)。

之后,MessageManager开始从后端接收错误消息。

<后端代码>

 lv_target = |/Header('{}')|。
 io_message_container-> add_message(
   出口
     iv_msg_type ='E'
     iv_msg_id ='ZMSGCLASS'
     iv_msg_number ='000'
     iv_is_leading_message = abap_ture
     iv_add_to_response_header = abap_ture
     iv_message_target = lv_target
 )。
  引发异常类型/iwbep/cx_mgw_busi_excetion
    出口
      message_container = io_message_container。
 

<前端代码>

由于即使后端有错误,submitChanges回调仍然成功,所以我需要进行额外的错误检查。

 oModel.submitChanges({
 成功:功能(oRes){
//额外检查后端错误
 if(!that._responseHasError(oRes)){
//执行成功函数
 }
 },
 错误:函数(oErr){
//执行错误功能
 },
 groupId:sBatchGroup
 });

 _responseHasError:function(oRes){
 var bStatusExists = oRes中的"响应"。__batchResponses [0];
 如果(!bStatusExists){
 返回false;
 }
 否则((oRes .__ batchResponses [0] .response.statusCode> = 400){
 返回true;
 }
 返回false;
 },
 

一周热门 更多>