Need to auto populate group members on a list collector variable

Muffin
Tera Contributor

Hi All,

 

I need to auto populate group members on a list collector variable based on assignment group on another variable. Please assist.

 

Thanks in advance.

3 REPLIES 3

Service_RNow
Mega Sage

Hi @Muffin 

 

Please try below,

script include:-

getMembers: function() {

var user_sys_ids = "";
var grpID = this.getParameter('sysparm_gid');
var grpMembers = new GlideRecord('sys_user_grmember');
grpMembers.addQuery('group', grpID);
grpMembers.query();
while (grpMembers.next()) {
if(user_sys_ids=="")
user_sys_ids=grpMembers.user.toString();
}
else{
user_sys_ids=user_sys_ids+","+grpMembers.user.toString();
}
}
return JSON.stringify(user_sys_ids);
},
type: 'GroupMembers'
});

client script:

function onChange(control, oldValue, newValue, isLoading) {
if (isLoading || newValue == '') {
return;
}
//g_form.setVisible("eu_domain",'');

var ga=new GlideAjax('GroupMembers');
ga.addParam('sysparm_name','getMembers');
ga.addParam('sysparm_gid',newValue);
ga.getXML(membersList);

function membersList(response){
var answer=JSON.parse(response.responseXML.documentElement.getAttribute("answer"));
g_form.setValue('eu_domain',answer);
}

}

 

Please mark this as Correct or Helpful if it helps.

 

Please mark reply as Helpful/Correct, if applicable. Thanks!

Hi @Muffin 

 

Please indicate its helpfulness by selecting "Accept as Solution" and " Helpful." This action benefits both the community and me.

 

Thanks

Its_Azar
Tera Guru

Hey there @Muffin 

 

First, make sure you have a list collector variable in your form where you want to populate the group members.

Write a client-side script  that triggers when the assignment group variable changes. 

On the server-side, create a Script Include or Business Rule that handles the logic to retrieve the members of the assignment group.

 Once the group members are retrieved, populate the list collector variable with the member values.

 

 

function populateGroupMembers() {
    var assignmentGroup = g_form.getValue('assignment_group'); 
    var ga = new GlideAjax('RetrieveGroupMembersScript'); 
    ga.addParam('sysparm_name', 'getGroupMembers');
    ga.addParam('assignment_group', assignmentGroup);
    ga.getXMLAnswer(function(response) {
        var members = response.split(',')
        var listCollectorVariable = g_form.getControl('list_collector_variable'); 
        listCollectorVariable.addOption(members);
    });
}

g_form.observe('change', function (control, oldValue, newValue) {
    if (control == 'assignment_group') {
        populateGroupMembers();
    }
});

 

 

If this helps kindly accept the response thanks much.

☑️ If this helped, please mark it as Helpful or Accept Solution so others can find the answer too.




Kind Regards,

Mohamed Azarudeen Z

Developer @ KPMG

 Microsoft MVP (AI Services), India