Name

global.ScriptListener

Description

Functions for creating a listener and reacting to changes

Script

gs.include("PrototypeServer");

var ScriptListener = Class.create();

ScriptListener.prototype = {
initialize: function() {
   this.listener = null;
   this.record = null;  
   this.script = 'Generic ECC Queue Update';
   this.fields = new Array();
},

create: function() {
   this.listener = new GlideScriptListener();
},

attach: function() {
   this.listener.setScriptName(this.script);
   this.listener.setRecord(this.record);
   if (this.fields.length == 0)
      this.fields.push("*");

   this.listener.attachListener(this.fields.join(","));
},

setListener: function(listener) {
   this.listener = listener;
},

setRecord: function(record) {
   if (this.listener == null)
      this.create();

   this.record = record;
},

getAttribute: function(attr) {
   return this.listener.getAttribute(attr);
},

addAttribute: function(attr, value) {
   this.listener.addAttribute(attr, value);
},

addField: function(field) {
   this.fields.push(field);
},

serializeAll: function() {
   var serializer = new GlideRecordXMLSerializer();
   return serializer.serialize(this.record, this.record.getTableName());
},

serializeDelta: function() {
   var list = this.listener.getDelta(); 
   gs.log("Changed fields: " + list);
   var xml = new GlideXMLDocument(this.record.getTableName());
   var parent = xml.getDocumentElement();
   var xs = new GlideElementXMLSerializer();
   for (var i = 0; i < list.size(); i++) {
      var element = list.get(i);
      xs.serialize(this.record, element, parent);
   }
   return xml.toString();
},

z: function() {}
}

Sys ID

2027b502c0a80165001e647ebf58ad74

Offical Documentation

Official Docs: