Report to pull in sys ids


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

Popular posts from this blog

Running transform maps asynchronously

Post a command to the ECC queue for the mid server to initiate a powershell file copy

GlideRecord setValue