Reference Variable Filtered by Group

Laurie Marlowe1
Kilo Sage

Hi,

I have a reference variable called "Project Lead".   I want to only show members of the Physical Security group in this field.   From what I've read it seems a reference qualifier should be used.   After reading some articles I tried entering the following:

Reference qualifier:   javascript:new GetGroupMember().getMember(bb3fc3056f68e10006a8f00dba3ee483)

I'm passing the sys_id of the Physical Security group.

Script Include:

var GetGroupMember= Class.create();

GetGroupMember.prototype = {

getMember : function(bb3fc3056f68e10006a8f00dba3ee483)

{

   

      var user_array = [];

      var getMembers = new GlideRecord('sys_user_grmember');

      getMembers.addQuery('group',bb3fc3056f68e10006a8f00dba3ee483);

      getMembers.query();

      while(getMembers.next())

              {

                user_array.push(getMembers.getValue('users'));

      }

      return 'sys_idIN' + user_array.toString();

}

};

What happens is I get the entire sys_user table unfiltered.   How do I just get the members of the Physical Security group so I can select one of them?

Any help is appreciated, as I am new to scripting.

Thanks,

Laurie

1 ACCEPTED SOLUTION

Please see my other reply as it will correct this situation.


View solution in original post

36 REPLIES 36

Anurag Tripathi
Mega Patron
Mega Patron

Hi Laurie,



Try this



Script Include:


var GetGroupMember= Class.create();


GetGroupMember.prototype = {



getMember : function()


{


  var x = 'bb3fc3056f68e10006a8f00dba3ee483';


      var user_array = [];


      var getMembers = new GlideRecord('sys_user_grmember');


      getMembers.addQuery('group',x);


      getMembers.query();


      while(getMembers.next())


              {


                user_array.push(gr.user);


      }


      return 'sys_idIN' + user_array.toString();


}


};


Thank


-Anurag

Hi Anurag,



The script did not work.   It returned 1,124 records and showed sys_id numbers only.   There should only be a few name returned.



I tried creating a a simple reference qualifier:


Table: GroupMember[sys_user_grmember]


Condition:   Group is Physical Security



This works EXCEPT it also returns sys_id numbers.



Thanks,



Laurie


my bad


instead of "gr.user" use "getMembers.user"


this will give you sys_id only....if you want names then use "getMembers.user.getDisplayValue()"


-Anurag

Hi Anurag,



I updated the code to this, and now it returns all users.   Could something be wrong with the reference qualifier?



I did notice that the sys_user_grmember table has 1,124 entries, which matches the number of rows returned prior to the script change.



var GetGroupMember= Class.create();


GetGroupMember.prototype = {



getMember : function()


{


  var x = 'bb3fc3056f68e10006a8f00dba3ee483';


      var user_array = [];


      var getMembers = new GlideRecord('sys_user_grmember');


      getMembers.addQuery('group',x);


      getMembers.query();


      while(getMembers.next())


              {


                user_array.push(getMembers.user.getDisplayValue());


      }


      return 'sys_idIN' + user_array.toString();


}


};



Thanks,



Laurie