在更新/创建操作时从OData后端获取成功/错误消息

2020-08-31 09:36发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)你好专家 我试图在成功...

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

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


你好专家

我试图在成功更新/创建请求时从后端系统返回消息,但是代码未返回任何内容,当我在调试模式下检查时,它绕过了oDataModel的create/update方法中的成功/错误功能。

下面是我的代码:

 var oServiceModel = this.getView()。getModel();
 var relPath ="/img/IssueDetailSet(" +" Memberid =" +"'" + memberid +"'" +"," +" Bookid =" +"'" + bookid +"'" +")";
  //调用服务模型的更新方法
 oServiceModel.update(relPath,oData,null,function(success){

   MessageToast.show("更新的书" + success.Bookid);
    },

   函数(错误){
   MessageToast.show(JSON.parse(error.response.body).error.message.value);

   });

 

在后端,我正在将UpdateEntityset中的数据传递给下面的方法

COPY_DATA_TO_REF(

导出

IS_DATA = LS_REQUEST_INPUT_DATA

更改

CR_DATA = ER_ENTITY

)。

日期进展顺利,更新工作正常,但是我不确定如何在上面的JS中获取Return Sucess消息

付费偷看设置
发送
12条回答
nice_wp
1楼 · 2020-08-31 10:15.采纳回答

是Mayank

您是正确的,语法本身存在问题,我已经使用了上面的语法,现在可以正常使用!!

但是现在存在一个小问题,即成功后响应不返回任何内容


但是如果我提出如下异常,则响应将相应地返回错误值。


上升例外类型/iwbep/cx_mgw_busi_exception

*导出

* message_container = LO_MESSAGE_CONTAINER。

如何在成功的情况下增加一些响应值。

吹牛啤
2楼-- · 2020-08-31 10:18

以此替换您的成功回调函数。 响应在第二个参数中发送。

成功:功能(oData,oResponse)

关于

clever101
3楼-- · 2020-08-31 10:16

Hello KC,

有多种方法可以将消息从后端传递到UI。

1。 在" er_entity"的结构中添加两个属性消息类型和消息,然后填充它们。 然后,您可以像现在一样传递" er_entity",它将收到消息。 但这不是一个好方法。

2。 更好的方法是实例化一个消息容器并在其中添加消息,这些消息将作为Odata调用的响应中的标头使用。

样本-

Data:lo_message_container类型REF TO/iwbep/if_message_container。

*-至少有一条消息-实例化消息容器并使用相同的消息

呼叫方法me-> mo_context-> get_message_container

< p>接收

ro_message_container = lo_message_container。

*-将UI请求处理程序API返回的消息传递给oData消息容器

调用方法lo_message_container-> add_messages_from_bapi

导出

it_bapi_messages = lt_bapi_message"消息源

iv_add_to_response_header = abap_true。

BR。

木偶小白
4楼-- · 2020-08-31 10:19

嗨,KC,

应该打断点,处理是异步进行的,并且在执行了后端逻辑之后,控制必须到达eithe r成功处理程序函数或错误处理程序函数。

请彻底检查。

PS:为延迟响应表示歉意。

樱桃小丸子0093
5楼-- · 2020-08-31 10:23

仍然没有响应, 什么都没有返回

甚至BApi也在LT_BAPI_MESSAGE中传递最终数据

CPLASF-自律
6楼-- · 2020-08-31 10:03

您好,

您可以这样尝试并检查是否有任何内容进入控制台。 chrome调试器-网络标签中的请求的状态和响应也是什么。

oModel.update(路径,oData,{

成功:函数(oData,响应)

{console.log(oData,response); }

错误:function(oData,response)
{console.log(oData,response); }

});

关于此,

吹牛啤
7楼-- · 2020-08-31 10:21

需要帮助的专家!

一周热门 更多>