2017-03-09 3 views
0

Pour publier des données dans le système SAP back-end J'utilise:SAPUI5 créer de la valeur multiple (par lots) à l'aide post

oModel.create("/Dummyset", oEntry); //so far it works fine 

Maintenant, j'ai plusieurs lignes dans mon oEntry et il ne fonctionne pas. J'ai trouvé la solution suivante

aBatchOperation.push(contactBatchOperation);   
oModel.addBatchChangeOperations(aBatchOperation); 
oModel.submitBatch(fSuccess,fError,true); 

Mais malheureusement, cela ne fonctionne pas avec ma version OData 2.0. Je reçois toujours une erreur

« addBatchChangeOperations est pas une fonction »

Alors j'ai essayé de savoir quelle fonction je peux utiliser avec OData v2. Je pourrais trouver ça.

batchChanges.push(oModel._createBatchRequest("/AttributesSet", "POST", wert.Atrributes[i].name)); 
oModel._submitBatchRequest(oModel.setProperty("/AttributesSet", batchChanges), true); 

Mais cela ne fonctionne toujours pas. Comment je le répare ?

Répondre

1

Je suppose que vous voulez regrouper plusieurs demandes de création en un seul lot, n'est-ce pas?

Pour la méthode ODataModel create, vous pouvez définir un ID groupe supplémentaire. Voir ci-dessous.

mParamètres. ID groupe? ID d'un groupe de requête; demandes appartenant au même groupe seront regroupés dans une demande de traitement par lots

gros, vous pouvez soumettre plusieurs créer avec le même groupId que vous pouvez définir vous-même.

D'abord, vous devez définir un certain deferredGroups pour

ODataModel
var aDeferredGroup = oModel.getDeferredGroups().push("batchCreate"); 
oModel.setDeferredGroups(aDeferredGroup); 

Ensuite, vous appelez plusieurs créer.

var mParameters = {groupId:"batchCreate"}; 
oModel.create("/Dummyset", oEntry1, mParameters); 
oModel.create("/Dummyset", oEntry2, mParameters); 
oModel.create("/Dummyset", oEntry3, mParameters); 

Enfin, vous pouvez appeler submitChanges avec un lot unique pour plusieurs demandes.

oModel.submitChanges(mParameters); 
+0

merci beaucoup. Je travaille, mais pas comme souhaité. seul le dernier élément de oModel.create est inséré. Je ne sais pas, si je fais quelque chose de mal à l'arrière ou à l'avant. – Aline

+0

Vous vérifiez la requête oData dans les outils de développement Chrome pour voir si les demandes multiples sont envoyées. Si cela est vrai, cela devrait être le problème principal. Vous devez implémenter les méthodes backend changeset_begin, changeset_process et changeset_end. Vous pouvez vérifier ce post https://help.sap.com/saphelp_nw74/helpdata/en/94/a126519eff236ee10000000a445394/content.htm – Allen

+0

Donc, finalement, cela fonctionne bien. J'avais la même valeur oEntry. C'est pourquoi je pensais que ça ne fonctionnait pas. Merci @Allen – Aline