logo

NJP

MetricInstance object in Metric Instance definition scripting space

Import · Sep 18, 2017 · article

I found this useful, but it was not documented anywhere. Hope someone else will find it handy as well.

Contents of MetricInstance Object

definition : [object GlideRecord]//definition GR

current : [object GlideRecord]//currentGR such as task or incident record

initialize :

function (definitionGR, currentGR) {

      this.definition = definitionGR;

      this.current = currentGR;

}

process :

function () {

      answer = true;

      mi = this;

      eval(this.definition.script);

      if (!answer) {

              return;

      }

      this.endDuration();

      this.startDuration();

}

startDuration :

function () {

      var gr = this.getNewRecord();

      gr.field_value = this.current[this.definition.field];

      gr.start = current.sys_updated_on;

      gr.insert();

}

endDuration :

function () {

      var gr = new GlideRecord("metric_instance");

      gr.addQuery("definition", this.definition.sys_id);

      gr.addQuery("id", this.current.sys_id);

      gr.addQuery("calculation_complete", false);

      gr.query();

      if (!gr.next()) {

              return;

      }

      gr.end = this.current.sys_updated_on;

      gr.duration = gs.dateDiff(gr.start.getDisplayValue(), gr.end.getDisplayValue());

      gr.calculation_complete = true;

      gr.update();

}

getNewRecord :

function () {

      var gr = new GlideRecord("metric_instance");

      gr.table = this.current.getRecordClassName();

      gr.id = this.current.sys_id;

      gr.definition = this.definition.sys_id;

      gr.field = this.definition.field;

      return gr;

}

metricExists :

function () {

      var gr = new GlideRecord("metric_instance");

      gr.addQuery("id", this.current.sys_id);

      gr.addQuery("definition", this.definition.sys_id);

      gr.query();

      return gr.hasNext();

}

_z :

function () {

}

View original source

https://www.servicenow.com/community/developer-articles/metricinstance-object-in-metric-instance-definition-scripting/ta-p/2295880