Name

global.HierarchyUpdateSetCommitAjax

Description

Functionality related to hierarchy update set commit

Script

var HierarchyUpdateSetCommitAjax = Class.create();

HierarchyUpdateSetCommitAjax.prototype = Object.extendsObject(AbstractAjaxProcessor, {
  process: function() {
  	var sysId = this.getParameter("sysparm_ajax_processor_sys_id");
  	var func = this.getParameter("sysparm_ajax_processor_function");
  	
  	if (func == "commit")
  		return this.commitRemoteBaseUpdateSet(sysId);
  	if (func == "cancel")
  		return this.cancelHierarchyCommit();
  },
  
  commitRemoteBaseUpdateSet: function(sysId) {
  	var gr = new GlideRecord('sys_remote_update_set');
  	if (!gr.get(sysId) || !gr.canWrite()) {
  		gs.print("An attempt to commit remote batch update set with insufficient rights was blocked");
  		return;
  	}
  	
  	var starter = new SNC.HierarchyUpdateSetScriptable();
  	return starter.commitHierarchy(gr.sys_id);
  },
  
  cancelHierarchyCommit: function() {
  	var workerId = this.getParameter("sysparm_worker_id");
  	
  	//Load the remote update set and create a local update set from it.
  	var tracker = SNC.GlideExecutionTracker.getBySysID(workerId);		
  	tracker.cancel(gs.getMessage("Cancelled update set"));
  	
  	var updateSetId = tracker.getSource();
  	var gr = GlideRecord("sys_remote_update_set");
  	if (!gr.get(updateSetId))
  		return;

  	gr.state = "partial"; // Partial Commit state
  	gr.update();
  },
  
  type: "HierarchyUpdateSetCommitAjax"
  
});

Sys ID

fcfc9e275bb01200abe48d5511f91aea

Offical Documentation

Official Docs: