0
我有一個定製的表格看起來如下: 使用批處理多進程
正如你可以在頁腳看到的,它可以添加,刪除和保存項目表。
假設用戶添加2個新項目,刪除1個項目並單擊保存按鈕。
我的問題是,我應該如何處理髮送到服務器的請求?
我應該將表中的所有項目發送到服務器,並在將項目插入表格後首先刪除所有項目。
我有一個定製的表格看起來如下: 使用批處理多進程
正如你可以在頁腳看到的,它可以添加,刪除和保存項目表。
假設用戶添加2個新項目,刪除1個項目並單擊保存按鈕。
我的問題是,我應該如何處理髮送到服務器的請求?
我應該將表中的所有項目發送到服務器,並在將項目插入表格後首先刪除所有項目。
嗨,我認爲這將解釋如何建立和發送批量請求。 你應該記住,這個片段是由爲SAPUI5 v1.28.x,之後batchId是過時;)
你也應該記住,我使用ODataModel v2。 這些都是我用來創建這些調用的所有方法:
sendBatchRequest: function (itemsToBeRemoved, itemsToBeUpdated, itemsToBeCreated) {
var controller = this;
var batchGroupId = "myBatchGroupId";
var oModel = this.getView().getModel();
var sKey = null;
oModel.setUseBatch(true);
//Batch request to create objects
for(sKey in itemsToBeCreated) {
oModel.create(
itemsToBeUpdated[sKey].getPath(),
itemsToBeUpdated[sKey].getData(), {
batchGroupId: batchGroupId
});
}
//Batch request to update objects
//Merge will allow you to partially update object with deltas
for(sKey in itemsToBeUpdated) {
oModel.update(
itemsToBeUpdated[sKey].getPath(),
itemsToBeUpdated[sKey].getData(), {
merge: true,
batchGroupId: batchGroupId
});
}
//Batch request to delete objects
for(sKey in itemsToBeRemoved) {
oModel.remove(itemsToBeRemoved[sKey].getPath(), {
batchGroupId: batchGroupId
});
}
oModel.setDeferredBatchGroups([batchGroupId]);
oModel.submitChanges({
batchGroupId: batchGroupId,
success: function() {
console.log("Everything is awesome!");
},
error: function() {
console.log("Houston we have a problem!");
}
});
}