GlideAggregate is not working

sudhir041
Tera Contributor

I have a script and currently it is not working with GlideAggregate can someone please rectify it:

 

var RITM = new GlideRecord("sc_req_item");
RITM.addEncodedQuery("state=2"); //state is in progress
RITM.query();
while (RITM.next()) {
    var p= 0;
    var Task = new GlideAggregate("sc_task");
    Task.addQuery("request_item", RITM.sys_id);
    Task.addAggregate('COUNT');
   Task.query();
    var total = Task.getAggregate('COUNT');
    while (Task.next()) {
        if (Task.active.toString() == 'false') {
            p++;
        }
    }

    if (p == total && total != 0) {
       gs.print(RITM.number);
    }
}
1 ACCEPTED SOLUTION

Here is a script that can do that. Depending on the instance it's going for, amount of RITMs, active tasks and so on it might need to be tweaked. Perhaps even run as a flow instead and so on. I would also probably throw in some more checks in case there aren't any RITMs with state "in progress" or active tasks.

var RITM = new GlideRecord("sc_req_item");
RITM.addEncodedQuery("state=2"); //state is in progress
RITM.query();

var ritmSysids = [];
//Get all RITM sys_ids and put them in a array
while (RITM.next()) {
ritmSysids.push(RITM.getUniqueValue());
}    

var checkTasks = new GlideRecord('sc_task');
checkTasks.addQuery('request_item','IN',ritmSysids);
checkTasks.addQuery('active',true);
checkTasks.query();

//Go through active tasks and remove the RITM from the array since it should only contain
//RITM with no active tasks
while(checkTasks.next()){

ritmSysids = ritmSysids.filter(function(item) {
return item != checkTasks.request_item
})
}

gs.info("Sys_ids of RITM with no active tasks: " + ritmSysids)

 

 

View solution in original post

16 REPLIES 16

Goran WitchDoc
ServiceNow Employee
ServiceNow Employee

Hi,

 

Can you explain what you are trying to achieve with this code, I think it might be possible to make it simpler than this.

I need the RITMs whose all tasks are active false but RITMS are still in progress. So I need to achieve this

This can be easily achieved through a report

Mike_R_0-1669148914405.png

 

sudhir041
Tera Contributor

Hi can you please once rectify my code i was trying through scripting to achieve this