Name

global.AggregationHelper

Description

No description available

Script

var AggregationHelper = Class.create();
AggregationHelper.prototype = {
  initialize: function() {
  },
  
  //OOB unused method
  aggregateInteger: function(rollupStructure, childField, isAverage) {
      //this.printRollupStructure(rollupStructure);
      if(childField && rollupStructure) {
          var count = 0;
          var totalValue = 0;
          for (var sysId in rollupStructure) {
              var valueMap = rollupStructure[sysId];
              if( valueMap[childField]) {
                  var intergerValue = parseInt(valueMap[childField]);
                  totalValue = totalValue + intergerValue;
              }
              count = count + 1;
          }
          if(isAverage)
              return (count==0)?(totalValue):(totalValue/count);
          else
              return totalValue;
      }
  },
  //OOB unused method
  aggregateFloat: function(rollupStructure, childField, isAverage) {
      //this.printRollupStructure(rollupStructure);
      if(childField && rollupStructure) {
          var count = 0;
          var totalValue = parseFloat("0");
          for (var sysId in rollupStructure) {
              var valueMap = rollupStructure[sysId];
              if( valueMap[childField]) {
                  var floatValue = parseFloat(valueMap[childField]);
                  totalValue = totalValue + floatValue;
              }
              count = count + 1;
          } 
          if(isAverage)
              return (count==0)?(totalValue):(totalValue/count);
          else
              return totalValue;
      }
  },

  aggregateDuration: function(rollupStructure, childField) {
      //this.printRollupStructure(rollupStructure);
      if(childField && rollupStructure) {
          var totalValue = new GlideDuration();
          totalValue.setValue("1970-01-01 00:00:00");
          for (var sysId in rollupStructure) {
              var valueMap = rollupStructure[sysId];
              if( valueMap[childField]) {
                  var durationValue = new GlideDuration();
                  durationValue.setValue(valueMap[childField]);
                  totalValue = totalValue.add(durationValue);
              }
          }
          return totalValue;
      }
  },
  //OOB unused method
  printRollupStructure: function(rollupStructure) {
      if( rollupStructure ) {
          var string = "{ ";
          for(var attr in rollupStructure) {
              string = string + attr + " : { ";
              var value = rollupStructure[attr];
              for( var attr1 in value) {
                  string = string + attr1 + " : " + value[attr1] + ",";
              }
              string = string + " },";
          } 
          string =  string + "}"; 
          gs.info("RollupStructure: " + string);  
      } else {
          gs.info("No RollupStructure Found");
      }

  },

  type: 'AggregationHelper'
};

Sys ID

f5272d219f230200598a5bb0657fcf0f

Offical Documentation

Official Docs: