Name

global.DeleteResponsibilityRecordAjax

Description

No description available

Script

var DeleteResponsibilityRecordAjax = Class.create();
DeleteResponsibilityRecordAjax.prototype = Object.extendsObject(AbstractAjaxProcessor, {

  initialize: function(request, response, processor) {
  	AbstractAjaxProcessor.prototype.initialize.call(this, request, response, processor);
  	this._log = new GSLog("com.snc.iam.log_level", this.type);
  },

  getResponsibilities: function() {
  	var responsibilitySysIds = this.getParameter('sysparm_obj_id');
  	var stackName = this.getParameter('sysparm_nameofstack');
  	var gotoUrl = this.getParameter('sysparm_goto_url');

  	var dList = "";
  	if (gotoUrl != null)
  		dList += gotoUrl + ";";
  	else
  		dList += 'null;';

  	if (responsibilitySysIds != null)
  		dList += this.getAssociatedIncidentAlertRecords(responsibilitySysIds);

  	if (this._log.atLevel(GSLog.DEBUG)) {
  		this._log.debug('[getResponsibilities] responsibilitySysIds: ' + responsibilitySysIds);
  		this._log.debug('[getResponsibilities] stackName: ' + stackName);
  		this._log.debug('[getResponsibilities] gotoUrl: ' + gotoUrl);
  	}
  	return dList;
  },

  getAssociatedIncidentAlertRecords: function(responsibilitySysIds) {
  	if (this._log.atLevel(GSLog.DEBUG))
  		this._log.debug('[getAssociatedIncidentAlertRecords] responsibilitySysIds: ' + responsibilitySysIds);

  	var gr = new GlideRecord('contact');
  	gr.addQuery('responsibility', 'IN', responsibilitySysIds);
  	gr.query();
  	var index = 0;
  	var dList = "";
  	while (gr.next()) {
  		if (!gr.canRead()) continue;
  		if (index == 0)
  			dList += gr.getUniqueValue();
  		else
  			dList += "," + gr.getUniqueValue();
  		index++;
  	}
  	return dList;
  },

  proceedWithDelete: function() {
  	var result = this.newItem("result");
  	var objSysId = this.getParameter('sysparm_obj_id');
  	var disableWf = this.getParameter('sysparm_disable_wf');

  	if (this._log.atLevel(GSLog.DEBUG)) {
  		this._log.debug('[proceedWithDelete] result: ' + result);
  		this._log.debug('[proceedWithDelete] objSysId: ' + objSysId);
  		this._log.debug('[proceedWithDelete] disableWf: ' + disableWf);
  	}

  	// Delete from IAM records
  	this.deleteAssociatedIncidentAlertRecords(objSysId);

  	// Delete contact_definition
  	this.deleteAssociatedContactDefinitionRecords(objSysId);

  	// Delete contact_responsibility
  	var gRecord = new GlideRecord('contact_responsibility');
  	gRecord.addQuery('sys_id', 'IN', objSysId);
  	this._deleteRecords(gRecord);
  },

  deleteAssociatedIncidentAlertRecords: function(contactSysIds) {
  	var gr = new GlideRecord('contact');
  	gr.addEncodedQuery('responsibilityIN' + contactSysIds);
  	this._deleteRecords(gr);
  	return true;
  },

  deleteAssociatedContactDefinitionRecords: function(contactSysIds) {
  	var gr = new GlideRecord('contact_definition');
  	gr.addEncodedQuery('responsibilityIN' + contactSysIds);
  	this._deleteRecords(gr);
  	return true;
  },

  _deleteRecords: function(gr) {
  	gr.query();
  	while (gr.next()) {
  		if (this._log.atLevel(GSLog.DEBUG))
  			this._log.debug('[_deleteRecords] table: ' + gr.getTableName() + ' sys_id: ' + gr.sys_id + ' canDelete: ' + gr.canDelete());

  		if (gr.canDelete())
  			gr.deleteRecord();
  	}
  },

  toString: function() { return 'DeleteResponsibilityRecordAjax'; },

  type: 'DeleteResponsibilityRecordAjax'
  });

Sys ID

a2ad5019d762220035ae23c7ce61035b

Offical Documentation

Official Docs: