SAPUI5 - Batch-Operationen - wie man es richtig macht?
Bekam ich mehrere EntititySets, die ich aktualisieren möchten, in meinem SAP-Backend, also ich hol meine Daten (payload) als JSON und steckte es in eine Anfrage (die erfolgreich in den Knoten "Daten"):
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();
Meine Anfrage sieht wie folgt aus:
Wo sollte es ankommen in SAP (welche Methode)? Was mache ich falsch, es ist kein Fehler überall, aber kein Anruf kam in mein backend... freue mich über jede Tipp! Danke.
Beispiel arbeiten mit reduzierter Komplexität:
var oEntry = {};
oEntry.MyId = "00000001";
oEntry.Value = "300";
batchChanges.push(oModel.createBatchOperation("MyEntitySet", "POST", oEntry, null));
oModel.addBatchChangeOperations(batchChanges);
oModel.setUseBatch(true);
oModel.submitBatch();
Für den Datensatz, Methode Aufrufe:
- 1) /IWBEP/IF_MGW_CORE_SRV_RUNTIME~CHANGESET_BEGIN: SAP Vorschlag BEENDEN.
- 2) /iwbep/if_mgw_appl_srv_runtime~create_entity. (n-mal) //tun Sie Ihre
Zeug mit dem Unternehmen - 3) /iwbep/if_mgw_core_srv_runtime~changeset_end: SAP Vorschlag VERPFLICHTEN
ARBEIT.
InformationsquelleAutor zYrEx | 2014-10-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
In Fall müssen Sie einen Haltepunkt setzen im backend können Sie für batch-Operationen, nur legen Sie einen Haltepunkt in der Methode
CHANGESET_BEGIN
oderCHANGESET_END
.Hallo, Sie müssen hinzufügen, die batch-Operationen. oModel.addBatchChangeOperations(batchChanges); oModel.setUseBatch(true);
Ich habe es mit einer version mit reduzierter Komplexität, jetzt habe ich es anpassen.. zumindest der Anruf wird übertragen auf das backend. Ich update meine Antwort, ich denke, deine zwei Hinweise notwendig sind, so werde ich Sie akzeptieren es als Antwort 🙂
addBatchChangeOperations
Methodesap.ui.model.odata.ODataModel
, wie es insap.ui.model.odata.v2.ODataModel
?InformationsquelleAutor Haojie
Post meine POST-code für
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"
}
}
}
Eigentlich, v2.ODataModel wird useBatch standardmäßig
update()
/create()
/delete()
ohnesetDeferredGroups()
undsubmitChanges()
ist OK. Aber auf diese Weise, ich werde callback für jede Anfrage, die ich verwendensubmitChanges
Zusammenführen der Antworten zu.InformationsquelleAutor Tina Chen