- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-13-2015 01:43 AM
Hi,
I am trying to automate the change process to pull a list of approvers from all the affected CIs when the change state is set to 'Approval requested'.
I can get it working when i pull from a single Reference field on a CI but many items have multiple approvers required on them and when i try to pull it from a List field it does nothing at all.
Im using the below script which has been adapted from one i found here.
var answer = [];
var affCIs = new GlideRecord('task_ci');
affCIs.addQuery('task', current.sys_id);
affCIs.query();
while(affCIs.next()){
answer.push(affCIs.ci_item.u_approver__person_); !
}
u_approver__person is the name of the list field im trying to pull from. If you can suggest a field that can serve this function better or correct the script to pull from the List correctly that would be great.
Thanks
Solved! Go to Solution.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-16-2015 06:13 AM
Here's an example .. Make sure that the affected CI list is loaded before this activity is being called ...
answer = [];
try
{
var approvers = '';
var ci = new GlideRecord('task_ci');
ci.addQuery('task',current.sys_id);
ci.query();
while (ci.next()) {
if(approvers.length == 0)
{
approvers = approvers + ci.ci_item.u_approver__person_.toString();
}
else
{
approvers = approvers + ',' + ci.ci_item.u_approver__person_.toString();
}
}
var approversArray = (approvers.toString() + ',').split(',');
for(i=0;i<approversArray.length;i++)
{
if(JSUtil.notNil(approversArray[i]))
{
answer.push(approversArray[i]);
}
}
}
catch(err)
{
gs.log('Error While Processing-'+err + '-' +approvers);
}

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-13-2015 06:10 AM
Sorry .. There was a typo...
var answer = [];
try
{
var approvers = (current.watch_list.toString() + ',').split(',');
gs.log('Current Value-'+current.watch_list.toString());
gs.log('Approvers-'+approvers);
for(i=0;i<approvers.length;i++)
{
if(JSUtil.notNil(approvers[i]))
{
answer.push(approvers[i]);
gs.log('Pushing the approvers-'+approvers[i]);
}
}
}
catch(err)
{
gs.log('Error While Processing-'+err);
}
Change the field from watch_list to your custom field
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-13-2015 06:50 AM
The syntax error is gone but its still not working im afraid.
I noticed in one of the earlier attempts that you too the _ off the end of u_approver__person. Was this for a reason or just a typo?

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-13-2015 06:54 AM
The code works well .. Just tested on demo .. Have you replaced 'watch_list' with your field name ? What is your field name ?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-13-2015 07:05 AM

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-13-2015 07:09 AM
You can remove line 1. That is not required ... Also what is the output from the logs ?