Workflow script "answer.push" question

zzsrvnow
Giga Contributor

Hello All.

If "Request by" user is the member of the Approvers group (Assignment Group) we should exclude this user from the Approvers list. To exclude "Requested by" user from the Approvers list I'm using the code bellow. Debugging statement [workflow.info('APPROVER = ' + approvers.user.toString());] recording in the log all approvers correctly. In simple words the code is working.  However, retrieved approvers are not displayed  on the Approvers list on the form.

Please, any suggestions for me?   Thank you in advance for your help.

SCRIPT:

answer = [];
var approvers = new GlideRecord('sys_user_grmember');
approvers.addQuery('group', current.assignment_group);  
approvers.query();
while(approvers.next()) {  
   if(approvers.user.toString() != current.requested_by.toString()) {
    workflow.info('APPROVER = ' + approvers.user.toString());            
    answer.push(approvers.user.toString());

       }
}

Approvers are not displayed on the list:

find_real_file.png

 

Even the log says approvers are retrieved correctly:

find_real_file.png

1 ACCEPTED SOLUTION

Pradeep Sharma
ServiceNow Employee
ServiceNow Employee

Hi,

 

I'm assuming that you are using "Approval group" activity and not "Approval User" activity in the workflow. If yes, then switch it to the "Approval user" activity and the script should work fine.

 

Thanks,

Pradeep Sharma

View solution in original post

5 REPLIES 5

@Pradeep Sharma 

Hi Pradeep,

I am using approver user activity only , also I am getting only one approver instead of getting n number.

FYR

find_real_file.png

Based on the selection of country in catalog form, approver should set. Here Smit Ruan only getting approval and not Jenine.

Attaching script FYR 

 

var answer = [];

if(current.variables.add_market == 'Yes'){

var list = current.variables.other_markets.toString();
workflow.info("othermarkets"+current.variables.other_markets);
var a = list.split(',');
workflow.info("marketsplit"+a);
var i;
var ctry;
for (i = 0; i < a.length; i++) {
workflow.info("marketi"+a[i]);
var grc = new GlideRecord('core_country');
grc.addQuery('sys_id', a[i]);
grc.query();
while(grc.next()){
ctry = grc.name;
workflow.info("countryname"+ ctry);
}
var gr1 = new GlideRecord('u_global_medical_approvers');
gr1.addQuery('u_country', ctry);
gr1.addQuery('u_active',true);
gr1.query();
while(gr1.next())
{
workflow.info("countryname1"+ ctry);
workflow.info("countryuser"+ gr1.u_user);
answer.push(gr1.u_user);
}
}
}

 

find_real_file.png

 

 

find_real_file.png