How to implement manager's manager as approver has VP in title?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-13-2016 12:21 PM
Hi,
I wants to implement below request in catalog item -
Requirement is : it should go for the requester's VP approval, but VP's level is not defined and sure .
There is a title field in which "VP" is mention.
It can be - >
requester -> Manager (Title is VP)
requester -> manager -> manager (Title is VP)
requester- > Manager -> Manger -> manager (Title is VP).
Could you please suggest ?

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-30-2016 11:37 AM
Hi Neeta,
Here you go
var answer=[];
answer.push(findVP(current.variables.u_requester.toString());
function findVP(id){
var gr= new GlideRecord("sys_user");
gr.get(id);
if(!gr.manager.nil()){
if(gr.manager.title=="VP"){
return gr.getValue('manager');
}
else{
return findVP(gr.getValue("manager"));
}
}
return '';
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-30-2016 12:12 PM
Hi Neeta,
As Chuck suggested, you should use an recursive function in order to achieve this.
var maxLevels = 5;
requestor=current.variables.requestor;
var manager="";
var gr= new GlideRecord('sys_user');
gr.get('sys_id', requestor);
gr.query();
if(gr.next()){
manager=gr.manager;
if(manager)
var vptitle= getmanagerstitle(manager, maxlevels);
}
answer=vptitle;
function getmanagerstitle(mgr,levels){
var gr1= new GlideRecord('sys_user');
gr1.get('sys_id',mgr);
gr1.query();
if(gr1.next()){
if (gr1.title=="VP"){
return gr.sys_id;
else{
return getmanagertittle(mgr+".manager",(levels-1));
}
}
}
}
Thanks,
Jagarnath

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-30-2016 12:18 PM
FYI: you do not need gr.query() and gr.next() when you are using gr.get()

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-11-2020 01:49 PM
//requestor='userName';
requestor=gs.getUserName();
var manager="";
var usr= new GlideRecord('sys_user');
usr.get('user_name', requestor);
usr.query();
if(usr.next()){
manager=usr.manager;
if(manager)
var myVPemail= getmanagerstitle(manager);
gs.print(myVPemail +" is the VP");
}
//answer=myVPemail;
function getmanagerstitle(mgr,levels){
var usr= new GlideRecord('sys_user');
usr.get('sys_id',mgr);
usr.query();
if(usr.next()){
var isVP = usr.title.indexOf("VP, ");
if (isVP == 0){
gs.print(usr.email +" - "+usr.title);
return usr.email;
}
else{
gs.print(usr.email +" - "+usr.title);
return getmanagerstitle(usr.manager);
}
}
}