how to automate assign user into group through catalog item.

Tharun13
Tera Contributor

Hi All

I have multiple groups and multiple users when user raise request for add into some X two groups, how we write a script in workflow.

how to automate assign user into group through catalog item.

 

Regard,

Tharun

1 ACCEPTED SOLUTION

Hey Tharun,

Update script as below it is working now

var groupsArray = [];
var usersArray = [];
var users = current.variables.user_to_add; //give users list collector variable name
usersArray = users.toString().split(',');
var groups = current.variables.group; //give groups list collector variable name
groupsArray = groups.toString().split(',');

for(var i=0; i<groupsArray.length; i++)
{
for(var j=0; j<usersArray.length; j++)
{
var gr = new GlideRecord('sys_user_grmember');
gr.initialize();
gr.user = usersArray[j]; 
gr.group = groupsArray[i]; 
gr.insert();
}
}

 

Mark as correct and helpful if it solved your query.

Regards,
Sumanth

View solution in original post

17 REPLIES 17

Hi Ankur,

can you share what script did you start with? -->workflow Run script

Is user variable a list collector and group variable a reference type? --> Yes

Please find the below catalog item ,

I am using List collector variables for groups and Users.

find_real_file.png

Try this script

var users = current.variables.users_variable_name; //give users list collector variable name
var usersArray = users.split(',');
var groups = current.variables.groups_variable_name; //give groups list collector variable name
var groupsArray = groups.split(',');

for(var i=0; i<groupsArray.length; i++)
{
for(var j=0; j<usersArray.length; j++)
{
var gr = new GlideRecord('sys_user_grmember');
gr.initialize();
gr.user = usersArray[j]; 
gr.group = groupsArray[i]; 
gr.insert();
}
}

SumanthDosapati
Mega Sage
Mega Sage

Hi Tharun,

Write script as below in your run script

var users = current.variables.users_variable_name; //give users list collector variable name
var usersArray = users.split(',');
var groups = current.variables.groups_variable_name; //give groups list collector variable name
var groupsArray = groups.split(',');

for(var i=0; i<groupsArray.length; i++)
{
for(var j=0; j<usersArray.length; j++)
{
var gr = new GlideRecord('sys_user_grmember');
gr.initialize();
gr.user = usersArray[j]; 
gr.group = groupsArray[i]; 
gr.insert();
}
}

 

Mark as correct and helpful if it solved your query.

Regards,
Sumanth

Hi Sumanth,

thanks for sharing script, the below script is not working.

var users = current.variables.user_to_add; //give users list collector variable name
var usersArray = users.split(',');
var groups = current.variables.group; //give groups list collector variable name
var groupsArray = groups.split(',');

for(var i=0; i<groupsArray.length; i++)
{
for(var j=0; j<usersArray.length; j++)
{
var gr = new GlideRecord('sys_user_grmember');
gr.initialize();
gr.user = usersArray[j]; 
gr.group = groupsArray[i]; 
gr.insert();
}
}

Are Users field and Groups field both are list collectors?

Can you share screenshot of code you tried