cancel
Showing results for 
Search instead for 
Did you mean: 

oData xml parsing error while sending data to server

Former Member
0 Kudos

Hi, I am getting this error:

The following problem occurred: HTTP request failed400,Bad Request,{"error {"code":"CX_SXML_PARSE_ERROR/001560AA0E081DEB8CA398CC1690D406"


Sap NetWeaver Gateway error log just says "Error while parsing an XML string"

writing a web application in WEBIDE using javascript. Tried to send data like this:


OData.request({

       requestUri: "http://asd/sap/opu/odata/sap/ZHREC_EMPL_CR_SRV/EmployeeSet",

       method: "GET",

       headers: {

            "X-Requested-With": "XMLHttpRequest",

            "Content-Type": "application/atom + xml",

            "DataServiceVersion": "2.0",

            "X-CSRF-Token": "Fetch"

       }

  },

  function(data, response) {

       var header_xcsrf_token = response.headers['x-csrf-token'];

       var oHeaders = {

            "x-csrf-token": header_xcsrf_token,

            'Accept': 'application/json'

       };

       OData.request({

            requestUri: "http://asd/sap/opu/odata/sap/ZHREC_EMPL_CR_SRV/EmployeeSet",

            method: "POST",

            headers: oHeaders,

            data: oEntry

       },

       function(data, request) {

            console.log("Success");

       },

       function(err) {

            console.log("Forward failed: " + err);

       }

  );

  },

  function(err) {

       var request = err.request;

       var response = err.response;

       console.log("Error in Get -- Request " + request + " Response " + response);

  }

  );

oEntry has mostly Edm.String values with 1 Edm.DateTime value but that is not the problem.

I have also tried like this:


var sServiceUrl = "http://asd/sap/opu/odata/sap/ZHREC_EMPL_CR_SRV";

        var oModel = new sap.ui.model.odata.ODataModel(sServiceUrl, true);

        oModel.create('/EmployeeSet', oEntry, null,

            function() {

                alert("success");

            },

            function() {

                alert("failure");

            }

        );

I still get same error. What is causing the error and how can i get over it (beer doesn't count)?

Thanks in advance,

Accepted Solutions (1)

Accepted Solutions (1)

Former Member

Apparently one parameter was a number but webservice was expecting a string so i added oEntry.ParameterName.toString() and worked.

Sorry for bothering:)

Answers (2)

Answers (2)

Former Member
0 Kudos

Hello German,

I received the response in the below structure.

when I did parse with oEvent.getParameters("mParameters").

  1. ileName: "calc_view.xml"
  2. headers: Object
  3. id: "__xmlview1--fileUploader"
  4. readyStateXHR: 4
  5. requestHeaders: Array[2]
  6. response: "SY/530An exception was raised.An exception was raisederror"
  7. responseRaw: "<?xml version="1.0" encoding="utf-8"?><error xmlns="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"><code>SY/530</code><message xml:lang="en">An exception was raised.</message><innererror><application><component_id>xxx</component_id><service_namespace>/SAP/</service_namespace><service_id>XXX_SRV</service_id><service_version>0001</service_version></application><transactionid>56601A156D8020D3E10000000A601A8F</transactionid><timestamp>20151204071504.2239310</timestamp><Error_Resolution><SAP_Transaction>Run transaction /IWFND/ERROR_LOG on SAP Gateway hub system and search for entries with the timestamp above for more details</SAP_Transaction><SAP_Note>See SAP Note 1797736 for error analysis (https://service.sap.com/sap/support/notes/1797736)</SAP_Note></Error_Resolution><errordetails><errordetail><code>XXX/002</code><message>DB_KEY field of table table_name is not part of Calculation View</message><propertyref/><severity>error</severity><target/></errordetail><errordetail><code>/IWBEP/CX_MGW_BUSI_EXCEPTION</code><message>An exception was raised</message><propertyref/><severity>error</severity><target/></errordetail></errordetails></innererror></error>"
  8. status: 400
  9. __proto__: Object

I got this value in string which contains string of xml. I have to get error message from responseRaw. Its a string of xml data. I have parse this parseHTML. i got in html format.

how to parse this to get the message value from responseRaw?

Former Member
0 Kudos

Try:


oEvent.getParameters("mParameters").responseRaw

or


oEvent.getParameters("mParameters").getProperty("/responseRaw")


or


oEvent.getParameter("responseRaw") or oEvent.getParameter("/responseRaw")


Hope it helps


santhu_gowdaz
Active Contributor
0 Kudos

change your url like this and try,

sServiceUrl = "proxy/http/asd/sap/opu/odata/sap/ZHREC_EMPL_CR_SRV"; 

Former Member
0 Kudos

That gave me "NetworkError: 500 INTERNAL SERVER ERROR..."

santhu_gowdaz
Active Contributor
0 Kudos

OData.request({

       requestUri: "proxy/http/asd/sap/opu/odata/sap/ZHREC_EMPL_CR_SRV/", 

       method: "GET", 

       headers: {

"X-Requested-With": "XMLHttpRequest"

"Content-Type": "application/atom + xml"

"DataServiceVersion": "2.0"

"X-CSRF-Token": "Fetch" 

       }

  },

function(data, response) { 

var header_xcsrf_token = response.headers['x-csrf-token']; 

var oHeaders = { 

"x-csrf-token": header_xcsrf_token, 

'Accept': 'application/json' 

       };

       OData.request({

            requestUri: "proxy/http/asd/sap/opu/odata/sap/ZHREC_EMPL_CR_SRV/EmployeeSet", 

            method: "POST", 

            headers: oHeaders,

            data: oEntry

       },

function(data, request) { 

            console.log("Success"); 

       }, 

function(err) { 

            console.log("Forward failed: " + err); 

       }

  );

  },

function(err) { 

var request = err.request; 

var response = err.response; 

       console.log("Error in Get -- Request " + request + " Response " + response); 

  }

  );

Former Member
0 Kudos

yep. same internal server error