The CreatorCon Call for Content is officially open! Get started here.

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