SAPUI5 - les Opérations par Lots - comment le faire?
J'ai eu plusieurs EntititySets qui je veux mettre à jour dans mon Backend SAP, donc je récupérer mes données (payload) de JSON et mettez dans une demande (de son succès dans le nœud "données"):
Code:
var oTreeJSON = oTreeTable.getModel().getProperty("/root");
var oModel = sap.ui.getCore().getModel();
var batchChanges = [];
for (var i = 0; i < oTreeAll.length; i++) {
batchChanges.push(oModel.createBatchOperation("/sap/opu/odata/sap/MY_SERVICE/?$batch", "POST", oTreeAll[i]));
}
oModel.submitBatch();
Ma Requête ressemble à ceci:
Où il devrait arriver dans SAP (méthode)? Ce que je fais mal, il n'y a aucune erreur n'importe où, mais aucun appel n'est arrivé dans mon backend... Heureux au sujet de tout soupçon! Merci.
Exemple de travail avec réduction de la complexité:
var oEntry = {};
oEntry.MyId = "00000001";
oEntry.Value = "300";
batchChanges.push(oModel.createBatchOperation("MyEntitySet", "POST", oEntry, null));
oModel.addBatchChangeOperations(batchChanges);
oModel.setUseBatch(true);
oModel.submitBatch();
Pour l'enregistrement, les appels de méthode:
- 1) /IWBEP/IF_MGW_CORE_SRV_RUNTIME~CHANGESET_BEGIN: SAP Proposition de SORTIE.
- 2) /iwbep/if_mgw_appl_srv_runtime~create_entity. (n fois) //faire votre
des trucs avec l'entité - 3) /iwbep/if_mgw_core_srv_runtime~changeset_end: SAP Proposition de s'ENGAGER
TRAVAIL.
OriginalL'auteur zYrEx | 2014-10-27
Vous devez vous connecter pour publier un commentaire.
Dans le cas où vous avez besoin de définir un point d'arrêt dans le backend pour les opérations par lots, il suffit de mettre un point de rupture dans la méthode
CHANGESET_BEGIN
ouCHANGESET_END
.Salut, vous avez besoin d'ajouter des opérations de traitement par lots. oModel.addBatchChangeOperations(batchChanges); oModel.setUseBatch(true);
Je l'ai eu en cours d'exécution pour une version avec une réduction de la complexité, maintenant je l'ai eu pour l'adapter.. à moins que l'appel est transféré à l'arrière-plan. Je vais mettre à jour ma réponse, je pense que vos deux indicateurs sont nécessaires, donc je vais l'accepter comme réponse 🙂
addBatchChangeOperations
est la méthode danssap.ui.model.odata.ODataModel
, comment le faire danssap.ui.model.odata.v2.ODataModel
?OriginalL'auteur Haojie
Poster mon code postal pour
sap.ui.model.odata.v2.ODataModel
"models": {
"": {
"dataSource": "mainService",
"preload": true,
"settings" : {
"useBatch" : true,
"defaultBindingMode": "TwoWay",
"defaultCountMode" : "None",
//default is sap.ui.model.odata.UpdateMethod.Merge
"defaultUpdateMethod" : "Put"
}
}
}
En fait, v2.ODataModel sera useBatch par défaut, utilisez la
update()
/create()
/delete()
sanssetDeferredGroups()
etsubmitChanges()
est OK. Mais de cette façon, je vais obtenir de rappel pour chaque demande, j'utilisesubmitChanges
de fusionner les réponses à un.OriginalL'auteur Tina Chen