Name

sn_grc.IssueGroupingAjax

Description

General AJAX utilities for GRC issue grouping

Script

var IssueGroupingAjax = Class.create();
IssueGroupingAjax.prototype = Object.extendsObject(global.AbstractAjaxProcessor, {
  
  addIssueToGroup: function() {
  	var parentId = this.getParameter('sysparm_parent_issue');
  	var ids = this.getParameter('sysparm_sys_ids').split(',');
  	var groupingType = this.getParameter('sysparm_grouping_type');
  	var content = this.getParameter('sysparm_content');
  	var configurationItem = this.getParameter('sysparm_configuration_item');
  	var location = this.getParameter('sysparm_location');
  	var profile = this.getParameter('sysparm_profile');
  	var deleteGroup = this.getParameter('sysparm_delete_group');
  	
  	var parentIssue = new GlideRecord('sn_grc_issue');
  	parentIssue.get(parentId);
  	parentIssue.content = content;
  	parentIssue.cmdb_ci = configurationItem;
  	parentIssue.location = location;
  	parentIssue.profile = profile;
  	parentIssue.is_group = true;
  	parentIssue.is_reparenting_group = true;
  	parentIssue.update();

  	return this.groupIssues(parentId, ids, groupingType, content, configurationItem,
  						   location, profile, deleteGroup);
  },
  
  createGroup: function() {
  	var ids = this.getParameter('sysparm_sys_ids').split(',');
  	var groupingType = this.getParameter('sysparm_grouping_type');
  	var shortDescription = this.getParameter('sysparm_short_description');
  	var description = this.getParameter('sysparm_description');
  	var assignedTo = this.getParameter('sysparm_assigned_to');
  	var content = this.getParameter('sysparm_content');
  	var configurationItem = this.getParameter('sysparm_configuration_item');
  	var location = this.getParameter('sysparm_location');
  	var profile = this.getParameter('sysparm_profile');
  	var deleteGroup = this.getParameter('sysparm_delete_group');

  	var parentIssue = new GlideRecord('sn_grc_issue');
  	parentIssue.short_description = shortDescription;
  	parentIssue.description = description;
  	parentIssue.assigned_to = assignedTo + '';
  	parentIssue.content = content;
  	parentIssue.cmdb_ci = configurationItem;
  	parentIssue.location = location;
  	parentIssue.profile = profile;
  	parentIssue.is_group = true;
  	parentIssue.is_reparenting_group = true;
  	if(!parentIssue.insert())
  		return false;
  	
  	return this.groupIssues(parentIssue.getUniqueValue(), ids, groupingType, content, configurationItem,
  						   location, profile, deleteGroup);
  },
  
  groupIssues: function(parentIssueId, ids, groupingType, content, configurationItem,
  						   location, profile, deleteGroup) {
  	var event = {};
  	
  	event = { parentIssueId: parentIssueId, 
  			 ids: ids, 
  			 groupingType: groupingType, 
  			 content: content,
  			 configurationItem: configurationItem, 
  			 location: location, 
  			 profile: profile, 
  			 deleteGroup: deleteGroup};

  	gs.eventQueue("sn_grc.issue_grouping", null, new global.JSON().encode(event), "");
  	
  	return parentIssueId;
  },
  
  type: 'IssueGroupingAjax'
});

Sys ID

f6e17a1ae7100300dd926217c2f6a96c

Offical Documentation

Official Docs: