繁体   English   中英

如何使用 oData 在 UI5 中进行批量读取调用

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM