Name

global.ActivityUtilsSNC

Description

Gets installed as part of com.snc.activity_subscriptions plugin Activity Subscriptions Framework. It contains util methods for the Activity Subscriptions Framework.

Script

var ActivityUtilsSNC = Class.create();
ActivityUtilsSNC.prototype = {
  initialize: function() {},

  getContextActivityTypes: function(contextId) {
      if (!contextId)
          return;

      var contextGR = new GlideRecord(ActivityConstants.TABLE_M2M_CONTEXT_SUBOBJECT);
      contextGR.addQuery("activity_context", contextId);
      contextGR.query();

      var subobjects = [];
      while (contextGR.next()) {
          if (!contextGR.canRead())
              continue;

          if (contextGR.subobject)
              subobjects.push(contextGR.subobject + '');
      }


      if (subobjects.length > 0) {
          var subObjectsGR = new GlideRecord(ActivityConstants.TABLE_M2M_SUBOBJECT_ACTIVITY_TYPE);
          subObjectsGR.addQuery("subobject", "IN", subobjects.join());
          subObjectsGR.query();

          var activityTypes = [];
          while (subObjectsGR.next()) {
              if (!subObjectsGR.canRead())
                  continue;

              if (subObjectsGR.activity_type)
                  activityTypes.push(subObjectsGR.activity_type + '');
          }

          return activityTypes;
      }

      return [];
  },

  getGlideRecord: function(tableName, fieldValuePairs, encodedQuery, disableWorkflow) {
      if (!tableName) return;
      var gr = new GlideRecord(tableName);
      for (var field in fieldValuePairs) {
          gr.addQuery(field, fieldValuePairs[field]);
      }
  	if (encodedQuery)
  		gr.addEncodedQuery(encodedQuery);
  	if (disableWorkflow)
  		gr.setWorkflow(false);
      gr.query();
      if (gr.next()) return gr;
      return null;
  },

  compare: function(created, sortOrder) {
      return function(a, b) {
          if (a[created] > b[created]) {
              return sortOrder=='Asc'?1:-1;
          } else if (a[created] < b[created]) {
              return sortOrder=='Asc'?-1:1;
          }
          return 0;
      };
  },

  //Filter the data from given object based on the key that matches with ids
  filterData: function(obj, key, ids) {
      if (!obj) return;
      var result = {};
      key = key.split(".");
      for (var item in obj) {
          var keyVal = obj[item];
          for (var i = 0, len = key.length; i < len; i++) {
              if (keyVal) keyVal = keyVal[key[i]];
              else break;
          }
          if (ids.indexOf(keyVal) != -1) {
              result[item] = obj[item];
          }
      }
      return result;
  },

  getActivityTypeMessage: function(message, actor, object, target) {
      return GlideSysMessage.formatEscaped(message, [actor, object, target]);
  },

  type: 'ActivityUtilsSNC'
};

Sys ID

d4a7109d3b0700109381266914efc4e5

Offical Documentation

Official Docs: