我試圖按照以下方式進行批量讀取調用。如何做批量使用oData在UI5中讀取調用
批應具備:
( 「/ EntitySet的」, 「讓」,過濾器1),
( 「/ EntitySet的」, 「讓」,過濾器2),
( 「/ EntitySet的」, 「讓」, Filter3)
如何做這樣的批處理調用。 我提到這個博客,但沒有太大的幫助。 https://archive.sap.com/discussions/thread/3957490
在此先感謝
我試圖按照以下方式進行批量讀取調用。如何做批量使用oData在UI5中讀取調用
批應具備:
( 「/ EntitySet的」, 「讓」,過濾器1),
( 「/ EntitySet的」, 「讓」,過濾器2),
( 「/ EntitySet的」, 「讓」, Filter3)
如何做這樣的批處理調用。 我提到這個博客,但沒有太大的幫助。 https://archive.sap.com/discussions/thread/3957490
在此先感謝
你需要在程序上做這些呼叫(通過ODataModel#read)?
如果您使用的是常規綁定,然後在其上應用過濾器,那麼它們將自動分組到一個批處理中(只要您在ODataModel的構造函數中啓用了useBatch
參數的批處理模式 - 默認情況下它被啓用)。
如果您確實正在使用ODataModel#讀取,通常在啓用批處理模式時它們也會一起批處理。
如果沒有出於某種原因,你可以使用時讀取,分別batchGroupId
做綁定時,強制被觸發在一起的請求始終指定groupId
。您可以通過例如生成一個(僞)唯一值。 jQuery.sap.uid。當你生成這個groupId時,你應該通過使用setDeferredGroups
來告訴OData模型「推遲」它的執行。完成請求後,您可以使用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});