Background Script Output VP via Job Code

Evan Duran
Kilo Guru

I'm trying to gather users VP in their hierachy by going manager by manager until we find a job code of 11, then returning that value. I have an example going for me, but it isn't working.

 

var gr = new GlideRecord('incident');
gr.addEncodedQuery('state=2^assignment_group=c36b891cdbfb1b041eca3a92ba9619d6');
gr.query();

while(gr.next()) {

        // I need to get assigned_to.manager of each record from query
        var userGR = new GlideRecord('sys_user');
        var hrProfileGR = new GlideRecord('sn_hr_core_profile');
        var manager = '';
        var validJobGroup = false;
 
        if (userGR.get(user)) {
            manager = userGR.manager;
            while (!validJobGroup) {
                if (hrProfileGR.get('user', manager)) {
 
                     if (hrProfileGR.get('user', manager)) {
                        if (hrProfileGR.position.u_job_group == 11) {
                            validJobGroup = true;
                        } else {
                            manager = hrProfileGR.user.manager;

// need to return assigned to name along with their vp here
gs.info("gr.assignedto.toString() + VP.toString()); 
        
1 ACCEPTED SOLUTION

Here's one I got working

var gr = new GlideRecord('incident');
gr.addEncodedQuery('state=2^assignment_group=c36b891cdbfb1b041eca3a92ba9619d6');
gr.query();
 
while(gr.next()) {
           var user = gr.caller_id;      
           var validJobGroup = false;
           var manager = user.manager;
 
           while(manager.u_hr_profile.position.u_job_group != 11) {
            manager = manager.manager;
            if(manager.u_hr_profile.position.u_job_group == 11){
                gs.info(user.getDisplayValue() + ' ' + manager.getDisplayValue() + ' ' + manager.u_hr_profile.position.u_job_group);
            }
           }
}

View solution in original post

5 REPLIES 5

SanjivMeher
Kilo Patron
Kilo Patron

I have made few correction. Can you try?

var gr = new GlideRecord('incident');
gr.addEncodedQuery('state=2^assignment_group=c36b891cdbfb1b041eca3a92ba9619d6');
gr.query();

while(gr.next()) {

        // I need to get assigned_to.manager of each record from query
        var user = gr.assigned_to.manager;
        var userGR = new GlideRecord('sys_user');
        
        var manager = '';
        var validJobGroup = false;
 
        if (userGR.get(user)) {
            manager = userGR.manager;
            while (!validJobGroup) {
                var hrProfileGR = new GlideRecord('sn_hr_core_profile');
                if (hrProfileGR.get('user', manager)) {
                        if (hrProfileGR.position.u_job_group == 11) {
                            validJobGroup = true;
                        } else {
                            manager = hrProfileGR.user.manager;
                            gs.info("gr.assignedto.toString() + VP.toString()); 
                         }
                }
        }
}

 


Please mark this response as correct or helpful if it assisted you with your question.

error on line 23

gs.info("gr.assignedto.toString() + VP.toString()); 
var gr = new GlideRecord('incident');
gr.addEncodedQuery('state=2^assignment_group=c36b891cdbfb1b041eca3a92ba9619d6');
gr.query();

while(gr.next()) {

        // I need to get assigned_to.manager of each record from query
        var user = gr.assigned_to.manager;
        var userGR = new GlideRecord('sys_user');
        
        var manager = '';
        var validJobGroup = false;
 
        if (userGR.get(user)) {
            manager = userGR.manager;
            while (!validJobGroup) {
                var hrProfileGR = new GlideRecord('sn_hr_core_profile');
                if (hrProfileGR.get('user', manager)) {
                        if (hrProfileGR.position.u_job_group == 11) {
                            validJobGroup = true;
                        } else {
                            manager = hrProfileGR.user.manager;
                            gs.info("gr.assignedto.toString() + VP.toString()); 
                         }
                }
        }
}


 

can you remove that line and try?

 


Please mark this response as correct or helpful if it assisted you with your question.

Maddysunil
Kilo Sage

@Evan Duran 

Seems to be few issues with the code:

Variable user is not defined: In your script, user is referenced in if (userGR.get(user)), but it's not defined anywhere in the provided code. You need to ensure you're passing the correct user sys_id or some other identifier to fetch user records properly.

You're initializing GlideRecord objects for sys_user and sn_hr_core_profile, but you're not querying any records from them. You need to query records to fetch data from these tables.

 

 

var gr = new GlideRecord('incident');
gr.addEncodedQuery('state=2^assignment_group=c36b891cdbfb1b041eca3a92ba9619d6');
gr.query();

while (gr.next()) {
    var assignedTo = gr.assigned_to;
    var manager = '';
    var validJobGroup = false;

    var userGR = new GlideRecord('sys_user');
    if (userGR.get(assignedTo)) {
        manager = userGR.manager;
        while (manager) {
            var managerUserGR = new GlideRecord('sys_user');
            if (managerUserGR.get(manager)) {
                var hrProfileGR = new GlideRecord('sn_hr_core_profile');
                if (hrProfileGR.get('user', managerUserGR.sys_id)) {
                    if (hrProfileGR.position.u_job_group == 11) {
                        validJobGroup = true;
                        break;
                    } else {
                        manager = managerUserGR.manager;
                    }
                } else {
                    // Handle if HR profile not found for manager
                    break;
                }
            } else {
                // Handle if manager user record not found
                break;
            }
        }
    } else {
        // Handle if assigned user record not found
    }

    if (validJobGroup) {
        gs.info("Assigned To: " + assignedTo.name + ", VP: " + managerUserGR.name);
    }
}

 

Please Mark Correct if this solves your query and also mark 👍Helpful if you find my response worthy based on the impact.

 

Thanks