如何在V2 OData模型中一起执行创建和更新操作?

2020-09-12 06:58发布

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

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


专家您好,

我有一个场景,我必须使用v2 OData模型在单个批处理调用中一起执行创建(深层实体)和更新操作。

我一次测试了单个操作,并且工作正常。 但是,当我尝试在单个批处理调用中同时执行更新和创建时,它仅执行更新并为创建给出超时错误。 我尝试了" groupId"和" changeSetId"的各种组合,但是没有用。

注意:在V2 OData模型中,是否可以在单个批处理调用中同时执行创建和更新?

此致

Archana

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

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


专家您好,

我有一个场景,我必须使用v2 OData模型在单个批处理调用中一起执行创建(深层实体)和更新操作。

我一次测试了单个操作,并且工作正常。 但是,当我尝试在单个批处理调用中同时执行更新和创建时,它仅执行更新并为创建给出超时错误。 我尝试了" groupId"和" changeSetId"的各种组合,但是没有用。

注意:在V2 OData模型中,是否可以在单个批处理调用中同时执行创建和更新?

此致

Archana

付费偷看设置
发送
3条回答
宇峰Kouji
1楼-- · 2020-09-12 07:14

您应该能够在同一批请求中将它们都发送。 为oModel设置一个延迟的组,并在调用create()和update()时,为其赋予相同的groupID。 然后,当您使用ID调用commitChanges时,应在同一批处理请求中将它们都发送出去。

一只江湖小虾
2楼-- · 2020-09-12 07:20

是的,当我为每种请求类型设置后端断点时,(更新和创建请求)都到达后端。

问题是,当我同时提到groupId和deferred groups时,它尝试同时运行两个请求,并给出Socket连接超时错误。 因此,没有任何请求得到执行。

所以我必须为两个请求都提到groupId和deferred groups。 但是这样做后,它在chrome开发人员工具的"网络"标签中显示了两个单独的$ batch调用,这是错误的,因为它应该在具有单个$ batch条目的同一批处理调用中。

下面是我正在尝试的代码:

oModel.create("/img/EntitySet1",request,{groupId:" batchUpdateGroup1"}); ---->包含标题和子字段(深实体结构)的请求

oModel.update("/img/EntitySet2(DoId = guid \'" + request.Id +" \',Isflag ='X')",请求,{groupId:" batchUpdateGroup2"});

oModel.setUseBatch(true);

oModel.setDefaultBindingMode(" TwoWay");

oModel.setDeferredGroups([" batchUpdateGroup1"]);

var aDeferredGroups = oModel.getDeferredGroups();

aDeferredGroups = aDeferredGroups.concat([" batchUpdateGroup2"]);

oModel.setDeferredGroups(aDeferredGroups);

oModel.submitChanges({aDeferredGroups,成功:function(oData,oResponse){},错误:function(oError){}});

在这里,我可以看到2个批处理调用。这是预期的行为吗?是否可以在单个$ batch中进行两个调用?

此致

Archana

小灯塔
3楼-- · 2020-09-12 07:15

为每种请求类型设置后端断点时会发生什么? 创建请求完全可以到达吗?

一周热门 更多>

点击此处---> EasySAP.com 一起学习S4 HANA ...