点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
嗨,
在此示例中,有2个功能,并且可以访问ES5系统
- 1)在InsertSingleRecord()上将单个记录插入到产品表中
- 2)将多个记录插入到产品表中。 onInsertUsingLoop()
两个函数调用相同的insertProduct()插入数据库。
在onInsertUsingLoop()中,如果Loop索引大于1,则调用到达oData.create()的错误函数,并显示错误消息。 但令人惊讶的是,数据也被插入表中。
无法理解,通话已到达,error(),但仍将数据插入到DB表中?
知道为什么会这样。
代码逻辑是,首先使用read()在数据库中搜索相应的ProductID,如果有记录,则更新行;如果没有使用create()插入记录,则进行更新。
为简便起见,我在函数内部使用了警报
View1控制器代码在下面
sap.ui.define( [" sap/ui/core/mvc/Controller", " sap/m/MessageBox", " sap/ui/model/odata/v2/ODataModel", " sap/ui/model/json/JSONModel" ], 函数(控制器,MessageBox,ODataModel,JSONModel){ return Controller.extend(" ibm.fin.ar.controller.View1",{ onInit:函数(){ }, onAfterRendering:function(){ //调用函数设置记录数 this.onGetCount(); }, onGetCount:function(){ //从ProductSet表中获取记录数 var oDataModel = this.getView()。getModel(); var oIntResult,sMsg,olblStatus; olblStatus = this.getView()。byId(" idCountInfo"); 调试器; oDataModel.sequentializeRequests = true; //oDataModel.attachRequestCompleted(function(){ oDataModel.read("/img/ProductSet/$ count",{ 成功:函数(oEvent,oResult){ 调试器; //检查结果是否为数字 如果(isNaN(oResult)){ oIntResult = parseInt(oResult.body); sMsg =" ProductSet表中的记录数为" + oIntResult; olblStatus.setText(sMsg); } },//成功 错误:函数(oError){ 调试器; console.log(oError); } }); //}); }, onInsertSingleRecord:function(){ //将单个记录数据插入ES5表 调试器; //生成随机产品ID; var sProductID; sProductID =" VS-" +(Math.floor((Math.random()* 100000))+ 123456); this.insertProduct(sProductID); this.onGetCount(); }, onInsertUsingLoop:function(){ //通过读取JSON进行插入 var iLoopLength = 1, iLoopIndex,sProductID; 调试器; for(iLoopIndex = 0; iLoopIndexView1 xml代码在下面
<页面标题=" oData测试"> <内容> <页脚> <内容> 工具栏>
您好 Vikas Sreedharan ,
我看到您使用的是serializeRequests = 真正; 我不确定是它发送多个请求吗? 而不是一批?
如果是,这可能是问题所在,很明显,如果循环中的一个请求在发送所有请求之前完成,它将根据odata的响应调用成功或错误 呼叫。 因此最好在批处理请求中发送它们,如果后端是基于abap的,则要求它们实施变更集过程以同时处理多个数据保存。
所以这就是为什么可能插入了某些数据,而对于其他一些数据却可能出错的原因。 顺便说一句,您得到的错误是什么?
谢谢,
Mahesh
感谢Mahesh。
显示的错误消息是
" {"消息":" HTTP请求失败",
"状态代码":500,
" statusText":""
"标题":[],
" responseText":" <?xml version = \" 1.0 \" encoding = \" utf-8 \"?>
http://schemas.microsoft.com/ado/2007/08/dataservices/metadata \">
0050569259751EE4BA9710043F8A5115
"}"
一周热门 更多>