Name

global.QueryExporterAjax

Description

No description available

Script

var QueryExporterAjax = Class.create();

QueryExporterAjax.prototype = Object.extendsObject(AbstractAjaxProcessor, {
  process: function() {
      var CANCEL_EXPORT_PROCESS = "cancelExport";
      var QUERY_BASIC_EXPORT = "basic_export";

  	var func = this.getParameter("sysparm_ajax_processor_function");
  	var trackerId = this.getParameter("sysparm_ajax_processor_tracker_id");
      var queryList = this.getParameter("sysparm_ajax_processor_query_list");

  	if (func == CANCEL_EXPORT_PROCESS)
  		return this.sendCancelSignal(trackerId);

  	if (func == QUERY_BASIC_EXPORT)
  		return this.startQueryBasicExport(queryList);

  },

  startQueryBasicExport: function(queryList) {

      return this._startQueryExport(GlideSysMessage.format("Exporting queries"),'exportQueryBasic',queryList);
  },

  _startQueryExport: function(progressName, functionToExecute, queryList) {
      // Setup and start the progress worker
  	var worker = new GlideScriptedHierarchicalWorker();
  	worker.setProgressName(progressName);
  	worker.setScriptIncludeName('QueryExporter');
  	worker.setScriptIncludeMethod(functionToExecute);
      worker.putMethodArg('queryList', queryList);
  	worker.setBackground(true);
  	worker.setCannotCancel(true);
  	worker.start();
  	return worker.getProgressID();
  },

  completeExport: function(exportUpdateSetId) {
      CMDBUpdateSetPublisher.deleteUpdateSet(exportUpdateSetId);
  },

  // send the cancel by adding the cancel signal into the query export tracker
  // result, so that the update set progress worker will catch it
  sendCancelSignal: function(trackerId) {
  	var tracker = SNC.GlideExecutionTracker.getBySysID(trackerId);
  	tracker.updateMessage("Canceling query export process...");
  	result = {'export_cancel_requested': 'true'};
  	tracker.updateResult(result);
  	return;
  },

  type: "QueryExporterAjax"

});

Sys ID

8f679375b7002300ee0d3177ee11a9b4

Offical Documentation

Official Docs: