How to Add or Remove Users in Group.(Using Workflow).

Para5
Tera Guru

1. I have created one catalog item "Add Remove client portal Admnistrators".
2.On this catalog item added two variables:
    1.Contact to Add - When the User move in Selected, Automatically add to the 'Client portal group'
    2.Contact to Remove - When User move in Available,Automatically remove from the 'Client portal group'.
3.My requirement is adding or removing users from the 'Client portal group'. I want to implement this using workflow.
   Thank You.

find_real_file.png

1 ACCEPTED SOLUTION

Hi,

try this

var usersToAdd = current.variables.contact_to_add.toString().split(','); // give correct variable name here

var usersToRemove = current.variables.contact_to_remove.toString(); // give correct variable name here

var rec = new GlideRecord('sys_user_grmember');
rec.addQuery("group.name", "Client portal group");
rec.addQuery("user", 'IN', usersToRemove);
rec.query();
while(rec.next())
    rec.deleteRecord();

for(var i in usersToAdd){
    var rec1 = new GlideRecord('sys_user_grmember');
    rec1.addQuery("user", usersToAdd[i]);
    rec1.addQuery("group.name", "Client portal group");
    rec1.query();
    if(!rec1.hasNext()){
        rec1.initialize();
        rec1.user = usersToAdd[i];
        rec1.setDisplayValue('group', "Client portal group");
        rec1.insert();
    }
}

regards
Ankur

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

View solution in original post

14 REPLIES 14

@Ankur Bawiskar, Below is the script

var usersToAdd = current.variables.contact_to_add.toString().split(','); // give correct variable name here

var usersToRemove = current.variables.contact_to_remove; // give correct variable name here

var rec = new GlideRecord('sys_user_grmember');
rec.addQuery("group.name", "Client portal group");
rec.addQuery("user", 'IN', usersToRemove);
rec.query();
while(rec.next())
    rec.deleteRecord();

for(var i in usersToAdd){
    var rec1 = new GlideRecord('sys_user_grmember');
    rec1.addQuery("user", usersToAdd[i]);
    rec1.addQuery("group.name", "Client portal group");
    rec1.query();
    if(!rec1.hasNext()){
        rec1.initialize();
        rec1.user = usersToAdd[i];
        rec1.setDisplayValue('group', "Client portal group");
        rec1.insert();
    }
}

I have added Abel Tuter and Removed same .

Hi,

try this

var usersToAdd = current.variables.contact_to_add.toString().split(','); // give correct variable name here

var usersToRemove = current.variables.contact_to_remove.toString(); // give correct variable name here

var rec = new GlideRecord('sys_user_grmember');
rec.addQuery("group.name", "Client portal group");
rec.addQuery("user", 'IN', usersToRemove);
rec.query();
while(rec.next())
    rec.deleteRecord();

for(var i in usersToAdd){
    var rec1 = new GlideRecord('sys_user_grmember');
    rec1.addQuery("user", usersToAdd[i]);
    rec1.addQuery("group.name", "Client portal group");
    rec1.query();
    if(!rec1.hasNext()){
        rec1.initialize();
        rec1.user = usersToAdd[i];
        rec1.setDisplayValue('group', "Client portal group");
        rec1.insert();
    }
}

regards
Ankur

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

Thanks @Ankur Bawiskar for your reply......  
I have added if condition in workflow.(current.variables.contact_to_add !=' ') i.e Variable A. And split the above scripts into two parts.This is works for me.

 

find_real_file.png

@Sonu Parab 

I could see you marked my response as correct earlier and now it is not.

You already told my script was working fine. You just had to enhance the logic with your development skills.

Would you mind marking my response as correct?

Regards
Ankur

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

Yes @Ankur Bawiskar