logo

NJP

Dealing with XML API - Parsing the SOAP response.

Import · Apr 23, 2013 · article

Not gonna really try and show off anything here - but the documentation for XML API is a bit foggy and I want to share this. I tried to use a few common XML API calls that are a bit of a challenge to find out about.Lets pretend you get a SOAP response and you want to manually iterate through that response envelope that has this structure:

Success Whatever /ns0:Root /s:Body/s:Envelope

Here are a few API calls you will need:

  this.fSoapDoc = new XMLDocument(requestXML);      var soapBody = this.fSoapDoc.getNode("/Envelope/Body/Root");           var nodelist = soapBody.getChildNodes();      for (var i=0; i < nodelist.getLength(); i++) {          var kidNode = nodelist.item(i);          if (kidNode.getNodeType() == Packages.org.w3c.dom.Node.ELEMENT_NODE) {            var fieldName = Packages.com.glide.util.XMLUtil.getNodeNameNS(kidNode);            var fieldValue = Packages.com.glide.util.XMLUtil.getAllText(kidNode);            gs.log("FIELD NAME: " + fieldName, "cmaloy");            gs.log("FIELD VALUE: " + fieldValue, "cmaloy");          }              }

This is going to get the name and value of the Status and RigData fields.In this sample we would print to our log file:FIELD NAME: StatusFIELD VALUE: SuccessFIELD NAME: RigDataFIELD VALUE: Whatever

Of course you can do whatever at this point. If your status is Failure you can notify or update the log (etc.)

View original source

https://www.servicenow.com/community/in-other-news/dealing-with-xml-api-parsing-the-soap-response/ba-p/2275521