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