Report script less than 5 tasks closed per user (tasktable)

rosti
Tera Contributor

Hey all

I have a customer who only wants to see a list report that gives only users who have closed less than 5 tasks over 30 days (All Tasks)

I see that there are limitations in the creation of a report and would like to hear from you experts how a script could be used for this and which I call via the report.

Thank you for your support.

2 ACCEPTED SOLUTIONS

Hi @rosti ,
The issue is in the encoded query line in script include.
The encodedQuery should be link this:

SonuParab_0-1692540020478.png

 

and I have observed that in your script line there is javascript&colon.


gr.addEncodedQuery("closed_atONLast 30 days@javascript:gs.beginningOfLast30Days()@javascript:gs.endOfLast30Days()");
gr.addAggregate('COUNT', 'closed_by');


could you please make these changes.
this will work.

 

View solution in original post

Hi @rosti ,
I have updated the script include If condition to check the fulfiller role. rest of the script is as it is.

  if (gr.getAggregate('COUNT', 'closed_by') < 5) { // here we are checking aggregate count

                var closesby = gr.closed_by.toString(); //Get closed by user i.e.user sys_id
                var role = "itil"; // Here  you can pass role called IT Service Management Professional. 
                var checkrole = gs.getUser().getUserByID(closesby).hasRole(role);// ckecking closed by user having fulfiller role
                if (checkrole) { // if true then and then only push sys_if into array.
                    usersys.push('' + closesby);
                }
            }

 

SonuParab_0-1692551592376.png

 

View solution in original post

23 REPLIES 23

rosti
Tera Contributor

Thanxs i will test some more and getback later

rosti
Tera Contributor

Hello
I didn't get it to work .there should be 2 users who have closed less than 4 tasks but I got 0 in result.

Any suggestions ?

Aslo if it possible to add if the user is an Fulfiller in the script would make it perfect .

could you please share your Script include script or snippet.

Hi @rosti ,
In your Report filter use javascript colon   

SonuParab_0-1692537473398.png

 


I think you have taken semicolon there.

rosti
Tera Contributor

Yes of course.

 

 

var fetchusers = Class.create();
fetchusers.prototype = Object.extendsObject(AbstractAjaxProcessor, {
getUsers: function() {


var usersys = [];
var gr = new GlideAggregate("task");
gr.addEncodedQuery("closed_atONLast 30 days@javascript&colon;gs.beginningOfLast30Days()@javascript&colon;gs.endOfLast30Days()");
gr.addAggregate('COUNT', 'closed_by');
gr.query();
while (gr.next()) {

if (gr.getAggregate('COUNT', 'closed_by') < 5) {
// gs.info(gr.number);
var closesby = gr.closed_by.toString();
usersys.push('' + closesby);
}
}
// gs.info(usersys);
return usersys;

},

type: 'fetchusers'
});