点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
专家您好,
我遇到了一个奇怪的问题,我试图在SAPUI5 V2 Odata模型中使用批处理操作进行更新。 我正在使用下面的代码来实现这一目标-
oModel.setDefaultBindingMode(sap.ui.model.BindingMode.TwoWay); oModel.setUseBatch(true); oModel.setDeferredGroups([" foo"]); var mParameters = { groupId:" foo", 成功:function(odata){}, 错误:function(odata){}}; //将所有行收集到BatchChanges中 for(var m = 0; m使用上面的代码,如果任何行中没有更新错误,我将得到正确的响应,但是如果任何行更新失败,则我将不会获得所有响应,仅得到失败的响应。
为完全理解,我提供了以下两种情况的请求和答复-
在一个变更集中有错误时请求有效负载-
-batch_f637-631d-aeed 内容类型:多部分/混合; boundary = changeset_3c85-7b07-55c9 --changeset_3c85-7b07-55c9 内容类型:application/http 内容传输编码:二进制 合并EntitySet(key ='XXXXXX')HTTP/1.1 sap-contextid-accept:标头 接受:application/json 接受语言:zh DataServiceVersion:2.0 MaxDataServiceVersion:2.0 SAP关闭取消:true 内容类型:application/json 内容长度:195 <我的第1行数据-没有任何错误> --changeset_3c85-7b07-55c9 内容类型:application/http 内容传输编码:二进制 合并EntitySet(key ='YYYYY')HTTP/1.1 sap-contextid-accept:标头 接受:application/json 接受语言:zh DataServiceVersion:2.0 MaxDataServiceVersion:2.0 SAP关闭取消:true 内容类型:application/json 内容长度:195 <我的第2行数据-有任何错误,例如 表格中的键YYYYY不可用> --changeset_3c85-7b07-55c9-- --batch_f637-631d-aeed--对以上请求的响应(当一个变更集中有错误时)-显然我没有收到成功行的成功响应。
-4575CB054C5C353865B3B3115238F2640 内容类型:application/http 内容长度:894 内容传输编码:二进制 HTTP/1.1 400错误请求 内容类型:application/json; charset = utf-8 内容长度:774 数据服务版本:1.0 {"错误":{"代码":" ZEWM/002","消息":{"语言":" en","值":"无效密钥。"},"内部错误":{"应用程序":{ " component_id":""," service_namespace":"/img/SAP/"," service_id":" Test_SRV"," service_version":" 0001"}," transactionid":" 4A641AE4AE290000E005C6BE87770342"," timestamp":""," Error_Resolution":{" SAP_Transaction":""," SAP_Note":"请参阅SAP Note 1797736进行错误分析(https://service.sap.com/sap/support/notes/1797736)","Batch_SAP_Note":"请参阅 有关使用$ batch(https://service.sap.com/sap/support/notes/1869434)"}," errordetails":[{"代码":" ZXXX/002","消息的详细信息,请参阅SAP注释1869434 ":"无效密钥。"," propertyref":"","严重性":"错误","目标":""},{"代码":"/img/IWBEP/CX_SD_GEN_DPC_BUSINS","消息":"无效密钥 。"," propertyref":"","严重性":"错误","目标":""}]}}} --4575CB054C5C353865B3B3115238F2640--但是,如果两行都正确且没有错误,我将获得有效答复以下的答复-
-2CF0A29AD45ACBEAEC7EF1848F06E9010 内容类型:多部分/混合; 边界= 2CF0A29AD45ACBEAEC7EF1848F06E9011 内容长度:437 --2CF0A29AD45ACBEAEC7EF1848F06E9011 内容类型:application/http 内容长度:71 内容传输编码:二进制 HTTP/1.1 204无内容 内容长度:0 数据服务版本:2.0 --2CF0A29AD45ACBEAEC7EF1848F06E9011 内容类型:application/http 内容长度:71 内容传输编码:二进制 HTTP/1.1 204无内容 内容长度:0 数据服务版本:2.0 --2CF0A29AD45ACBEAEC7EF1848F06E9011-- --2CF0A29AD45ACBEAEC7EF1848F06E9010--如您所见,万一任何行更新失败,我都无法得到正确的响应,请帮助我解决此问题。
此致
Ravi
这就是它的工作方式,
一个或全部
感谢Jun的宝贵宝贵意见。
有一种方法,如果一行有错误,则只有变更集提供者错误响应和其他执行成功消息。
此致
Ravi
您好专家
当一个变更集中有错误时,我们是否有办法解决,仅给出错误响应并通过成功消息执行其他操作?
谢谢
Ravi
一周热门 更多>