2017-03-09 2 views
0

Um Daten zu erstellen im SAP-Backend-I verwenden:SAPUI5 erstellen mehrere Werte (Batch) unter Verwendung von Post

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

Jetzt habe ich mehrere Zeilen in meinem oEntry und es funktioniert nicht. Ich fand die folgende Lösung

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

Aber leider funktioniert es nicht mit meiner OData Version 2.0. Ich bekomme immer einen Fehler als

„addBatchChangeOperations ist keine Funktion“

Dann habe ich versucht, um herauszufinden, welche Funktion ich mit OData v2 verwenden kann. Ich könnte das finden.

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

Aber es funktioniert immer noch nicht. Wie repariere ich es?

Antwort

1

Ich nehme an, Sie möchten mehrere Erstellungsanfragen in einer Charge bündeln, richtig?

Für ODataModel create Methode können Sie zusätzliche groupId definieren. Siehe unten.

mParameter. groupId? ID einer Anforderungsgruppe; Anfragen zur gleichen Gruppe gehören, werden in einer Stapelanfrag

Sie mehr mit den gleichen groupId erstellen einreichen können Grundsätzlich gebündelt werden, die Sie selbst definieren können.

Zuerst müssen Sie eine bestimmte deferredGroups für Set ODataModel

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

Dann rufen Sie mehrere erstellen.

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

Endlich können Sie submitChanges mit einer einzigen Charge für mehrere Anfragen nennen.

oModel.submitChanges(mParameters); 
+0

vielen Dank. Ich arbeite, aber nicht wie gewünscht. Nur der letzte Eintrag von oModel.create wird eingefügt. Ich weiß nicht, ob ich hinten oder vorne etwas falsch mache. – Aline

+0

Sie überprüfen die oData-Anforderung in den Chrome-Entwicklungstools, um festzustellen, ob die mehreren Anforderungen gesendet wurden. Wenn dies zutrifft, sollte es sich um das Back-End-Problem handeln. Sie müssen die Backend-Methoden changeset_begin, changeset_process und changeset_end implementieren. Sie können diesen Beitrag überprüfen https://help.sap.com/saphelp_nw74/helpdata/en/94/a126519eff236ee10000000a445394/content.htm – Allen

+0

So endlich funktioniert es gut. Ich hatte denselben oEntry Wert. Deshalb dachte ich, es würde nicht funktionieren. Vielen Dank @Allen – Aline

Verwandte Themen