How to add group members from a catalog item variable to a group member table in servicenow using workflow?

Afsar Hussain
Kilo Guru

Hi,

I have one catalog item, in which there are variables like Resolution(single line text), Manager(reference), Group Members(list collector).

Backend name for these variables are resolution, manager, group_members.

When this catalog item is submitted, a group should be created with the name , the value in the Resolution variable.

Also groups members which are selected in the Group Members variable should be added to that group as well as manager should be added to that group.

Note: Manager are not getting selected in the group members variable.

I have written the following script in the Run Script activity of a workflow to create the group and to add the group members to that created group.

Run Script 1: to create group

var group= new GlideRecord('sys_user_group');
group.initialize();
group.name= current.variables.resolution;
group.email=current.variables.group_email;
group.manager=current.variables.manager;
group.description=current.variables.description;
group.insert();

 

Run Script 2: to add group members

var catalogMembers=current.variables.group_members.toString().split(",");
workflow.info("members sys_id: "+ catalogMembers);
var size=catalogMembers.length;
var i;
for(i=0;i<catalogMembers.length;i++)
{
    var grp=new GlideRecord('sys_user_grmember');
        grp.initialize();
        grp.group=current.variables.resolution;
        grp.user=catalogMembers[i];
        grp.insert();
    
    
}
var grp2=new GlideRecord('sys_user_grmember');
grp2.initialize();
grp2.group=current.variables.resolution;
grp2.user=current.variables.manager.toString();
grp2.insert();

 

The group is getting created but the group members are not getting added.

What's wrong with my script?

Added some attachments.

Regards,

Afsar

1 ACCEPTED SOLUTION

Ankur Bawiskar
Tera Patron
Tera Patron

Hi,

you already have the group sysId; use that here

update as this; I have highlighted the part in bold

var group= new GlideRecord('sys_user_group');
group.initialize();
group.name= current.variables.resolution;
group.email=current.variables.group_email;
group.manager=current.variables.manager;
group.description=current.variables.description;
var sysId = group.insert();

var catalogMembers = current.variables.group_members.toString().split(",");

for(var i=0;i<catalogMembers.length;i++)
{
    var grp=new GlideRecord('sys_user_grmember');
    grp.initialize();
    grp.group = sysId;
    grp.user = catalogMembers[i];
    grp.insert();


}
var grp2=new GlideRecord('sys_user_grmember');
grp2.initialize();
grp2.group=sysId;
grp2.user=current.variables.manager.toString();
grp2.insert();

Regards
Ankur

Regards,
Ankur
✨ Certified Technical Architect  ||  ✨ 9x ServiceNow MVP  ||  ✨ ServiceNow Community Leader

View solution in original post

2 REPLIES 2

palanikumar
Mega Sage

Hi,

Try passing sys_id of group name instead of name

var catalogMembers=current.variables.group_members.toString().split(",");
workflow.info("members sys_id: "+ catalogMembers);
var grGrp = new GlideRecord("sys_user_group");
grGrp.get("name",current.variables.resolution);
var size=catalogMembers.length;
var i;
for(i=0;i<catalogMembers.length;i++)
{
        var grp=new GlideRecord('sys_user_grmember');
        grp.initialize();
        grp.group=grGrp.sys_id;
        grp.user=catalogMembers[i];
        grp.insert();
    
    
}
var grp2=new GlideRecord('sys_user_grmember');
grp2.initialize();
grp2.group=grGrp.sys_id;
grp2.user=current.variables.manager.toString();
grp2.insert();
Thank you,
Palani

Ankur Bawiskar
Tera Patron
Tera Patron

Hi,

you already have the group sysId; use that here

update as this; I have highlighted the part in bold

var group= new GlideRecord('sys_user_group');
group.initialize();
group.name= current.variables.resolution;
group.email=current.variables.group_email;
group.manager=current.variables.manager;
group.description=current.variables.description;
var sysId = group.insert();

var catalogMembers = current.variables.group_members.toString().split(",");

for(var i=0;i<catalogMembers.length;i++)
{
    var grp=new GlideRecord('sys_user_grmember');
    grp.initialize();
    grp.group = sysId;
    grp.user = catalogMembers[i];
    grp.insert();


}
var grp2=new GlideRecord('sys_user_grmember');
grp2.initialize();
grp2.group=sysId;
grp2.user=current.variables.manager.toString();
grp2.insert();

Regards
Ankur

Regards,
Ankur
✨ Certified Technical Architect  ||  ✨ 9x ServiceNow MVP  ||  ✨ ServiceNow Community Leader