- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-27-2024 03:38 AM
I have a requirement with respect to Service Catalog. Could someone please assist me with this.
There are 2 fields - Location and User, where both are reference fields.
When we select Location as India in Location field, in User field particular user must be not visible. (Example: Abel Tuter must not be visible when we select Location as India)
Thankyou.
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-27-2024 03:42 AM
what's your business requirement here?
you can use advanced reference qualifier on User variable
Do you want to remove only 1 user when Location is India?
OR
this is for other locations also
If only for 1 then do this
javascript: var query = ''; if(current.variables.location.name == 'India') query='sys_id!=AbelUserSysId'; query;
If my response helped please mark it correct and close the thread so that it benefits future readers.
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-27-2024 04:19 AM
Hello @RakshithaM
I believe that for location field you are referring to core_country table and for user field you are referring to sys_user table .
Now when configuring the reference field for user add the reference qualifier as follows:
javascript:current.variables.location=="8938b7111b121100763d91eebc0713ec" ? "active=true^sys_id!=5137153cc611227c000bbd1bd8cd2005" : "active=true";
8938b7111b121100763d91eebc0713ec : sys_id of location (India)
5137153cc611227c000bbd1bd8cd2005: sys_id of user(Eg: Abel Tutor)
Adding screenshot for better understanding:
Note: Please adjust the sys_id as per your requirement.
Hope this Helps!
"If you found my answer helpful, please like and mark it as an "accepted solution". It helps future readers to locate the solution easily and supports the community!"
Thank You
Juhi Poddar
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-30-2024 01:01 AM
it should be combined as this
javascript: var query = ''; if(current.variables.location.name == 'India') query='sys_id!=27d3f35cc0a8000b001df42d019a418f'; query = query + '^nameINBlackberry,Bond trading'; query;
If my response helped please mark it correct and close the thread so that it benefits future readers.
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-27-2024 04:37 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-27-2024 05:40 AM
Hi @Juhi Poddar / @Ankur Bawiskar ,
Could you please let me know if there is any other approach in achieving the same requirement other than using Reference qualifier.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-27-2024 05:44 AM
you can use onChange client script on user variable and check the value of location variable
If it's India then clear the value and inform user
function onChange(control, oldValue, newValue, isLoading, isTemplate) {
if (isLoading) {
return;
}
g_form.hideFieldMsg('user');
if (newValue == "abelTuterSysId" && g_form.getValue('location') == 'indiaLocationSysId') {
g_form.clearValue('user');
g_form.showFieldMsg('user', 'You cannot select Abel tuter for India Location', "error");
}
}
If my response helped please mark it correct and close the thread so that it benefits future readers.
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-27-2024 05:53 AM
Hello @RakshithaM
Without a reference qualifier, you can’t fully remove the user from the reference list, as it pulls data directly from the table. While methods like g_form.removeOption can hide options temporarily, this approach only works for dropdown-like fields and does not prevent users from being searched or selected in the reference field. A reference qualifier is the best way to filter users at the database level.
Hope this helps!
Thank You
Juhi Poddar