On R1100, we are creating roles and groups in SN to ensure we grant My Approval widget access to people who need it.
We need a way of querying who should have that access:
{code}
var role = "u_bolt_member";
gs.print("querying for " + role);
var gr = new GlideAggregate('u_cmn_organization'); //GlideAggregate query
gr.addAggregate('count'); //Count aggregate (only necessary for a count of items of each OS)
gr.orderByAggregate('count'); //Count aggregate ordering
gr.groupBy(role); //Group aggregate by the 'os' field
gr.query();
var total = 0;
while(gr.next()){
var person = gr.u_bolt_member;
var boltCount = gr.getAggregate('count'); //Get the count of the OS group
//Print the OS name and count of items with that OS
// gs.print('Distinct bolt people: ' + gr.u_head + ': ' + boltCount);
var guser = new GlideRecord('sys_user'); // user query
guser.addQuery('sys_id',person);
guser.query();
guser.next();
var netid = guser.user_name;
// gs.print(gr.u_head + " maps onto netid: " + netid);
// gs.print(netid);
total++;
}
gs.print("total is: " + total);
var role = "u_head";
////////////////////////
gs.print("querying for " + role);
var gr = new GlideAggregate('u_cmn_organization'); //GlideAggregate query
gr.addAggregate('count'); //Count aggregate (only necessary for a count of items of each OS)
gr.orderByAggregate('count'); //Count aggregate ordering
gr.groupBy(role); //Group aggregate by the 'os' field
gr.query();
var total = 0;
while(gr.next()){
var person = gr.u_bolt_member;
var boltCount = gr.getAggregate('count'); //Get the count of the OS group
//Print the OS name and count of items with that OS
// gs.print('Distinct bolt people: ' + gr.u_head + ': ' + boltCount);
var guser = new GlideRecord('sys_user'); // user query
guser.addQuery('sys_id',person);
guser.query();
guser.next();
var netid = guser.user_name;
// gs.print(gr.u_head + " maps onto netid: " + netid);
// gs.print(netid);
total++;
}
gs.print("total is: " + total);
//////////////////
var role = "u_opsmgr";
gs.print("querying for " + role);
var gr = new GlideAggregate('u_cmn_organization'); //GlideAggregate query
gr.addAggregate('count'); //Count aggregate (only necessary for a count of items of each OS)
gr.orderByAggregate('count'); //Count aggregate ordering
gr.groupBy(role); //Group aggregate by the 'os' field
gr.query();
var total = 0;
while(gr.next()){
var person = gr.u_bolt_member;
var boltCount = gr.getAggregate('count'); //Get the count of the OS group
//Print the OS name and count of items with that OS
// gs.print('Distinct bolt people: ' + gr.u_head + ': ' + boltCount);
var guser = new GlideRecord('sys_user'); // user query
guser.addQuery('sys_id',person);
guser.query();
guser.next();
var netid = guser.user_name;
// gs.print(gr.u_head + " maps onto netid: " + netid);
// gs.print(netid);
total++;
}
gs.print("total is: " + total);
{code}
results:
*** Script: querying for u_bolt_member
*** Script: total is: 7
*** Script: querying for u_head
*** Script: total is: 75
*** Script: querying for u_opsmgr
*** Script: total is: 115