GlideAggregate on Remote Table

Colleen
Tera Expert

I've created a remote table that queries an external data source, and I want a count of the records that satisfy a specific query.

  

This script returns null:

var sections = new GlideAggregate('x_uob15_canvas_adm_st_course_section');
sections.addQuery('course.sis_id', 'C2023-B08835').addCondition('start_at', '>', '2024-09-01 00:00:00');
sections.addAggregate('COUNT');
sections.query();

gs.print(sections.getAggregate('COUNT'));

This script returns NaN:

var sections = new global.GlideQuery('x_uob15_canvas_adm_st_course_section')
.where('course.sis_id', 'C2023-B08835').where('start_at', '>', '2024-09-01 00:00:00')
.count();

gs.print(sections);

 

However, these scripts return the expected result:

var sections = new GlideRecord('x_uob15_canvas_adm_st_course_section');
sections.addQuery('course.sis_id', 'C2023-B08835').addCondition('start_at', '>', '2024-09-01 00:00:00');
sections.query();

gs.print(sections.getRowCount());

OR

var sections = new global.GlideQuery('x_uob15_canvas_adm_st_course_section')
.where('course.sis_id', 'C2023-B08835').where('start_at', '>', '2024-09-01 00:00:00')
.select().toArray(100).length;

gs.print(sections);

 

I cannot find documentation on aggregate methods in the v_query API.

 

Has anyone successfully used GlideAggregate on a remote table?

2 REPLIES 2

Andy-L
Tera Contributor

Hi, in the first example, it looks like a call to sections.next() is missing after the query..

if (sections.next() {
...
}

 

Bhuvan
Kilo Patron

@Colleen 

 

GligeAggregate is used for database aggregation queries. Refer below documentation for usage,

 

https://developer.servicenow.com/dev.do#!/reference/api/yokohama/server/no-namespace/c_GlideAggregat...

 

Change your query to below

var sections = new GlideAggregate('x_uob15_canvas_adm_st_course_section');
sections.addQuery('course.sis_id', 'C2023-B08835').addCondition('start_at', '>', '2024-09-01 00:00:00');
sections.addAggregate('COUNT','field_name');
sections.query();
while(sections.next())
{
gs.print(sections.getAggregate('COUNT','field_name'));
}

Below is a sample,

Bhuvan_0-1757169832910.png
Bhuvan_1-1757169850953.png

If this helped to answer your query, please mark it helpful & accept the solution. 

 

Thanks,

Bhuvan