- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-21-2018 10:28 AM
HI
I have a user defined field on my sys_user table. The field is called VP. I need to populate this field with the VP names for all my users. I do have VP or Vice President in the title field in sys user. Does anyone have any ideas how I can populate the VP field for my users? The VP could be 5 or 7 layers deep when dot walking to the user.manager.manager.manager etc
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-04-2018 05:01 AM
HI
Thanks for your help I got the below code to work
(function executeRule(current, previous /*null when async*/)
{
var manager_sys_id=current.sys_id;
var managertitle = current.title;
var managerid=current.sys_id;
gs.addInfoMessage('++++user sysid is: ' + manager_sys_id);
gs.addInfoMessage('++++user title is: ' + managertitle);
gs.addInfoMessage('++++user managerid is: ' + managerid);
findVP(manager_sys_id);
function findVP(manager_sys_id)
{
var user = new GlideRecord('sys_user');
user.get(manager_sys_id);
gs.addInfoMessage('++++Manager found is++++'+user.name+'+++++with title+++'+user.title + '++++++user id :' + user.sys_id + 'indexof :' +user.title.indexOf('VP'));
if (user.title.indexOf('VP')==-1)
// gs.addInfoMessage('++++ENTER VP CODE ++++' + '++++++user id :' + user.sys_id);
findVP(user.manager);
if (user.title.indexOf('VP')==0)
{
gs.addInfoMessage('++++enter the name of VP++++' + user.name);
current.u_vp_name=user.name;
}
}
})(current, previous);

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-03-2018 10:07 AM
Try below
(function executeRule(current, previous /*null when async*/) {
var manager_sys_id=gs.getUserID();
gs.addInfoMessage('++++user sysid P++++' + manager_sys_id);
current.u_vp_name=findVP(manager_sys_id);
function findVP(manager_sys_id)
{
var user = new GlideRecord('sys_user');
user.get(manager_sys_id);
gs.addInfoMessage('++++Manager found is++++'+user.name+'+++++with title+++'+user.title);
if (user.title.indexOf('VP')==-1)
{
return findVP(user.manager);
gs.addInfoMessage('++++VPPPPPP found is++++'+user.name+'+++++with title+++'+user.title);
}
else
{
return user.sys_id;
}
}
})(current, previous);
Please mark this response as correct or helpful if it assisted you with your question.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-03-2018 10:58 AM
when pasting code it has a warning unreachable 'gs' after return not working

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-03-2018 11:28 AM
Also where do you want to update the user? You are pulling the current user who is logged in.
(function executeRule(current, previous /*null when async*/) {
var manager_sys_id=gs.getUserID();
gs.addInfoMessage('++++user sysid P++++' + manager_sys_id);
while (manager_sys_id!='found')
{
manager_sys_id = findVP(manager_sys_id);
}
gs.addInfoMessage('VPs id is - '+manager_sys_id);
function findVP(manager_sys_id)
{
var user = new GlideRecord('sys_user');
user.get(manager_sys_id);
gs.addInfoMessage('++++Manager found is++++'+user.name+'+++++with title+++'+user.title);
if (user.title.indexOf('VP')==-1)
{
return user.manager;
gs.addInfoMessage('++++VPPPPPP found is++++'+user.name+'+++++with title+++'+user.title);
}
else
{
return 'found';
}
}
})(current, previous);
Please mark this response as correct or helpful if it assisted you with your question.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-04-2018 05:01 AM
HI
Thanks for your help I got the below code to work
(function executeRule(current, previous /*null when async*/)
{
var manager_sys_id=current.sys_id;
var managertitle = current.title;
var managerid=current.sys_id;
gs.addInfoMessage('++++user sysid is: ' + manager_sys_id);
gs.addInfoMessage('++++user title is: ' + managertitle);
gs.addInfoMessage('++++user managerid is: ' + managerid);
findVP(manager_sys_id);
function findVP(manager_sys_id)
{
var user = new GlideRecord('sys_user');
user.get(manager_sys_id);
gs.addInfoMessage('++++Manager found is++++'+user.name+'+++++with title+++'+user.title + '++++++user id :' + user.sys_id + 'indexof :' +user.title.indexOf('VP'));
if (user.title.indexOf('VP')==-1)
// gs.addInfoMessage('++++ENTER VP CODE ++++' + '++++++user id :' + user.sys_id);
findVP(user.manager);
if (user.title.indexOf('VP')==0)
{
gs.addInfoMessage('++++enter the name of VP++++' + user.name);
current.u_vp_name=user.name;
}
}
})(current, previous);