The CreatorCon Call for Content is officially open! Get started here.

i want my loop to run only once so that only the first person is displayed in the message

ServiceNow Use6
Tera Guru

Hi,

I have written a code, my requirement is out of the 10 'managed by' field in an array, I don't want to run the loop, I just want to end after the first expression itself (i=0). Currently it is not showing any message. Kindly help.

 

var action = fd_data._1__get_catalog_variables.action;
var service_account_string = fd_data._1__get_catalog_variables.service_account_s; //string
var service_account_arr = service_account_string.split(","); //array
var service_account_name_arr = [];
for(var i = 0)
{
var gr = new GlideRecord('u_cmdb_ci_unix_service_account');
gr.addQuery('sys_id',service_account_arr[i]);
gr.query();
if(gr.managed_by != " "){
while(gr.next())
{
service_account_name_arr.push(gr.managed_by.name.toString());
}
}
}
var msg = "Your request has been approved by manager " + service_account_name_arr + ". Next Step: Catalog Task for Unix Security group.";
return msg;

 

Regards

Suman P.

 

2 REPLIES 2

Tai Vu
Kilo Patron
Kilo Patron

Hi @ServiceNow Use6 

So if you'd like to run for the first element of the array service_account_arr, just force it as service_account_arr[0]

Let's try this adjustment.

var action = fd_data._1__get_catalog_variables.action;
var service_account_string = fd_data._1__get_catalog_variables.service_account_s; //string
var service_account_arr = service_account_string.split(","); //array
var service_account_name_arr = [];
var gr = new GlideRecord('u_cmdb_ci_unix_service_account');
gr.addQuery('sys_id', service_account_arr[0]); //First element in the array
gr.query();
if (gr.next()) {
    service_account_name_arr.push(gr.managed_by.name.toString()); //or gr.getDisplayValue('managed_by');
}

var msg = "Your request has been approved by manager " + service_account_name_arr + ". Next Step: Catalog Task for Unix Security group.";
return msg;

 

Let me know if it works for you.

 

Cheers,

Tai Vu

Prince Arora
Tera Sage

@ServiceNow Use6 

 

Please try this:

 

var action = fd_data._1__get_catalog_variables.action;
var service_account_string = fd_data._1__get_catalog_variables.service_account_s; //string
var service_account_arr = service_account_string.split(","); //array
var service_account_name_arr = [];
var gr = new GlideRecord('u_cmdb_ci_unix_service_account');
gr.get(service_account_arr[0]);
var msg = "Your request has been approved by manager " + gr.managed_by.name.toString() + ". Next Step: Catalog Task for Unix Security group.";
return msg;

 

If my answer solved your issue, please mark my answer as  Correct & 👍Helpful based on the Impact.