- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎07-18-2022 05:26 AM
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
Solved! Go to Solution.
- Labels:
-
Service Catalog
-
Workflow
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎07-18-2022 05:41 AM
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
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎07-18-2022 05:36 AM
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();
Palani
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎07-18-2022 05:41 AM
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
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader