Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

Call advanced reference qualifier from UI page

Gudipati Hemala
Tera Contributor

I wanted to create a ui page with a field called 'Manager' which is a reference type and reference to user table. And I want to show the list of users who are member 'Major incident' group.

I have created following script include in 'Major incident manager (sn_major_inc_mgmt)' application.

find_real_file.png

Here is my HTML in the UI page and this ui page also in 'Major incident manager (sn_major_inc_mgmt)' application..


<div class="form-group" id="manager-wrapper">
<label class="col-sm-2 control-label"><span mandatory="true" class="required-marker"></span>${gs.getMessage('Manager')}</label>
<div class="col-sm-10">
<g:ui_reference mandatory="true" name="incident_sysid" table="sys_user" show_popup="true" show_lookup="true" query="javascript new sn_major_inc_mgmt.GetMIMGroupMembers().getGrpUsers()" completer="AJAXTableCompleter"/>

</div>
</div>

 

But the query is not validating and this is returning all users. Could you please help me to  call an advanced reference qualifier in ui page >> HTML

 

 

1 ACCEPTED SOLUTION

Sai Kumar B
Mega Sage

@Gudipati Hemalatha 

Try the below codes

//Try the whole in UI page 

<g:evaluate var="jvar_users">
var fetchUsers = new GlideRecord('sys_user_grmember');
fetchUsers.addQuery('group', "group_sys_id);
fetchUsers.query();
var usersList = []; // create an array of user IDs
while (fetchUsers.next()) {
usersList.push(fetchUsers.getValue('user')); // add record's user to list as a member of that group
}
var users = list.join(','); // create comma separated values
users;   // save it to jvar_users
</g:evaluate>
<div class="form-group" id="manager-wrapper">
<label class="col-sm-2 control-label"><span mandatory="true" class="required-marker"></span>${gs.getMessage('Manager')}</label>
<div class="col-sm-10">
<g:ui_reference mandatory="true" name="incident_sysid" table="sys_user" show_popup="true" show_lookup="true" query="sys_idIN${jvar_users}" completer="AJAXTableCompleter"/>
</div>
</div>

OR

<div class="form-group" id="manager-wrapper">
<label class="col-sm-2 control-label"><span mandatory="true" class="required-marker"></span>${gs.getMessage('Manager')}</label>
<div class="col-sm-10">
<g:ui_reference mandatory="true" name="incident_sysid" table="sys_user" show_popup="true" show_lookup="true" query="javascript:new sn_major_inc_mgmt.GetMIMGroupMembers().getGrpUsers()"/>

</div>
</div>

View solution in original post

2 REPLIES 2

Sai Kumar B
Mega Sage

@Gudipati Hemalatha 

Try the below codes

//Try the whole in UI page 

<g:evaluate var="jvar_users">
var fetchUsers = new GlideRecord('sys_user_grmember');
fetchUsers.addQuery('group', "group_sys_id);
fetchUsers.query();
var usersList = []; // create an array of user IDs
while (fetchUsers.next()) {
usersList.push(fetchUsers.getValue('user')); // add record's user to list as a member of that group
}
var users = list.join(','); // create comma separated values
users;   // save it to jvar_users
</g:evaluate>
<div class="form-group" id="manager-wrapper">
<label class="col-sm-2 control-label"><span mandatory="true" class="required-marker"></span>${gs.getMessage('Manager')}</label>
<div class="col-sm-10">
<g:ui_reference mandatory="true" name="incident_sysid" table="sys_user" show_popup="true" show_lookup="true" query="sys_idIN${jvar_users}" completer="AJAXTableCompleter"/>
</div>
</div>

OR

<div class="form-group" id="manager-wrapper">
<label class="col-sm-2 control-label"><span mandatory="true" class="required-marker"></span>${gs.getMessage('Manager')}</label>
<div class="col-sm-10">
<g:ui_reference mandatory="true" name="incident_sysid" table="sys_user" show_popup="true" show_lookup="true" query="javascript:new sn_major_inc_mgmt.GetMIMGroupMembers().getGrpUsers()"/>

</div>
</div>

Thank you Sai Kumar, The first solution is working for me.