Catalog item to add role to group

Preethi26
Tera Contributor

Hi Team,

I need to create catalog item when role and group selected, role has to be added to selected group.

Can we please help me out, Can i use flow designers to achieve easily or workflow.

Thank You

3 ACCEPTED SOLUTIONS

Hi @Preethi26 

try this:

var roles = [];
var role = new GlideRecord('sys_user_role');
role.addEncodedQuery('nameINitil,admin');
role.query();
while(role.next()){
roles.push(role.getUniqueValue());
}
gs.info(roles);

//var roleID = roles.split(',');/// comment this line, not needed

for (var i = 0; i < roles.length; i++) {

var grRole = new GlideRecord('sys_group_has_role');
grRole.initialize();
grRole.group = '019ad92ec7230010393d265c95c260dd';
grRole.role = roles[i];
grRole.setWorkflow(false);
grRole.insert();
}

Best Regards
Aman Kumar

View solution in original post

Vishal Birajdar
Giga Sage

Hi @Preethi26 

 

Can you try below script background script :

 

 

var roles = [];
var role = new GlideRecord('sys_user_role');
role.addEncodedQuery('nameINitil,admin');
role.query();
while(role.next()){
roles.push(role.getUniqueValue());
}

for (var i = 0; i < roles.length; i++) {
var grRole = new GlideRecord('sys_group_has_role');
grRole.initialize();
grRole.setValue('group','477a05d153013010b846ddeeff7b1225');   ///use sys_id of your group
grRole.setValue('role',roles[i]);
grRole.insert();
}

 

 

Also, check by putting some logs if you are getting sys_id of roles or name in workflow for   'current.variables.roles_to_be_added' variable. If you are getting the sys_ids then no need to loop through 

 

var roles = current.variables.roles_to_be_added.toString().split(',');

for (var i = 0; i < roles.length; i++) {
var grRole = new GlideRecord('sys_group_has_role');
grRole.initialize();
grRole.setValue('group', current.variables.group);   ///use sys_id of your group
grRole.setValue('role',roles[i]);
grRole.insert();
}

 

You can do this using flow designer also which is better option i guess...

 

 

Vishal Birajdar
ServiceNow Developer

I know one thing, and that is that I know nothing.
- Socrates

View solution in original post

Hi @Preethi26 

 

Ok...so first you can add some condition in Look up Record - so that it will check records group & roles.

Step 1 :

VishalBirajdar_0-1701420061129.png

 

Step 2: 

VishalBirajdar_1-1701420130205.png

 

Step 3 : 

VishalBirajdar_2-1701420186621.png

 

Final flow should look like below :

 

VishalBirajdar_3-1701420254943.png

 

 

 

 

 

 

Vishal Birajdar
ServiceNow Developer

I know one thing, and that is that I know nothing.
- Socrates

View solution in original post

16 REPLIES 16

Hi @Preethi26 

 

For flow designer you first need to use for each flow logic and then create record in 'sys_group_has_role'

1. Loop through list of roles

VishalBirajdar_0-1701152202612.png

 

2. Create a record 

VishalBirajdar_1-1701152296567.png

 

 

 

Vishal Birajdar
ServiceNow Developer

I know one thing, and that is that I know nothing.
- Socrates

Hi @Preethi26 

 

Please try updated logic below :

 

1. After Get catalog variables action , use 'Look up records' action & put condition script as below

 

var roles = fd_data.trigger.request_item.variables.roles; //use your variable name 
 return 'sys_idIN' + roles;

 

VishalBirajdar_0-1701155080423.png

 

2. use for each flow logic on  look up records >> Role records 

VishalBirajdar_1-1701155169790.png

 

3. Create Record 

Group = Get catalog variables >> Groups >> Sys id

Role = For each >> Role record >> sys id

 

VishalBirajdar_2-1701155283392.png

 

I have checked & its working ....

Hope this helps....!!

 

 

 

 

Vishal Birajdar
ServiceNow Developer

I know one thing, and that is that I know nothing.
- Socrates

Hi @Vishal Birajdar 

Iam trying to do but i cant able to select look up role record Why its happening.

Preethi26_0-1701413708423.png

 

Hi @Preethi26 

 

Its because you have selected 'Look up Record' action (will work for only one record).

Use 'Look up Records' action.

 

 

 

 

 

 

Vishal Birajdar
ServiceNow Developer

I know one thing, and that is that I know nothing.
- Socrates

Thanks @Vishal Birajdar  It worked for Add role to group.

Iam trying to do same to remove roles from group, but its stuck in delete record action can you help 

Preethi26_0-1701419096691.png