Odata批量更新不起作用

2020-09-04 22:04发布

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

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


嗨,

我们有带有多个选择模式选项的sap.m.table。 我们有5列: 表中的ID,名称,国家/地区,当前状态和操作。 根据ID,国家/地区和操作,我们需要更新当前状态列。

后端odata批处理操作接受这3个关键字段,即id,国家/地区和操作,并成功更新当前状态字段。 但是,当我们尝试仅更新一条记录以检查批处理操作是否可从ui5应用程序正常运行时,我们在commitChanges()成功回调方法中收到错误消息,错误代码为202。

请找到下面编写的用于执行更新的代码。

 __updateUser:函数(itemsTable){
 var oTable = this.getView()。byId(" tblActive");
 var oModel = this.getView()。getModel();//在此处检查oModel.oData//是{}

 oModel.setUseBatch(true);
 var items = oTable.getItems();
 var changeSetId =" batchupdate";
 oModel.setDeferredGroups([" batchupdate"]);
 var mParameters = {
 " groupId":" batchupdate"
 };
 var row;
 var itemObject;
 var context;
 for(var i = 3; i <4; i ++){//试图更新第四条记录
 行=项目[i];
 context = row.getBindingContext();
 itemObject = context.getObject();
 var value1 =" X";
 var value2 =" XXXX";
 var value3 =" Up";
 oModel.update("/img/sap/opu/odata/sap/entityset/entity/3",{
 国家/地区:value1,
 id:value2,
 动作:value3
 },{
 groupId:" batchupdate"
 });
 }//3是sPath或第3行。
 oModel.submitChanges({
 成功:功能(数据,响应){
//去做
 console.log("成功");
 },
 错误:功能(e){
//去做
 console.log("失败");
 }
 });
 oModel.setRefreshAfterChange(true);
 }
 

我们收到的错误消息是iwfnd/error_log中的变更集处理失败

.... ERROR_TEXT请求URL或元数据定义不正确。

.... REQUEST_LINEPUT sap/opu/odata/sap/entityset/entity/4 HTTP/1.1

并且Chrome控制台成功显示了commitchanges回调。

HTTP请求失败404,未找到,{"错误":{"代码":" 005056A509B11EE1B9A8FEC11C21D78E","消息":{" lang":" en","值":"未为段'sap找到资源 '。"}

我们还尝试了如下更新模型:

oModel.update("/img/sap/opu/odata/sap/enitityset/entity(国家:value1,id:value2,Action:value3",{groupId:" batchupdate"});-错误消息是(数据 由于语法格式错误,无法理解"服务请求"

有人可以建议需要进行哪些更改以使上述代码正常工作。

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

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


嗨,

我们有带有多个选择模式选项的sap.m.table。 我们有5列: 表中的ID,名称,国家/地区,当前状态和操作。 根据ID,国家/地区和操作,我们需要更新当前状态列。

后端odata批处理操作接受这3个关键字段,即id,国家/地区和操作,并成功更新当前状态字段。 但是,当我们尝试仅更新一条记录以检查批处理操作是否可从ui5应用程序正常运行时,我们在commitChanges()成功回调方法中收到错误消息,错误代码为202。

请找到下面编写的用于执行更新的代码。

 __updateUser:函数(itemsTable){
 var oTable = this.getView()。byId(" tblActive");
 var oModel = this.getView()。getModel();//在此处检查oModel.oData//是{}

 oModel.setUseBatch(true);
 var items = oTable.getItems();
 var changeSetId =" batchupdate";
 oModel.setDeferredGroups([" batchupdate"]);
 var mParameters = {
 " groupId":" batchupdate"
 };
 var row;
 var itemObject;
 var context;
 for(var i = 3; i <4; i ++){//试图更新第四条记录
 行=项目[i];
 context = row.getBindingContext();
 itemObject = context.getObject();
 var value1 =" X";
 var value2 =" XXXX";
 var value3 =" Up";
 oModel.update("/img/sap/opu/odata/sap/entityset/entity/3",{
 国家/地区:value1,
 id:value2,
 动作:value3
 },{
 groupId:" batchupdate"
 });
 }//3是sPath或第3行。
 oModel.submitChanges({
 成功:功能(数据,响应){
//去做
 console.log("成功");
 },
 错误:功能(e){
//去做
 console.log("失败");
 }
 });
 oModel.setRefreshAfterChange(true);
 }
 

我们收到的错误消息是iwfnd/error_log中的变更集处理失败

.... ERROR_TEXT请求URL或元数据定义不正确。

.... REQUEST_LINEPUT sap/opu/odata/sap/entityset/entity/4 HTTP/1.1

并且Chrome控制台成功显示了commitchanges回调。

HTTP请求失败404,未找到,{"错误":{"代码":" 005056A509B11EE1B9A8FEC11C21D78E","消息":{" lang":" en","值":"未为段'sap找到资源 '。"}

我们还尝试了如下更新模型:

oModel.update("/img/sap/opu/odata/sap/enitityset/entity(国家:value1,id:value2,Action:value3",{groupId:" batchupdate"});-错误消息是(数据 由于语法格式错误,无法理解"服务请求"

有人可以建议需要进行哪些更改以使上述代码正常工作。

付费偷看设置
发送
1条回答
clasier
1楼-- · 2020-09-04 22:28
/sap/opu/odata/sap/entityset/entity/3,以确保这不是正确的网址。

/sap/opu/odata/sap/enitityset/entity(国家/地区:value1, id:value2,Action:value3",

您应该使用= not:

一周热门 更多>