The CreatorCon Call for Content is officially open! Get started here.

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