Name

global.IndexSuggestionCreatorAjax

Description

No description available

Script

var IndexSuggestionCreatorAjax = Class.create();
IndexSuggestionCreatorAjax.prototype = Object.extendsObject(AbstractAjaxProcessor, {
  
  process: function() {
  	var funcName = this.getParameter("sysparm_ajax_processor_name");
  	var sugIdxSysID = this.getParameter("sysparm_ajax_processor_sug_id");
  	var time = this.getParameter("sysparm_ajax_processor_time");
  	
  	var gr = new GlideRecord('sys_index_suggestion');
  	if (!gr.get(sugIdxSysID)) {
  		gs.log("couldn't find Index Suggestion record with id: " + sugIdxSysID);
  		return;
  	}
  			
  	if (funcName == 'create')
  		return this.create(sugIdxSysID);
  	else if (funcName == 'drop')
  		return this.drop(sugIdxSysID);
  	else if (funcName == 'getTrackerID')
  		return this.getTrackerID(sugIdxSysID);
  	else if (funcName == 'schedule_create')
  		return this.scheduleCreate(sugIdxSysID, time);
  	else if (funcName == 'schedule_drop')
  		return this.scheduleDrop(sugIdxSysID, time);
  },
  
  create: function (sugIdxSysID) {
  	return new SNC.IndexSuggestionAPI().createIndexNow(sugIdxSysID);
  },
  
  drop: function (sugIdxSysID) {
  	return new SNC.IndexSuggestionAPI().dropIndexNow(sugIdxSysID);
  },
  
  getTrackerID: function(sugIdxSysID) {		
  	var gr = new GlideRecord('sys_execution_tracker');
  	gr.addQuery('source', sugIdxSysID);
  	gr.orderByDesc('sys_created_on');
  	gr.query();
  	if (gr.next())
  		return gr.sys_id;
  },
  
  scheduleCreate: function(sugIdxSysID, timeString) {
  	var time = new GlideDateTime();
  	time.setDisplayValue(timeString);
  	new SNC.IndexSuggestionAPI().createIndexLater(sugIdxSysID, time);
  },
  
  scheduleDrop: function(sugIdxSysID, timeString) {
  	var time = new GlideDateTime();
  	time.setDisplayValue(timeString);
  	new SNC.IndexSuggestionAPI().dropIndexLater(sugIdxSysID, time);
  },

  type: 'IndexSuggestionCreatorAjax'
});

Sys ID

6f8c705e3b222200956c47b334efc430

Offical Documentation

Official Docs: