[英]how to do a batch Read call in UI5 using oData
我正在尝试以以下方式进行批量读取调用。
批次应具有:
("/EntitySet", "Get", Filter1),
("/EntitySet", "Get", Filter2),
("/EntitySet", "Get", Filter3)
如何进行这样的批量调用。 我参考了这个博客,但没有太大帮助。 https://archive.sap.com/discussions/thread/3957490
提前致谢
您是否需要按程序执行这些调用(通过ODataModel#read )?
如果您使用的是常规绑定,然后只对它们应用过滤器,那么它们将自动分组到一个批处理中(只要您在 ODataModel 的构造函数中使用useBatch
参数启用了批处理模式——默认情况下它是启用的) .
如果您确实在使用 ODataModel#read,通常如果启用批处理模式,它们也会一起批处理。
如果由于某种原因不起作用,您可以始终在使用read时指定groupId
,在进行绑定时分别batchGroupId
,以强制请求一起触发。 您可以使用例如jQuery.sap.uid生成一个(伪)唯一值。 当您生成此 groupId 时,您应该告诉 OData 模型使用setDeferredGroups
来“推迟”其执行。 完成请求后,您可以使用submitChanges
“提交”组。
var sGroup = jQuery.sap.uid(),
oModel = this.getModel();
oModel.setDeferredGroups([sGroup]);
oModel.read("/EntitySet", {groupId: sGroup, filters: ...});
oModel.read("/EntitySet", {groupId: sGroup, filters: ...});
oModel.read("/EntitySet", {groupId: sGroup, filters: ...});
oModel.submitChanges({groupId: sGroup});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.