Name

global.AvailabilityUtils

Description

No description available

Script

var AvailabilityUtils = Class.create();
AvailabilityUtils.prototype = {
  initialize: function() {
  	this.CONSTANTS = (new global.AvailabilityConstants());
  },
  
  /*
   * hasCommitments
   * returns true if record has any commitments in the commitments table
   */
  hasCommitments: function(recordId){
  	var commitments = new GlideRecord(this.CONSTANTS.SERVICE_OFFERING_COMMITMENT);
  	commitments.addQuery('service_offering', recordId).addOrCondition('cmdb_ci', recordId);
  	commitments.query();
  	
  	return (commitments.getRowCount() > 0);
  },

  getAvailabilityCIQuery: function() {
  	var str = "sys_class_nameIN";
  	return str+= this.getApplicationServicesQuery();
  },

  getApplicationServicesQuery: function() {
  	var str = "cmdb_ci_service_auto";
  	var tu = new TableUtils('cmdb_ci_service_auto');
  	var tables = tu.getTableExtensions();

  	for (var i = 0; i < tables.size(); i++ ) {
  		var table = tables.get(i) + '';

  		if (this.CONSTANTS.EXCLUDED_APPLICATION_TABLES().indexOf(table) < 0)
  			str+= ','+table;

  	}
  	// Append dynamic ci group when classification is "Application Service" only
  	str+= '^NQsys_class_name=cmdb_ci_query_based_service^ref_cmdb_ci_service_auto.service_classification=Application Service';
  	return str;
  },

  getCiFromCommitment: function(commitmentGR) {
  	var serviceOffering = commitmentGR.getValue('service_offering');
  	var cmdbCi = commitmentGR.getValue('cmdb_ci');

  	return serviceOffering || cmdbCi;
  },

  getCiClassFromCommitment: function(commitmentGR) {
  	if (commitmentGR.getValue('service_offering')) {
  		return 'service_offering'
  	}
  	else {
  		return commitmentGR.cmdb_ci.sys_class_name + "";
  	}
  },

  type: 'AvailabilityUtils'
};

Sys ID

8986f36353610110efc7ddeeff7b12a5

Offical Documentation

Official Docs: