Show group member in list collector based on another variable from sys_group

Jeck Manalo
Tera Guru

Hi,

 

How can we filter the list of user in list collector based on what is selected to another variable,

 

variable 1 = group

variable 2 = goal is to show list of member only based on selected in variable 1.

 

In my mind I need to use onchange and script include.

 

I saw this post that are sample to populate in reference qualifier : Solved: How to show only users from respective group in re... - ServiceNow Community

 

I applying this concept but I try to add onchange to pass the value of sysid of the group into script include so in reference qualifier will display members.

 

script include:

JeckManalo_0-1759373483169.png

 

but not its not working.

 

Anythoughts how to show member of the group in catalog using onchange/script include/reference qualifier ?

 

8 REPLIES 8

Bhuvan
Mega Patron

@Jeck Manalo 

 

Inside the while loop use gr.getDisplayValue('user')

 

Refer below for sample script

Bhuvan_2-1759374279070.png

 

 

Bhuvan_0-1759374247366.png

Bhuvan_1-1759374258766.png

If this helped to answer your query, please mark it helpful & accept the solution.

 

Thanks,

Bhuvan

not work,

 

maybe the problem is using my onchange script not in script include.

mayankkumar
Kilo Patron
Kilo Patron

Hi @Jeck Manalo,
How are you setting the value in the client script, could you please share image of that?

TejasSN_LogicX
Tera Contributor

Hi @Jeck Manalo ,

You’re passing sys_id of the group, but in your query you’re filtering on group.name. That won’t match!

script include 

 getMembers: function () {
        var groupId = this.getParameter('sysparm_group_id');
        var arr = [];

        if (!groupId)
            return arr.toString();

        var gr = new GlideRecord("sys_user_grmember");
        gr.addQuery("group", groupId);   // usee sys id not name
        gr.query();
        while (gr.next()) {
            arr.push(gr.user.toString());  // return user sys_ids
        }
        return arr.toString();
    }

 

and if you are settign the value using the client script try this 

 

  ga.getXMLAnswer(function(response) {
        var users = response.split(',');
        g_form.setValue('user_variable_name', users.join(',')); // populate list collector
    });

 

if youa are setting the referance qualifer then try this scriptjavascript: 'user IN (SELECT user FROM sys_user_grmember WHERE group=' + current.variables.group + ')'