- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎11-14-2023 05:54 AM
I have a catalog form which contains location variable referenced to location table.
I want to show only unused values of location table in form.
I don't want to show the values used by user table.
How to achieve this????
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎11-14-2023 07:51 AM - edited ‎11-14-2023 07:51 AM
Hi @Sourabh22
You can write an Script Include , assume 'ExcludeLocation' and a function called 'getExcludedLocations()' and you can write below code in it:
var usrLoc= [];
var usr = new GlideAggregate('sys_user');
usr.addAggregate('COUNT', 'location');
usr.addEncodedQuery("location!=NULL");
usr.groupBy('location');
usr.query();
while(usr.next())
{
usrLoc.push(usr.getValue('location'));
}
var locArr = [];
var loc = new GlideRecord('cmn_location');
loc.addEncodedQuery("sys_idNOT IN"+locArr);
loc.query();
while(loc.next())
{
locArr.push(loc.getUniqueValue());
}
return "sys_idIN"+locArr;
You can now call this Script Include in your Reference Qualifier of Variable using below link:
javascript: new ExcludeLocation().getExcludedLocations();
Thanks
Anubhav Ritolia
ServiceNow Rising Star 2023
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎11-14-2023 07:38 PM
Hi @Sourabh22
Sorry, small mistake and correction in the code above:
loc.addEncodedQuery('sys_idNOT IN'+usrLoc);
Replace locArr with usrLoc.
Try now and see.
Thanks
Anubhav Ritolia
ServiceNow Rising Star 2023
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎11-14-2023 09:03 PM
Hi @AnubhavRitolia ,
I have already replaced locArr with usrLoc in that line and I have checked in background script there return giving acccurate list. But it is not reflecting in the form. In form it is showing all values of the location field.
In my form the field name is location referenced to cmn_location table
I used reference qualifier Advanced
javascript: new ExcludeLocation().getExcludedLocations();
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎11-14-2023 10:02 PM
Could you share your Script Include full code to understand it better?
Hope it is not client callable.
Thanks
Anubhav Ritolia
ServiceNow Rising Star 2023
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎11-14-2023 10:23 PM - edited ‎11-14-2023 10:52 PM
it is not client callable
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎11-14-2023 10:45 PM - edited ‎11-14-2023 10:46 PM
This is not the code I have given. My code is having GlideAggregate. Could you please try that one and see.
Also your return is different than I mentioned.
Thanks
Anubhav Ritolia
ServiceNow Rising Star 2023