- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-26-2023 06:30 AM
Hi,
i have created a ui action LIST CHOICE type and a UI page.
In the list of records can selecte multiple records in the list view and click on the UI action so that ui page will open. Inside ui page i have created a reference field which refere to user table.
Current condition
<g:ui_reference name="new_user_id" query="active=true^employee_numberISNOTEMPTY" id="new_user_id" table="sys_user" mandatory="true"/>
But i need to see users only users who are part of selected record assignment groups. How can i put this.
Kindly help me
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-29-2023 06:24 AM
try this
<?xml version="1.0" encoding="utf-8" ?>
<j:jelly trim="false" xmlns:j="jelly:core" xmlns:g="glide" xmlns:j2="null" xmlns:g2="null">
	<style>
		.required:before {
		content:"* ";
		color: red;
		}
	</style>
	
	<g:evaluate var="jvar_sysId" expression="RP.getWindowProperties().sysparm_id"/>
	<g:ui_form>
		<input type="hidden" name="selected_record_sysId" value="${sysparm_id}"/> 
		<p class="required">Please select user to assign selected records</p> 
		<g:ui_reference name="new_user_id" query="${jvar_users}" id="new_user_id" table="sys_user" mandatory="true^active=true"/>
		<br>
		</br>
		<br>
		</br>
		<g:dialog_buttons_ok_cancel ok="return validateForm()" cancel="return onCancel()"/> 
	</g:ui_form>	
	<g:evaluate var="jvar_users">
		var selected_record_sysId = jelly.jvar_sysId;
		gs.info("line number 24 group ids--"+selected_record_sysId);
		var groupIDS = [];
		var recordgroups = new GlideRecord('x_thimi_fin_srvc_request');
		recordgroups.addEncodedQuery("sys_idIN"+selected_record_sysId);
		recordgroups.query();
		while(recordgroups.next()){
		groupIDS.push(recordgroups.getValue(assignment_group));
		}
		var ug = new GlideRecord('sys_user_grmember');
		ug.addEncodedQuery("groupIN" + groupIDS);
		ug.query();
		var list = []; // create an array of user IDs
		while (ug.next()) {
		list.push(ug.getValue('user')); // add record's user to list as a member of that group
		}
		list.toString();
	</g:evaluate>
</j:jelly>Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-29-2023 04:01 AM
update as this in HTML
<?xml version="1.0" encoding="utf-8" ?>
<j:jelly trim="false" xmlns:j="jelly:core" xmlns:g="glide" xmlns:j2="null" xmlns:g2="null">
	<style>
		.required:before {
		content:"* ";
		color: red;
		}
	</style>
	<g:ui_form>
		<input type="hidden" name="selected_record_sysId" value="${sysparm_id}"/> 
		<p class="required">Please select user to assign selected records</p> 
		<g:ui_reference name="new_user_id" query="${jvar_users}" id="new_user_id" table="sys_user" mandatory="true"/>
		<br>
		</br>
		<br>
		</br>
		<g:dialog_buttons_ok_cancel ok="return validateForm()" cancel="return onCancel()"/> 
	</g:ui_form>	
	<g:evaluate var="jvar_users">
		var selected_record_sysId = RP.getWindowProperties().sysparm_id;
		var groupIDS = [];
		var recordgroups = new GlideRecord('x_thimi_fin_srvc_ar_request');
		recordgroups.addEncodedQuery("sys_idIN"+selected_record_sysId);
		recordgroups.query();
		while(recordgroups.next()){
		groupIDS.push(recordgroups.getValue(assignment_group));
		}
		var ug = new GlideRecord('sys_user_grmember');
		ug.addEncodedQuery("groupIN" + groupIDS);
		ug.query();
		var list = []; // create an array of user IDs
		while (ug.next()) {
		list.push(ug.getValue('user')); // add record's user to list as a member of that group
		}
		list.toString();
	</g:evaluate>
</j:jelly>
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-29-2023 06:14 AM
Hi Ankur,
Thanks a lot for the above script. But i tried and in line numbe 24 undefined is coming
<?xml version="1.0" encoding="utf-8" ?>
<j:jelly trim="false" xmlns:j="jelly:core" xmlns:g="glide" xmlns:j2="null" xmlns:g2="null">
	<style>
		.required:before {
		content:"* ";
		color: red;
		}
	</style>
	<g:ui_form>
		<input type="hidden" name="selected_record_sysId" value="${sysparm_id}"/> 
		<p class="required">Please select user to assign selected records</p> 
		<g:ui_reference name="new_user_id" query="${jvar_users}" id="new_user_id" table="sys_user" mandatory="true^active=true"/>
		<br>
		</br>
		<br>
		</br>
		<g:dialog_buttons_ok_cancel ok="return validateForm()" cancel="return onCancel()"/> 
	</g:ui_form>	
	<g:evaluate var="jvar_users">
		var selected_record_sysId = RP.getWindowProperties().sysparm_id;
		gs.info("line number 24 group ids--"+selected_record_sysId);
		var groupIDS = [];
		var recordgroups = new GlideRecord('x_thimi_fin_srvc_request');
		recordgroups.addEncodedQuery("sys_idIN"+selected_record_sysId);
		recordgroups.query();
		while(recordgroups.next()){
		groupIDS.push(recordgroups.getValue(assignment_group));
		
		}
		var ug = new GlideRecord('sys_user_grmember');
		ug.addEncodedQuery("groupIN" + groupIDS);
		ug.query();
		var list = []; // create an array of user IDs
		while (ug.next()) {
		list.push(ug.getValue('user')); // add record's user to list as a member of that group
		}
		list.toString();
	</g:evaluate>
</j:jelly>- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-29-2023 06:24 AM
try this
<?xml version="1.0" encoding="utf-8" ?>
<j:jelly trim="false" xmlns:j="jelly:core" xmlns:g="glide" xmlns:j2="null" xmlns:g2="null">
	<style>
		.required:before {
		content:"* ";
		color: red;
		}
	</style>
	
	<g:evaluate var="jvar_sysId" expression="RP.getWindowProperties().sysparm_id"/>
	<g:ui_form>
		<input type="hidden" name="selected_record_sysId" value="${sysparm_id}"/> 
		<p class="required">Please select user to assign selected records</p> 
		<g:ui_reference name="new_user_id" query="${jvar_users}" id="new_user_id" table="sys_user" mandatory="true^active=true"/>
		<br>
		</br>
		<br>
		</br>
		<g:dialog_buttons_ok_cancel ok="return validateForm()" cancel="return onCancel()"/> 
	</g:ui_form>	
	<g:evaluate var="jvar_users">
		var selected_record_sysId = jelly.jvar_sysId;
		gs.info("line number 24 group ids--"+selected_record_sysId);
		var groupIDS = [];
		var recordgroups = new GlideRecord('x_thimi_fin_srvc_request');
		recordgroups.addEncodedQuery("sys_idIN"+selected_record_sysId);
		recordgroups.query();
		while(recordgroups.next()){
		groupIDS.push(recordgroups.getValue(assignment_group));
		}
		var ug = new GlideRecord('sys_user_grmember');
		ug.addEncodedQuery("groupIN" + groupIDS);
		ug.query();
		var list = []; // create an array of user IDs
		while (ug.next()) {
		list.push(ug.getValue('user')); // add record's user to list as a member of that group
		}
		list.toString();
	</g:evaluate>
</j:jelly>Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-29-2023 06:36 AM
Hi Ankur,
Now not even entering in to the log
<?xml version="1.0" encoding="utf-8" ?>
<j:jelly trim="false" xmlns:j="jelly:core" xmlns:g="glide" xmlns:j2="null" xmlns:g2="null">
	<style>
		.required:before {
		content:"* ";
		color: red;
		}
	</style>
	
	<g:evaluate var="jvar_sysId" expression="RP.getWindowProperties().sysparm_id"/>
	<g:ui_form>
		<input type="hidden" name="selected_record_sysId" value="${sysparm_id}"/> 
		<p class="required">Please select user to assign selected records</p> 
		<g:ui_reference name="new_user_id" query="${jvar_users}" id="new_user_id" table="sys_user" mandatory="true"/>
		<br>
		</br>
		<br>
		</br>
		<g:dialog_buttons_ok_cancel ok="return validateForm()" cancel="return onCancel()"/> 
	</g:ui_form>	
gs.info("line number 23 group ids--"+selected_record_sysId);
	<g:evaluate var="jvar_users">
		var selected_record_sysId = jelly.jvar_sysId;
		gs.info("line number 24 group ids--"+selected_record_sysId);
		var groupIDS = [];
		var recordgroups = new GlideRecord('x_thimi_fin_srvc_request');
		recordgroups.addEncodedQuery("sys_idIN"+selected_record_sysId);
		recordgroups.query();
		while(recordgroups.next()){
		groupIDS.push(recordgroups.getValue(assignment_group));
gs.info("line number 24 group ids after while--"+groupIDS);
		}
		var ug = new GlideRecord('sys_user_grmember');
		ug.addEncodedQuery("groupIN" + groupIDS);
		ug.query();
		var list = []; // create an array of user IDs
		while (ug.next()) {
		list.push(ug.getValue('user')); // add record's user to list as a member of that group
		}
		list.toString();
	</g:evaluate>
</j:jelly>- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-29-2023 12:23 PM
Hi Ankur,
Thanks a lot for the help. With the small modification script is working excellent.
<?xml version="1.0" encoding="utf-8" ?>
<j:jelly trim="false" xmlns:j="jelly:core" xmlns:g="glide" xmlns:j2="null" xmlns:g2="null">
<style>
  .required:before {
    content:"* ";
    color: red;
  }
</style>
<g:ui_form>
	<input type="hidden" name="selected_record_sysId" value="${sysparm_id}"/> 
	<g:evaluate var="jvar_users">
		var selected_record_sysId2 = RP.getParameterValue('sysparm_id');
		gs.info('test line 22'+selected_record_sysId2);
		var groupIDS = [];
		var recordgroups = new GlideRecord('x_thimi_fin_srvc_request');
		recordgroups.addEncodedQuery("sys_idIN" + selected_record_sysId2);
		recordgroups.query();
		
		while(recordgroups.next()){
		groupIDS.push(recordgroups.getValue('assignment_group'));
		gs.info('test line 30==='+groupIDS);
		
		
		}
		var ug = new GlideRecord('sys_user_grmember');
		ug.addEncodedQuery("groupIN" + groupIDS);
		ug.query();
		var list = []; // create an array of user IDs
		while (ug.next()) {
		list.push(ug.getValue('user')); // add record's user to list as a member of that group
		gs.info('test line 41==='+list);
		}
		list.toString();
	</g:evaluate>
	<p class="required">Select a user</p> 
		<g:ui_reference name="new_user_id" query="active=true^sys_idIN${jvar_users}" id="new_user_id" table="sys_user" mandatory="true"/>
		<br>
		</br>
		<br>
		</br>
	<g:dialog_buttons_ok_cancel ok="return validateForm()" cancel="return onCancel()"/> 
</g:ui_form>	
	
</j:jelly>\
Just i changed the property
