Get value from xml response

Kevin Paul
Mega Guru

How to get the value '104' which is the CelsiusToFahrenheitResult here in this response xml into my business rule scipt?

find_real_file.png

I need to take the value '104' from this xml and place it as the value of a field.

Here is my code,

(function executeRule(current, previous /*null when async*/ ) {


var type = current.u_conversion_type;
var temp = current.u_temperature;
if (type == 'fahrenheit') {
var s = new sn_ws.SOAPMessageV2('Temperature Convert', 'TempConvertSoap.CelsiusToFahrenheit');

s.setStringParameterNoEscape('CelsiusToFahrenheit.Celsius', temp);
var response = s.execute();
var responseBody = response.getBody();
var status = response.getStatusCode();
current.u_converted_temperature = response;

}
if (type == 'celcius') {
var s1 = new sn_ws.SOAPMessageV2('Temperature Convert', 'TempConvertSoap.FahrenheitToCelsius');

s1.setStringParameterNoEscape('FahrenheitToCelsius.Fahrenheit', temp);
var response1 = s1.execute();
var responseBody1 = response1.getBody();
var status1 = response1.getStatusCode();
current.u_converted_temperature = response1;
}
})(current, previous);

1 ACCEPTED SOLUTION

Hitoshi Ozawa
Giga Sage
Giga Sage

Here is the complete code. I've used XMLDocument2 to support scoped applications.

https://developer.servicenow.com/dev.do#!/reference/api/orlando/server/no-namespace/c_XMLDocument2ScopedAPI

(function executeRule(current, previous /*null when async*/ ) {
    var type = current.u_conversion_type;
    var temp = current.u_temperature;
    if (type == 'fahrenheit') {
        var s = new sn_ws.SOAPMessageV2('Temperature Convert', 'TempConvertSoap.CelsiusToFahrenheit');

        s.setStringParameterNoEscape('CelsiusToFahrenheit.Celsius', temp);
        var response = s.execute();
        var status = response.getStatusCode();
        if (status != 200) {
			current.u_converted_temperature = 0; // set to error value
            // error throw exception
        } else {
            var responseBody = response.getBody();
            var xmlDoc = new XMLDocument2();
            xmlDoc.parseXML(responseBody);
            current.u_converted_temperature = xmlDoc.getNodeText("//CelsiusToFahrenheitResult");
        }
    }
    if (type == 'celcius') {
        var s1 = new sn_ws.SOAPMessageV2('Temperature Convert', 'TempConvertSoap.FahrenheitToCelsius');

        s1.setStringParameterNoEscape('FahrenheitToCelsius.Fahrenheit', temp);
        var response1 = s1.execute();
        var status1 = response1.getStatusCode();
        if (status != 200) {
			current.u_converted_temperature = 0; // set to error value
            // error throw exception
        } else {
            var responseBody1 = response1.getBody();
            var xmlDoc1 = new XMLDocument2();
            xmlDoc1.parseXML(responseBody1);
            current.u_converted_temperature = xmlDoc1.getNodeText("//CelsiusToFahrenheitResult");
        }
    }
})(current, previous);

View solution in original post

7 REPLIES 7

Ankur Bawiskar
Tera Patron
Tera Patron

@Kevin Paul 

please try this script and check

(function executeRule(current, previous /*null when async*/ ) {


var type = current.u_conversion_type;
var temp = current.u_temperature;
if (type == 'fahrenheit') {
var s = new sn_ws.SOAPMessageV2('Temperature Convert', 'TempConvertSoap.CelsiusToFahrenheit');

s.setStringParameterNoEscape('CelsiusToFahrenheit.Celsius', temp);
var response = s.execute();
var responseBody = response.getBody();

var xmldoc = new XMLDocument(responseBody);

current.u_converted_temperature = xmldoc.getNodeText("//CelsiusToFahrenheitResult");

var status = response.getStatusCode();

}
if (type == 'celcius') {
var s1 = new sn_ws.SOAPMessageV2('Temperature Convert', 'TempConvertSoap.FahrenheitToCelsius');

s1.setStringParameterNoEscape('FahrenheitToCelsius.Fahrenheit', temp);
var response1 = s1.execute();
var responseBody1 = response1.getBody();
var status1 = response1.getStatusCode();
current.u_converted_temperature = response1;
}
})(current, previous);

Regards
Ankur

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

Hitoshi Ozawa
Giga Sage
Giga Sage

Here is the complete code. I've used XMLDocument2 to support scoped applications.

https://developer.servicenow.com/dev.do#!/reference/api/orlando/server/no-namespace/c_XMLDocument2ScopedAPI

(function executeRule(current, previous /*null when async*/ ) {
    var type = current.u_conversion_type;
    var temp = current.u_temperature;
    if (type == 'fahrenheit') {
        var s = new sn_ws.SOAPMessageV2('Temperature Convert', 'TempConvertSoap.CelsiusToFahrenheit');

        s.setStringParameterNoEscape('CelsiusToFahrenheit.Celsius', temp);
        var response = s.execute();
        var status = response.getStatusCode();
        if (status != 200) {
			current.u_converted_temperature = 0; // set to error value
            // error throw exception
        } else {
            var responseBody = response.getBody();
            var xmlDoc = new XMLDocument2();
            xmlDoc.parseXML(responseBody);
            current.u_converted_temperature = xmlDoc.getNodeText("//CelsiusToFahrenheitResult");
        }
    }
    if (type == 'celcius') {
        var s1 = new sn_ws.SOAPMessageV2('Temperature Convert', 'TempConvertSoap.FahrenheitToCelsius');

        s1.setStringParameterNoEscape('FahrenheitToCelsius.Fahrenheit', temp);
        var response1 = s1.execute();
        var status1 = response1.getStatusCode();
        if (status != 200) {
			current.u_converted_temperature = 0; // set to error value
            // error throw exception
        } else {
            var responseBody1 = response1.getBody();
            var xmlDoc1 = new XMLDocument2();
            xmlDoc1.parseXML(responseBody1);
            current.u_converted_temperature = xmlDoc1.getNodeText("//CelsiusToFahrenheitResult");
        }
    }
})(current, previous);

Ankur Bawiskar
Tera Patron
Tera Patron

@Kevin Paul 

Hope you are doing good.

Let me know if I have answered your question.

If it helped, please mark appropriate answer as correct & helpful to close the thread.

If not, please let us know if you need some more assistance.

Regards
Ankur

 

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader