Need help in the scripting to display the array values while using GlideAggregate

Maradani Revat1
Tera Contributor

Hi,

We are using Glide Aggregate and trying to display the values of the incident number in an array as output but we are not able to display the values. If you use GlideRecord we are able to display the value and the below script is working for GlideRecord but not for Glide Aggregate. Can anyone please help us with the issue.

 

var score='';
var scoreJson=[];
var scanApp = new GlideAggregate('incident'); // if we use Glide Record below script is working
scanApp.addEncodedQuery("state!=7^short_description!=NULL");
scanApp.groupBy('sys_created_by');
scanApp.orderByDesc('sys_created_on');
scanApp.getRowCount();
scanApp.query();

 

gs.info(scanApp.getRowCount());

 


      while(scanApp.next()){
        
        score=scanApp.getDisplayValue("number");

 

 

         scoreJson.push(score.toString());

 

}

 

 

          gs.info(scoreJson);

 

Output - while using Glide Aggregate -

find_real_file.png

Output while using Glide Record

 

find_real_file.png

 

 

7 REPLIES 7

Vaibhav Dane
Tera Expert
Tera Expert

Hi Maradani,

 

You need to add scanApp.groupBy('number'); before the query. I tried and its working.

 

Please mark correct if helpful.

 

Regards,

Vaibhav Dane

Thank you Vaibhav

It is working fine.

Can you please help me in the script as well. In my script I am trying to group all the sys_created_by field and display the latest created record for each user.

I am getting the count as 9 but only one record is displaying.

 

[13:13] chiranjeevi Thirumandyam

var score='';
var scoreJson=[];
var scanApp = new GlideAggregate('incident');
scanApp.addEncodedQuery("state!=7^short_description!=NULL");
scanApp.groupBy('sys_created_by');
scanApp.setLimit();
scanApp.orderByDesc('sys_created_on');
scanApp.groupBy('number');
scanApp.query();
gs.info(scanApp.getRowCount());
      while(scanApp.next()){
             
        score=scanApp.getDisplayValue("number");
}

 

        scoreJson.push(score.toString());
}

 

         gs.info(scoreJson);

 

find_real_file.png

Hi,

your line

        scoreJson.push(score.toString());

 

should be inside while loop.

 

Thanks,
Sagar Pagar

The world works with ServiceNow

Hi Maradani,

 

You can use below code:

 

var score='';
var scoreJson=[];
var user = '';
var scanApp = new GlideAggregate('incident');
scanApp.addEncodedQuery("state!=7^short_description!=NULL");
scanApp.groupBy('sys_created_by');
scanApp.orderByDesc('sys_created_on');
scanApp.groupBy('number');
scanApp.query();
gs.info(scanApp.getRowCount());
      while(scanApp.next()){
if(scanApp.getDisplayValue("sys_created_by") != user ){
        score=scanApp.getDisplayValue("number");
        scoreJson.push(score.toString());

}
user = scanApp.getDisplayValue("sys_created_by");       
}
         gs.info(scoreJson);

 

Please mark correct if helpful.

 

Regards,

Vaibhav Dane