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