Advanced Reporting Techniques
Report referencing
a script include to pull back sysids to condition field:
Report:
sys id filter:
javascript:new refqual_functions().report_sysidlist('auth_request');
script include code, note: the client callable box must be ticked (note, the script include contains some bonus code for refreshing group membership of a group to contain open approvals used for chasing up approvals via a scheduled email of the report)
var refqual_functions = Class.create();
refqual_functions.prototype = {
initialize: function() {
//gs.log('test
initialise--', 'refqual_functions');
},
report_sysidlist: function(filterToApply){
//--build up list of
sysids to return to a report condition field filter by sysid
gs.log('test--', 'refqual_functions');
var ids = [];
if (filterToApply=='auth_request'){
//--build up a list of
sysids to return to ' Auth Process Outstanding Approvals' report,
var grApprovals=new GlideRecord('sysapproval_approver');
grApprovals.addQuery('state','requested');
grApprovals.query();
while(grApprovals.next()){
var grReqItem=new GlideRecord('sc_req_item');
grReqItem.addQuery('sys_id', grApprovals.sysapproval);
grReqItem.addQuery('order_guide','7d292af7371c57008ca1138943990e7d'); //--auth req order
guide
grReqItem.query();
if (grReqItem.next()){
ids.push(grApprovals.sys_id.toString());
}
}
}
return ids;
},
refresh_groupMemberShip_authprocess: function(){
//--called from sch
job 'refresh group Auth Requests Open Approvals'
//--group membership
to refresh a group membership list
var grGroupMem_old=new GlideRecord('sys_user_grmember');
grGroupMem_old.addQuery('group', 'e6cda34137cdd7403bef532e53990e91');//--" Auth
Requests Open Approvals"
//grGroupMem_old.query();
//gs.print(grGroupMem_old.getRowCount());
grGroupMem_old.deleteMultiple();
var grApprovals=new GlideRecord('sysapproval_approver');
grApprovals.addQuery('state','requested');
grApprovals.query();
while(grApprovals.next()){
var grReqItem=new GlideRecord('sc_req_item');
grReqItem.addQuery('sys_id', grApprovals.sysapproval);
grReqItem.addQuery('order_guide','7d292af7371c57008ca1138943990e7d'); //--auth req order
guide
grReqItem.query();
if (grReqItem.next()){
if (this._checkAlreadyGroupMember('e6cda34137cdd7403bef532e53990e91', grApprovals.approver)==0){
var grGroupMem=new GlideRecord('sys_user_grmember');
grGroupMem.newRecord();
grGroupMem.group='e6cda34137cdd7403bef532e53990e91';//--" Auth
Requests Open Approvals"
grGroupMem.user=grApprovals.approver;
grGroupMem.insert();
}
}
}
},
_checkAlreadyGroupMember: function(groupSYSID, userSYSID){
var grGroupMem=new GlideRecord('sys_user_grmember');
grGroupMem.addQuery('group', groupSYSID);
grGroupMem.addQuery('user', userSYSID);
grGroupMem.query();
return (grGroupMem.getRowCount());
//--returns zero if
not a member
},
type: 'refqual_functions'
};
Comments
Post a Comment