2017-03-13 1 views

Répondre

0

Est-ce que vous devez faire ces appels procédure (via ODataModel#read)? Si vous utilisez des liaisons régulières, puis appliquez-y simplement vos filtres, elles seront automatiquement groupées dans un lot (à condition que vous ayez activé le mode de traitement par lots dans le constructeur ODataModel avec le paramètre useBatch - par défaut c'est activé).

Si vous utilisez effectivement ODataModel # read, normalement, ils sont également groupés si le mode batch est activé.

Si cela ne fonctionne pas pour une raison quelconque, vous pouvez toujours spécifier groupId lors de l'utilisation de lecture, respectivement batchGroupId lors d'une liaison, pour forcer le déclenchement simultané des demandes. Vous pouvez générer une valeur (pseudo) unique pour ceci avec, par exemple, jQuery.sap.uid. Lorsque vous générez ce groupId, vous devez indiquer au modèle OData de "différer" son exécution en utilisant setDeferredGroups. Lorsque vous avez terminé vos demandes, vous pouvez "soumettre" le groupe en utilisant 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});