多个OData批量创建对不同实体的请求

2020-09-02 12:41发布

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

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


嗨,

以下方法在SAPUI5方面是否正确:我正在尝试从SAPUI5程序向后端发送多个创建请求。 有人告诉我,在sapui5中使用变更集和批处理方法是旧方法,您可以使用以下方法,SAPUI5会将所有这些Odata创建请求放入堆栈中,并触发一个将所有创建请求组合在一起的请求。

只需考虑检查这是否是正确的方法(在性能方面也是如此)。 请注意,这里我仅指的是sapui5辅助代码,而不是abap changeset-begin,changeset-process代码。

onSubmitClick:function()

{

.create(" ",function(oData,oResponse(){},成功:function(){},错误:function(){});

.create(" ",function(oData,oResponse(){},成功:function(){},错误:function(){});

.create(" ",function(oData,oResponse(){},成功:function(){},错误:function(){});

.create(" ",function(oData,oResponse(){},成功:function(){},错误:function(){});

}

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

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


嗨,

以下方法在SAPUI5方面是否正确:我正在尝试从SAPUI5程序向后端发送多个创建请求。 有人告诉我,在sapui5中使用变更集和批处理方法是旧方法,您可以使用以下方法,SAPUI5会将所有这些Odata创建请求放入堆栈中,并触发一个将所有创建请求组合在一起的请求。

只需考虑检查这是否是正确的方法(在性能方面也是如此)。 请注意,这里我仅指的是sapui5辅助代码,而不是abap changeset-begin,changeset-process代码。

onSubmitClick:function()

{

.create(" ",function(oData,oResponse(){},成功:function(){},错误:function(){});

.create(" ",function(oData,oResponse(){},成功:function(){},错误:function(){});

.create(" ",function(oData,oResponse(){},成功:function(){},错误:function(){});

.create(" ",function(oData,oResponse(){},成功:function(){},错误:function(){});

}

付费偷看设置
发送
8条回答
软件心理学工程师
1楼 · 2020-09-02 13:12.采纳回答

您好 Venkata Sunil Naidu Chennam

我不认为 是旧方法还是不建议使用的方法。 使用您的方法(粘贴的代码),您将有多个成功调用,如果您想知道所有创建是否成功并且想要集体显示一条消息,这将是一个问题。

为此您可以使用:

 oModel.setDeferredGroups([" group1"]);
 oModel.create(sPath,oData,{groupId:" group1"});
 oModel.create(sPath,oData2,{groupId:" group1"});
 oModel.submitChanges({
     groupId:" group1",
     成功:this.successCallback,
     错误:this.errorCallback
 }); 

使用上述逻辑,一旦成功完成所有创建操作,您将在SubmitChanges成功处理函数中获得集体响应。

因此您需要选择

如果要了解changesetId和groupId之间的区别,请查看此博客:

https://blogs.sap.com/2018/06/08/在sap-ui5/

中进行具有多个变更集ID的批量批注调用:注意:使用普通的odata模型(V1)是旧方法(不建议使用)。 因此,在ui5中使用odata v2模型

感谢

Mahesh

能不能别闹
2楼-- · 2020-09-02 13:24

哦,那真是太糟糕了。 目前与此主题相关,我没有任何问题。 感谢吨马赫什(Mahesh)。

compass1988
3楼-- · 2020-09-02 13:08

您必须使用v2 odata模型,数千年前已经淘汰了v1。

软件心理学工程师
4楼-- · 2020-09-02 13:03

您需要使用odata V2模型作为v1模型 如 Jun Wu 所述。 我在原始答案中也已经提到了这一点。

让我们知道在此之后您是否仍然遇到任何问题。

提示:您可以点击评论,然后回复我 发布新答案。

致谢,

Mahesh

太Q了
5楼-- · 2020-09-02 13:03

谢谢。

当我这样做时,出现错误'setDeferredGroups'而不是oDataModel的函数。

-----

p.p1 {边距:0.0像素0.0像素0.0像素0.0像素; 字体:12.0px Menlo; color:#2a00ff} p.p2 {margin:0.0px 0.0px 0.0px 0.0px; 字体:12.0px Menlo} span.s1 {color:#7f0055} span.s2 {color:#000000} span.Apple-tab-span {white-space:pre}

var apprURL ="代理/https/<域>:<端口>/sap/opu/odata/sap/<服务名>";

var oDataModel =新的sap.ui.model.odata.ODataModel(apprURL);

oDataModel.setDeferredGroups([" group1"]); //这里出现上述错误

--------

请提出任何建议

bbpeas
6楼-- · 2020-09-02 13:19

提示:您可以点击评论并回复我,而不是发布新答案。 因为答案只有在有正确答案的情况下才能发布。

如果需要更多信息,请告诉我们。 那:) :)祝一切顺利!

致谢,

Mahesh

bbpeas
7楼-- · 2020-09-02 13:05

请忽略css内容,该内容是错误复制的。

请注意,在当前的SAPUI5应用程序中,我正在使用两项服务。 不知道这是否可能是错误的原因。

一周热门 更多>