Name

global.AutoResolutionSLACondition

Description

Custom SLA condition class for Issue Auto-Resolution. It overwrites the cancel condition to update context record when SLA is canceled.

Script

var AutoResolutionSLACondition = Class.create();
AutoResolutionSLACondition.prototype = Object.extendsObject(SLAConditionBase, {
  
  cancel: function() {
  	this.lu.logInfo('AutoResolutionSLACondition.cancel called');
  	if (SLAConditionBase.prototype.cancel.call(this)) {
  		//If cancel condition matches, set IAR context to inactive. 
  		this._markContextInactive(AutoResolutionConstants.SLA_STATE.CANCELED);
  		return true;
  	}
  	return false;
  },
  
  complete: function() {
  	this.lu.logInfo('AutoResolutionSLACondition.complete called');
  	if (SLAConditionBase.prototype.complete.call(this)) {
  		//If complete condition matches, set IAR context to inactive. 
  		this._markContextInactive(AutoResolutionConstants.SLA_STATE.COMPLETED);
  		return true;
  	}
  	return false;		
  },
  
  _markContextInactive: function(contextSLAState) {
  	var contextGr = new GlideRecord(AutoResolutionConstants.CONTEXT_TABLE_NAME);
  		contextGr.addActiveQuery();
  		contextGr.addQuery(AutoResolutionConstants.CONTEXT_TASK_SLA_FIELD_NAME, this.taskSLA.getUniqueValue());
  		contextGr.query();
  		contextGr.next();
  		if(contextGr.isValidRecord()) {
  			contextGr.setValue(AutoResolutionConstants.ACTIVE_FIELD_NAME, false);
  			contextGr.setValue(AutoResolutionConstants.CONTEXT_SLA_STATE_FIELD_NAME , contextSLAState);
  			contextGr.update();
  		}
  },
  
  type: 'AutoResolutionSLACondition'
});

Sys ID

007e6b39530c511031a5ddeeff7b12ec

Offical Documentation

Official Docs: