- 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 03:16 AM
Try this
var approvers = (current.u_approver__person.toString() + ',').split(',');
for(i=0;i<approvers.length;i++)
{
if(JSUtil.notNtil(approvers[i]))
{
answer.push(approvers[i]));
}
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-13-2015 04:34 AM
Ive tried putting this into the Approval - User bit of the workflow and it hasnt seemed to work.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-13-2015 05:45 AM
try
{
var approvers = (current.u_approver__person.toString() + ',').split(',');
gs.log('Current Value-'+current.u_approver__person.toString());
gs.log('Approvers-'+approvers);
for(i=0;i<approvers.length;i++)
{
if(JSUtil.notNtil(approvers[i]))
{
answer.push(approvers[i]);
gs.log('Pushing the approvers-'+approvers[i]);
}
}
}
catch(err)
{
gs.log('Error While Processing-'+err);
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-13-2015 05:56 AM
This is getting skipped due to Syntax errors:
WARNING at line 3: Expected a string and instead saw var.
ERROR at line 3: Expected ':' and instead saw 'approvers'.