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

Offical Documentation

Official Docs: