on 07-07-2023 2:16 PM
Hello Experts,
i'm using the oData submitChanges method in my UI5 component.
In case of update entry, I want the result back which we will be displayed in the table.
How can i get it?
I have updated response in Odata method as shown below.
LOOP AT it_changeset_request INTO ls_changeset_request..
lo_delete_context ?= ls_changeset_request-request_context.
ls_changeset_response-operation_no = ls_changeset_request-operation_no.
ls_changeset_request-entry_provider->read_entry_data( IMPORTING es_data = ls_stravelag_key ).
APPEND ls_stravelag_key TO lt_cats.
ls_stravelag_key-date4 = 'WITH'.
copy_data_to_ref(
EXPORTING
is_data = ls_stravelag_key
CHANGING
cr_data = ls_changeset_response-entity_data ).
APPEND ls_stravelag_key TO gt_bulk_tab.
APPEND VALUE #( operation_no = ls_changeset_response-operation_no
headers = ls_changeset_request-request_headers
entity_data = ls_changeset_response-entity_data ) TO ct_changeset_response.
ENDLOOP.
Controller Code :
Press_check: function (oEvt) {
// var oModel = this.getView().byId("Table3").getModel();
var oModel = new sap.ui.model.odata.v2.ODataModel("/sap/opu/odata/SAP/ZKP_CAT2_V1_SRV_05")
var mParameters = {};
var oData = {};
var oTable = this.getView().byId("Table3");
var selectedItems = oTable.getRows();
var groupId = "CheckGroup";
oModel.setDeferredGroups([groupId]);
for (var i = 0; i < selectedItems.length; i++) {
mParameters.groupId = groupId;
// var item = selectedItems[i].getBindingContext().getObject();
// oTable.getRows()[3].getCells()[1].mProperties.value
var Cells = oTable.getRows()[i].getCells();
if (Cells[4].mProperties.value == '') {
var Date03 = 'NA'
}
else {
var Date03 = Cells[4].mProperties.value
}
oData.Date04 = 'TP';
oModel.sDefaultUpdateMethod = sap.ui.model.odata.UpdateMethod.Put // manifest
var relpath =
"/GetBulkSet(" +
"Employeenumber=" +
"'" +
Employeenumber +
"'" +
"," +
"WbsElement=" +
"'" +
Cells[0].mProperties.value +
"'" +
"," +
"Date03=" +
"'" +
Date03 +
"'" +
")";
// oModel.remove(relpath, mParameters);
oModel.update(relpath, oData, mParameters);
}
oModel.submitChanges({
success: function (oData, oResponse) {
var bStatusExists = "response" in oResponse.data.__batchResponses[0];
if (oData.__batchResponses[0].message === 'HTTP request failed') {
sap.m.MessageBox.error(JSON.parse(oData.__batchResponses[0].response.body)["error"]["message"]["value"], {
title: "Error",
initialFocus: null
});
}
else {
sap.m.MessageBox.success(JSON.parse(oResponse.data.__batchResponses[0].__changeResponses[0].headers['sap-message']).message, {
title: "Success",
initialFocus: null
});
}
},
error: function (oError) {
sap.m.MessageBox.error(JSON.parse(oError.responseText)["error"]["message"]["value"], {
title: "Error",
initialFocus: null
});
},
groupId: groupId,
});
// start calling get entity
//this.getView().byId("Table3").getBinding();
// end
}
Please share reference code of Odata method and controller.
Regards
KP
Maybe just try to refresh the binding like:
sap.m.MessageBox.success(JSON.parse(oResponse.data.__batchResponses[0].__changeResponses[0].headers['sap-message']).message, {
title: "Success",
initialFocus: null
});
// rebind the table to its OData source after the submitChanges() call
oTable.getBinding("rows").refresh();
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
80 | |
10 | |
9 | |
8 | |
7 | |
7 | |
6 | |
6 | |
5 | |
5 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.