on ‎2016 Jan 29 8:07 AM
Hi,
I am trying to create with deep structure. When I send the request with create() method of odatamodel I get Error while parsing an XML stream: 'BOM / charset detection failed' error. Here is the full error text:
Here is my SAPUI5 code:
onDefaultHataSavePress : function(oEvent) {
var errorFlag = false;
var dhChild = [];
var oDHLstItems = this.getView().byId("dhLst").getItems();
var oController = this;
jQuery.each(oDHLstItems, function(i, item) {
var oDefId = item.getBindingContext().getProperty("Zzhatano");
var oContent = item.getContent()[0].getContent();
var oRContent = oContent[1].getItems();
var oFindValue = oRContent[1].getValue();
if (oFindValue.length > 5) {
var tmpMessage = oController.getView().getModel("i18n")
.getResourceBundle().getText("findValLonger");
MessageToast.show(tmpMessage, {
width : "25em"
});
errorFlag = true;
return false;
}
var oRBG = oRContent[0];
var selectedRBtn = oRBG.getSelectedIndex();
if (selectedRBtn == -1) {
var tmpMessage = oController.getView().getModel("i18n")
.getResourceBundle().getText("selectAll");
MessageToast.show(tmpMessage, {
width : "25em"
});
errorFlag = true;
return false;
}
var oRes = "OK";
if (selectedRBtn === 1)
oRes = "NOK";
else if (selectedRBtn === 2)
oRes = "NA";
dhChild.push({
Kltadm : oController.dHKaliteAdm,
Aufnr : oController.dHIsEmri,
Dhhata : oDefId,
Dhsonuc : oRes,
Bulnndgr : oFindValue
});
});
if (errorFlag)
return;
var dhHeader = {
Kltadm : this.dHKaliteAdm,
Aufnr : this.dHIsEmri
}
dhHeader.DhItem = dhChild;
var oModel = oController.getView().getModel();
oModel.setHeaders({
"Content-Type" : "application/json"
});
oModel.create("/DhHeaderSet", dhHeader, null, function() {
var tmpMessage = oController.getView().getModel("i18n")
.getResourceBundle().getText("workOrderAdded");
MessageToast.show(tmpMessage, {
width : "25em"
});
oController.getView().byId("isEmriListesiTbl").getBinding(
"items").refresh(true);
}, function(oError) {
var tmpMessage = oController.getView().getModel("i18n")
.getResourceBundle().getText("errorMsg");
MessageToast.show(tmpMessage, {
width : "25em"
});
});
Here is my deep entity:
Request clarification before answering.
I figured it out. I used OData.request to solve the problem. I had to implement get_entity service.
var header_xcsrf_token;
OData
.request(
{
requestUri : "http://xxxx:8000/sap/opu/odata/sap/ZQMGEN_001_SRV/DhHeaderSet(Aufnr='0',Kltadm='0')",
method : "GET",
headers : {
"X-Requested-With" : "XMLHttpRequest",
"Content-Type" : "application/atom+xml",
"DataServiceVersion" : "2.0",
"X-CSRF-Token" : "Fetch"
}
},
function(data,
response) {
header_xcsrf_token = response.headers['x-csrf-token'];
OData
.request(
{
requestUri : "http://xxxx:8000/sap/opu/odata/sap/ZQMGEN_001_SRV/DhHeaderSet/",
method : "POST",
headers : {
"X-Requested-With" : "XMLHttpRequest",
"Content-Type" : "application/atom+xml",
"DataServiceVersion" : "2.0",
"Accept" : "application/atom+xml,application/atomsvc+xml,application/xml",
"X-CSRF-Token" : header_xcsrf_token
},
data : dhHeader
},
function(
data,
response) {
var tmpMessage = oController
.getView()
.getModel(
"i18n")
.getResourceBundle()
.getText(
"dhSucc");
MessageToast
.show(
tmpMessage,
{
width : "25em"
});
oController.onNavBack();
},
function(
err) {
var tmpMessage = oController
.getView()
.getModel(
"i18n")
.getResourceBundle()
.getText(
"errorMsg");
MessageToast
.show(
tmpMessage,
{
width : "25em"
});
});
},
function(err) {
var tmpMessage = oController
.getView()
.getModel(
"i18n")
.getResourceBundle()
.getText(
"errorMsg");
MessageToast
.show(
tmpMessage,
{
width : "25em"
});
});
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
| User | Count |
|---|---|
| 15 | |
| 9 | |
| 6 | |
| 4 | |
| 4 | |
| 4 | |
| 3 | |
| 2 | |
| 2 | |
| 2 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.