Name
sn_cd.cd_AudienceAJAX
Description
Client APIs related to audiences.
Script
var cd_AudienceAJAX = Class.create();
cd_AudienceAJAX.prototype = Object.extendsObject(global.AbstractAjaxProcessor, {
/** Start the Scripted Hierarchical Worker if one does not already exist
* @return string Progress ID of Scripted Hierarchical Worker
*/
start: function() {
// Security
var grAudience = new GlideRecord("sn_cd_audience");
if (!grAudience.canRead() || !grAudience.canWrite())
return null;
var trackerId = this.check();
if (trackerId)
return trackerId;
var worker = new GlideScriptedHierarchicalWorker();
worker.setProgressName(gs.getMessage("Uploading file"));
worker.setScriptIncludeName("sn_cd.cd_Audience");
worker.setScriptIncludeMethod("uploadOperation");
worker.putMethodArg("firstHeader", this.getParameter("sysparm_ajax_processor_first_header"));
worker.putMethodArg("searchList", this.getParameter("sysparm_ajax_processor_search_list"));
worker.putMethodArg("audienceSysId", this.getParameter("sysparm_ajax_processor_audience_sys_id"));
worker.setBackground(true);
worker.start();
return worker.getProgressID();
},
/** Get sys_id of execution tracker
* @return string sys_id of execution tracker
*/
check: function() {
// Security
var grAudience = new GlideRecord("sn_cd_audience");
if (!grAudience.canRead() || !grAudience.canWrite())
return null;
var trackerGr = new GlideRecord("sys_execution_tracker");
trackerGr.addQuery("source_table", "sn_cd_audience_data");
trackerGr.addQuery("state", "IN", "0,1");
trackerGr.query();
if (trackerGr.next())
return trackerGr.getUniqueValue();
return "";
},
/** Get sys_id's of users matching any of the hr criteria
* @param hrCriteriaIds string Comma separated string of hr criteria sys_id's
* @return array Array of users matching hr criteria
*/
getUsersForHrCriteria: function(hrCriteriaIds) {
// Security
var grAudience = new GlideRecord("sn_cd_audience");
if (!grAudience.canRead() || !GlidePluginManager.isActive('com.sn_hr_core'))
return null;
return new sn_hr_core.hr_Criteria().getUsersForHRCriteria(hrCriteriaIds);
},
/** Get audience count timeout property value
* @return object {timeout: string}
*/
getTimeoutPropertyValue: function() {
var result = {};
result['timeout'] = gs.getProperty('sn_cd.audience.autocount_timeout', '2');
var parser = new global.JSON();
result = parser.encode(result);
return result;
},
type: 'cd_AudienceAJAX'
});
Sys ID
cb4791b6eb630300a9e7e26ac106fe69