Name

global.ECCPayloadParser

Description

The class that parses the ECC queue payload

Script


/**
* The class that parses the ECC queue payload
* Aleck Lin aleck.lin@servicenow.com
*/

var ECCPayloadParser = Class.create();

ECCPayloadParser.prototype = {
  initialize: function(payload) {
  	if (JSUtil.nil(payload))
  		return;
  	
  	this.payload = payload;		
  	this.parameters = {};
  	
  	this._paresParameters();
  },

  setSysId: function(sys_id) {
  	var gr = new GlideRecord("ecc_queue");
  	if (sys_id && gr.get('sys_id', sys_id))
  		this.payload = gr.payload + '';		
  },
  
  getParameters: function() {
  	return this.parameters;
  },

  _paresParameters: function() {
  	var XMLUtil = GlideXMLUtil;
  	var g_doc = XMLUtil.parse(this.payload);

  	var parent = g_doc.getDocumentElement();
  	var topTagName = parent.getTagName();

  	if (topTagName == "parameters") {
  		var nodeList = parent.getElementsByTagName("parameter");
  	} else if (topTagName == "probes" || topTagName == "results") {
  		var element = XMLUtil.getChildByTagName(parent, "parameters");
  		var nodeList = element.getElementsByTagName("parameter")
  	} else
  		return;
  
  	if (JSUtil.nil(nodeList)) {
  		gs.log("Unable to find any parameter xml tags from the output payload");
  		return;
  	}
  
  	for (i=0; i<nodeList.getLength(); i++) {
  		var attribute = XMLUtil.getAttributesAsMap(nodeList.item(i));
  		this.parameters[attribute.get("name")] = attribute.get("value") + '';
  	} 
  },
  

  
  
  type: 'ECCPayloadParser'
}

Sys ID

1ab61e47ef60110098d5925495c0fb79

Offical Documentation

Official Docs: