Query Workflow for User 'Requested for' Manager
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-04-2017 06:08 AM
This is an ongoing code I am scripting to query a workflow for the user submitting a request's Manager. The query is supposed to check the manager field on the sys_user table for whether or not 'manager1' or 'manager2' is the current Supervisor for the user submitting the request. If so, then it routes accordingly. If no, it strings the name of the user's Manager.
// This script needs to set answer to 'yes' or 'no' to indicate the state of the activity.
var grMem = new GlideRecord('sys_user');
grMem.addQuery('user', current.request.requested_for);
grMem.addQuery('manager', current.requested_for.manager);
grMem.query();
var reqMngr = new GlideRecord('sys_user');
regMngr.addQuery('manager', current.requested_for.manager);
reqMngr.addQuery('manager.name', 'manager1');
reqMngr.query();
var reqSup = new GlideRecord('sys_user');
reqSup.addQuery('manager', current.requested_for.manager);
reqSup.addQuery('manager.name', 'manager2');
reqSup.query();
if((grMem.next()) || (reqMngr.next())){
answer = 'yes';
}
else if((grMem.next()) || (reqSup.next())){
answer = 'yes';
}
else{
answer = 'no';
answer.push(current.request.requested_for.manager.sys_id.toString());
}
Bottom-line, I either get a pass-through on the workflow or an error when I run the script. Any help would be GREATLY appreciated!
- Thx!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-04-2017 06:20 AM
Please check the below highlighted lines
grMem.addQuery('user', current.request.requested_for) if this is correct grMem.addQuery('manager', current.requested_for.manager) is wrong. I mean request is missing
var grMem = new GlideRecord('sys_user');
grMem.addQuery('user', current.request.requested_for);
grMem.addQuery('manager', current.request.requested_for.manager); //
grMem.query();
var reqMngr = new GlideRecord('sys_user');
regMngr.addQuery('manager', current.request.requested_for.manager);
reqMngr.addQuery('manager.name', 'manager1');
reqMngr.query();
var reqSup = new GlideRecord('sys_user');
reqSup.addQuery('manager', current.request.requested_for.manager);
reqSup.addQuery('manager.name', 'manager2');
reqSup.query();
if((grMem.next()) || (reqMngr.next())){
answer = 'yes';
}
else if((grMem.next()) || (reqSup.next())){
answer = 'yes';
}
else{
answer = 'no';
answer.push(current.request.requested_for.manager.sys_id.toString());
}

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-04-2017 06:41 AM
Hi Jason,
If this is in an if activity and you're just trying to check to see if the user's manager is one of two people you shouldn't have to script it all, just use the condition builder.
Also, if it's an if activity then the answer should be either 'yes' or 'no', pushing the manager sys_id to a string shouldn't do anything or it may generate an error. If you need to use a value later on, I would write it to the workflow scratchpad.