Name

global.AccPolicyExporterAjax

Description

This PolicyExporterAjax script is a Proxy between Client side and server

Script

var AccPolicyExporterAjax = Class.create();

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

      var func = this.getParameter("sysparm_ajax_processor_function");
      var trackerId = this.getParameter("sysparm_ajax_processor_tracker_id");
  	this.origList = this.getParameter("sysparm_ajax_processor_policy_list");
      this.policyList = [];
  	this.filterPolicyList();		
      if (func == CANCEL_EXPORT_PROCESS)
          return this.sendCancelSignal(trackerId);

      if (func == POLICY_BASIC_EXPORT)
          return this.startPolicyBasicExport(this.policyList.toString());

  },
  
  filterPolicyList: function(){
  	var recList = this.origList.split(',');
  	var newList = [];
  	for(var i=0; i<recList.length; i++)
  		newList.push(recList[i]);
  	var gr = new GlideRecord('sn_agent_policy');
  	gr.addQuery('sys_id', newList);
  	gr.addQuery('is_draft', 'false');
  	gr.addQuery('publish_status', '1');
      gr.query();
      while (gr.next()) {
          this.policyList.push(gr.getValue('sys_id'));
      }
  },

  startPolicyBasicExport: function(policyList) {
      return this._startPolicyExport(GlideSysMessage.format("Exporting policies."), 'exportPolicyBasic', policyList);
  },

  _startPolicyExport: function(progressName, functionToExecute, policyList) {
  	gs.info('_startPolicyExport, policyList = ' + policyList);
      // Setup and start the progress worker
      var worker = new GlideScriptedHierarchicalWorker();
      worker.setProgressName(progressName);
      worker.setScriptIncludeName('AccPolicyExporter');
      worker.setScriptIncludeMethod(functionToExecute);
      worker.putMethodArg('policyList', policyList);
      worker.setBackground(true);
      worker.setCannotCancel(true);
      worker.start();
      return worker.getProgressID();
  },

  type: "AccPolicyExporterAjax"

});

Sys ID

47ebe14653699010c360ddeeff7b1216

Offical Documentation

Official Docs: