Force g_modal field reference query in Agent Workspace UI Action
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-08-2024 11:54 AM
Hello --
Anyone have any luck forcing an Agent Workspace client script reference field query to work? I'm building a custom UI action ("Change Assignment") which is nearly working -- it gives the user a list of ALL assignment groups, instead of respecting the dynamic query ("userDYNAMIC90d1921e5f510100a9ad2572f2b477fe").
I'm a bit stuck; I found many similar threads in recent years but no clear answers, so I'd be curious if anyone has a fresh perspective. Thanks!
Workspace Client Script:
function onClick(g_form) {
var fields = [{
type: 'reference',
name: 'assignment_group',
label: getMessage('Please select one of your current assignment groups. The case will be automatically assigned to you after clicking OK.'),
mandatory: true,
reference: 'sys_user_grmember',
query: "userDYNAMIC90d1921e5f510100a9ad2572f2b477fe",
referringTable: 'sn_hr_core_case',
referringRecordId: g_form.getUniqueValue()
}
];
g_modal.showFields({
title: "Change Case Assignment",
fields: fields,
size: 'lg'
}).then(function(fieldValues) {
g_form.setValue('assignment_group', fieldValues.updatedFields[0].value);
g_form.save();
});
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-08-2024 11:06 PM
Hi @Zach3 ,
if you want to create a reference field with query , then you need to create a UI page and call that in the g_modal.
Please try that way.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-09-2024 11:05 AM
Thanks, Sarika. I've tried the UI page route and can call it via g_modal, but the primary issue seems to be building and passing the group/group member variables.
Here are the opening lines of the UI page 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">
<g:ui_form id="change_assignment_dialog">
<j:set var="jvar_sys_id" value="${sysparm_sys_id}" />
<j:set var="jvar_table_name" value="${sysparm_table_name}" />
<j:set var="jvar_sysparm_user_id" value="${sysparm_user_id}" />
<j:set var="jvar_sysparm_user_fullname" value="${sysparm_user_fullname}" />
<j:set var="jvar_sysparm_assignment_group" value="${sysparm_assignment_group}" />
<g2:evaluate var="jvar_groups" object="true" jelly="true">>
var ug = new GlideRecord('sys_user_grmember');
ug.addQuery('user', "${jvar_sysparm_user_id}"); // use your jelly variable here for the group to filter
ug.query();
var list = []; // create an array of group IDs
while (ug.next()) {
list.push(ug.getValue('group')); // add record's group to list
}
var groups = list.join(','); // create comma separated values
groups; // save it to jvar_groups
</g2:evaluate>
[...]
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-11-2024 09:58 PM
Hi @Zach3 , you can use gs.getUserID() in g:evaluate instead of passing variable.
var ug = new GlideRecord('sys_user_grmember');
ug.addQuery('user', gs.getUserID()); // use your jelly variable here for the group to filter
ug.query();
var list = []; // create an array of group IDs
while (ug.next()) {
list.push(ug.getValue('group')); // add record's group to list
}
var groups = list.toString(); // create coma separated string of group sysids
groups; // save it to jvar_groups
If you are passing other parameters the you can use below syntax in g_modal.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎03-04-2024 07:09 PM
were you able to figure how to pass the values from ui page to client script?