Name

global.EvtMgmtRemoteIncidentAdapter

Description

Adapter to remote task creation

Script

var EvtMgmtRemoteIncidentAdapter = Class.create();
EvtMgmtRemoteIncidentAdapter.prototype = {
  initialize: function() {
  },
  
  type: 'EvtMgmtRemoteIncidentAdapter'
};

gs.include('EvtMgmtIncidentHandler');

/*
* Locate em_alert_rule record and use the incident_template to create an task.
* This method does an update on the alert record. 
* @param alert - alert
* @param rule - alert rule for incident creation
* @param taskType - incident", "task" etc  
*/
EvtMgmtRemoteIncidentAdapter.createIncident = function(alert, rule, taskType, autoOpen) {
  	var task = new GlideRemoteGlideRecord(EvtMgmtIncidentHandler.getRemoteIncidentURL(), taskType);
  	EvtMgmtIncidentHandler.setBasicAuth(task);
  	return EvtMgmtIncidentHandler.submiteTask(alert, task, rule, true, taskType, autoOpen);

};

EvtMgmtRemoteIncidentAdapter.createdIncidentFromJSON = function(jsonObject) {
  var incident0 = new GlideRemoteGlideRecord(EvtMgmtIncidentHandler.getRemoteIncidentURL(), 'incident');
  EvtMgmtIncidentHandler.setBasicAuth(incident0);
  for (var prop in jsonObject) {
  	incident0.setValue(prop,jsonObject[prop]);
  }
  var taskId = incident0.insert();
  return taskId;
  
};

EvtMgmtRemoteIncidentAdapter.closeResolvedAlerts = function() {
  	var alert = new GlideRecord('em_alert');
  	alert.addQuery('state', '!=', 'Closed');
  	alert.addQuery('severity', '!=', '5');
  	alert.addNotNullQuery('remote_task_id');
  	alert.query();
  	var incident = new GlideRemoteGlideRecord(EvtMgmtIncidentHandler.getRemoteIncidentURL(), 'incident');
  	
  EvtMgmtIncidentHandler.setBasicAuth(incident);

  	incident.initialize();
  	var incidentNumbers = "";
  	var alertSysId2RemoteTask = {};
  	while (alert.next()) {
  		incidentNumbers  += alert.getValue('remote_task_id');
  		incidentNumbers  += ",";
  		alertSysId2RemoteTask[alert.getValue('sys_id')] = alert.getValue('remote_task_id');
  	}
  	incidentNumbers = incidentNumbers.substring(0, incidentNumbers.length - 1);
  	incident.addQuery('state', 'IN', '6,7');
  	incident.addQuery('number', 'IN', incidentNumbers);
  	incident.query();
  	var remoteTaskIds = {};
  	while (incident.next()) {
  		remoteTaskIds[incident.getValue('number')] = 1;
  	}
  	for (var alertSysId in alertSysId2RemoteTask){
  		if (remoteTaskIds[alertSysId2RemoteTask[alertSysId]] === 1){
  			alert.initialize();
  			alert.get(alertSysId);
  			alert.setValue('state', 'Closed');
  			var alertManager = new SNC.AlertManager();
  			alertManager.updateWorkNotesOnAlert(alert, 'Closing alert because the related incident is already Resolved or Closed');
  			alert.update();
  		}
  	} 
  
};

Sys ID

cfd67be993001200b200b9ab357ffb8f

Offical Documentation

Official Docs: