Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

Extract result code from xml payload

Karanpreet
Tera Contributor

Hi, i have a requirement to check the result code is specific value to send an alert on event trigger.

 

Can someone help me on it .

 

XML payload has value as follows.

 

<?xml version="1.0" encoding="UTF-8"?><results probe_time="996" result_code="0"><result><output>200</output></result><parameters><parameter name="targetImportSet" value="u_workday_profile_data"/><parameter name="agent" value="mid.server.XXXXXXX"/><parameter name="instance" value=""/><parameter name="signature" value=""/><parameter name="response_to" value=""/><parameter name="filePath" value="\\XXXXXX.csv"/><parameter name="from_sys_id" value=""/><parameter name="source" value=""/><parameter name="priority" value="2"/><parameter name="agent_correlator" value=""/><parameter name="script" value="var remoteFileImport = new CSMIDServerRemoteFileImport(); &#10;remoteFileImport.getRemoteFileAndUploadToInstance()"/><parameter name="processed" value=""/><parameter name="error_string" value=""/><parameter name="sys_id" value="1d33b6e21b9cfd545ed35533604bcbee"/><parameter name="sequence" value="189a9ac79db0000001"/><parameter name="from_host" value=""/><parameter name="sys_created_on" value="2023-07-31 02:00:00"/><parameter name="sys_domain" value="global"/><parameter name="name" value="CSRemoteFileImport"/><parameter name="topic" value="JavascriptProbe"/><parameter name="state" value="ready"/><parameter name="queue" value="output"/><parameter name="ecc_queue" value="1d33b6e21b9cfd545ed35533604bcbee"/></parameters></results>

1 ACCEPTED SOLUTION

Sonam Tiwari
Tera Guru

@Karanpreet  ,

If you mean that you want to fetch result code from the payload, you can get that in below manner using the script:

var xmlString = '<?xml version="1.0" encoding="UTF-8"?><results probe_time="996" result_code="0"><result><output>200</output></result><parameters><parameter name="targetImportSet" value="u_workday_profile_data"/><parameter name="agent" value="mid.server.XXXXXXX"/><parameter name="instance" value="https://sparcdev4.service-now.com/"/><parameter name="signature" value=""/><parameter name="response_to" value=""/><parameter name="filePath" value="\\XXXXXX.csv"/><parameter name="from_sys_id" value=""/><parameter name="source" value=""/><parameter name="priority" value="2"/><parameter name="agent_correlator" value=""/><parameter name="script" value="var remoteFileImport = new CSMIDServerRemoteFileImport(); &#10;remoteFileImport.getRemoteFileAndUploadToInstance()"/><parameter name="processed" value=""/><parameter name="error_string" value=""/><parameter name="sys_id" value="1d33b6e21b9cfd545ed35533604bcbee"/><parameter name="sequence" value="189a9ac79db0000001"/><parameter name="from_host" value=""/><parameter name="sys_created_on" value="2023-07-31 02:00:00"/><parameter name="sys_domain" value="global"/><parameter name="name" value="CSRemoteFileImport"/><parameter name="topic" value="JavascriptProbe"/><parameter name="state" value="ready"/><parameter name="queue" value="output"/><parameter name="ecc_queue" value="1d33b6e21b9cfd545ed35533604bcbee"/></parameters></results>';

var xmlDoc = new XMLDocument2();
xmlDoc.parseXML(xmlString);

// Results element
var requiredElement = xmlDoc.getNode('results');

// result code
var result_code = requiredElement.getAttribute('result_code');

gs.info("Result Code: " + result_code);

 
then based on result code value you can further work on the logic.

View solution in original post

1 REPLY 1

Sonam Tiwari
Tera Guru

@Karanpreet  ,

If you mean that you want to fetch result code from the payload, you can get that in below manner using the script:

var xmlString = '<?xml version="1.0" encoding="UTF-8"?><results probe_time="996" result_code="0"><result><output>200</output></result><parameters><parameter name="targetImportSet" value="u_workday_profile_data"/><parameter name="agent" value="mid.server.XXXXXXX"/><parameter name="instance" value="https://sparcdev4.service-now.com/"/><parameter name="signature" value=""/><parameter name="response_to" value=""/><parameter name="filePath" value="\\XXXXXX.csv"/><parameter name="from_sys_id" value=""/><parameter name="source" value=""/><parameter name="priority" value="2"/><parameter name="agent_correlator" value=""/><parameter name="script" value="var remoteFileImport = new CSMIDServerRemoteFileImport(); &#10;remoteFileImport.getRemoteFileAndUploadToInstance()"/><parameter name="processed" value=""/><parameter name="error_string" value=""/><parameter name="sys_id" value="1d33b6e21b9cfd545ed35533604bcbee"/><parameter name="sequence" value="189a9ac79db0000001"/><parameter name="from_host" value=""/><parameter name="sys_created_on" value="2023-07-31 02:00:00"/><parameter name="sys_domain" value="global"/><parameter name="name" value="CSRemoteFileImport"/><parameter name="topic" value="JavascriptProbe"/><parameter name="state" value="ready"/><parameter name="queue" value="output"/><parameter name="ecc_queue" value="1d33b6e21b9cfd545ed35533604bcbee"/></parameters></results>';

var xmlDoc = new XMLDocument2();
xmlDoc.parseXML(xmlString);

// Results element
var requiredElement = xmlDoc.getNode('results');

// result code
var result_code = requiredElement.getAttribute('result_code');

gs.info("Result Code: " + result_code);

 
then based on result code value you can further work on the logic.