GlideAggregate – Get Count – Reusable Code

Useful code to get the number of records based on a query.

Script Include Example:

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

	aggregateCount: function(table, query) {
        /*
		table = tableName [string]
		query = encodedQuery [string]
		*/

        var gaCount = new GlideAggregate(table);
        gaCount.addEncodedQuery(query);
        gaCount.addAggregate('COUNT');
        gaCount.query();
        var count = 0;
        if (gaCount.next()) {
            count = gaCount.getAggregate('COUNT');
            return count;
        }
    },

    type: 'gaCountReusable'
};

Mail Script Example:

(function runMailScript( /* GlideRecord */ current, /* TemplatePrinter */ template,
    /* Optional EmailOutbound */
    email, /* Optional GlideRecord */ email_action,
    /* Optional GlideRecord */
    event) {

    var table = 'incident';
    var query = 'stateIN1,2,3^assignment_group!=NULL';
    var fieldLabels = ['Number', 'Short Description', 'State','Assignment Group', 'Assigned To'];
    var fields = ['number', 'short_description','state','assignment_group', 'assigned_to'];
    var results = new gaCountReusable().aggregateCount(table, query, fieldLabels, fields);

    template.print(results);


})(current, template, email, email_action, event);

Call Mail Script in Notification:

Number of Incidents: ${mail_script:getIncidentCountGA}

Results (combined with GlideRecord HTML Table – Reusable Code)

Latest Posts